From fd047fa7234dc11643dab8ecbf38e8d7a8ba0854 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 22 十一月 2025 23:48:12 +0800
Subject: [PATCH] feat:修改任务
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 160 insertions(+), 4 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
index 7e28b71..b939e42 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
@@ -2,10 +2,7 @@
import java.io.*;
import java.math.BigDecimal;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.ArrayList;
+import java.util.*;
import java.util.stream.Collectors;
import java.net.HttpURLConnection;
import java.net.URL;
@@ -490,10 +487,51 @@
task.setUpdateTime(DateUtils.getNowDate());
task.setRemark(updateVO.getRemark());
+ // 濡傛灉鏇存柊浜嗛儴闂↖D
+ if (updateVO.getDeptId() != null) {
+ task.setDeptId(updateVO.getDeptId());
+ }
+
// 閲嶆柊璁$畻棰勮鍏噷鏁�
calculateEstimatedDistance(task);
int result = sysTaskMapper.updateSysTask(task);
+
+ // 鏇存柊杞﹁締鍏宠仈
+ if (result > 0 && updateVO.getVehicleIds() != null && !updateVO.getVehicleIds().isEmpty()) {
+ // 鏌ヨ鐜版湁鐨勮溅杈嗗叧鑱�
+ List<SysTaskVehicle> existingVehicles = sysTaskVehicleMapper.selectSysTaskVehicleByTaskId(updateVO.getTaskId());
+ List<Long> existingVehicleIds = existingVehicles.stream()
+ .map(SysTaskVehicle::getVehicleId)
+ .collect(Collectors.toList());
+
+ // 姣旇緝鏂版棫杞﹁締ID鍒楄〃锛屽垽鏂槸鍚︽湁鍙樺寲
+ boolean vehiclesChanged = !new HashSet<>(existingVehicleIds).equals(new HashSet<>(updateVO.getVehicleIds()));
+
+ // 鍙湁杞﹁締鍙戠敓鍙樺寲鏃舵墠鏇存柊
+ if (vehiclesChanged) {
+ // 鍒犻櫎鏃х殑杞﹁締鍏宠仈
+ sysTaskVehicleMapper.deleteSysTaskVehicleByTaskId(updateVO.getTaskId());
+
+ // 娣诲姞鏂扮殑杞﹁締鍏宠仈
+ Date now = DateUtils.getNowDate();
+ String currentUser = SecurityUtils.getUsername();
+ for (Long vehicleId : updateVO.getVehicleIds()) {
+ SysTaskVehicle taskVehicle = new SysTaskVehicle();
+ taskVehicle.setTaskId(updateVO.getTaskId());
+ taskVehicle.setVehicleId(vehicleId);
+ taskVehicle.setAssignTime(now);
+ taskVehicle.setAssignBy(currentUser);
+ taskVehicle.setCreateTime(now);
+ sysTaskVehicleMapper.insertSysTaskVehicle(taskVehicle);
+ }
+ }
+ }
+
+ // 鏇存柊鎬ユ晳杞繍鎵╁睍淇℃伅
+ if (result > 0 && "EMERGENCY_TRANSFER".equals(oldTask.getTaskType()) && updateVO.getEmergencyInfo() != null) {
+ updateEmergencyInfo(updateVO.getTaskId(), updateVO);
+ }
// 璁板綍鎿嶄綔鏃ュ織
if (result > 0) {
@@ -1454,6 +1492,124 @@
}
/**
+ * 鏇存柊鎬ユ晳杞繍浠诲姟鎵╁睍淇℃伅
+ *
+ * @param taskId 浠诲姟ID
+ * @param updateVO 浠诲姟鏇存柊瀵硅薄
+ */
+ private void updateEmergencyInfo(Long taskId, TaskUpdateVO updateVO) {
+ // 鏌ヨ鐜版湁鐨勬墿灞曚俊鎭�
+ SysTaskEmergency existingInfo = sysTaskEmergencyMapper.selectSysTaskEmergencyByTaskId(taskId);
+ if (existingInfo == null) {
+ // 濡傛灉涓嶅瓨鍦紝鍒欏垱寤烘柊鐨�
+ existingInfo = new SysTaskEmergency();
+ existingInfo.setTaskId(taskId);
+ existingInfo.setCreateTime(DateUtils.getNowDate());
+ existingInfo.setCreateBy(SecurityUtils.getUsername());
+ }
+
+ TaskUpdateVO.EmergencyInfoVO emergencyInfo = updateVO.getEmergencyInfo();
+
+ // 鏇存柊鎮h�呬俊鎭�
+ if (emergencyInfo.getPatientContact() != null) {
+ existingInfo.setPatientContact(emergencyInfo.getPatientContact());
+ }
+ if (emergencyInfo.getPatientPhone() != null) {
+ existingInfo.setPatientPhone(emergencyInfo.getPatientPhone());
+ }
+ if (emergencyInfo.getPatientName() != null) {
+ existingInfo.setPatientName(emergencyInfo.getPatientName());
+ }
+ if (emergencyInfo.getPatientGender() != null) {
+ existingInfo.setPatientGender(emergencyInfo.getPatientGender());
+ }
+ if (emergencyInfo.getPatientIdCard() != null) {
+ existingInfo.setPatientIdCard(emergencyInfo.getPatientIdCard());
+ }
+ if (emergencyInfo.getPatientCondition() != null) {
+ existingInfo.setPatientCondition(emergencyInfo.getPatientCondition());
+ }
+
+ // 鏇存柊杞嚭鍖婚櫌淇℃伅
+ if (emergencyInfo.getHospitalOutId() != null) {
+ existingInfo.setHospitalOutId(emergencyInfo.getHospitalOutId());
+ }
+ if (emergencyInfo.getHospitalOutName() != null) {
+ existingInfo.setHospitalOutName(emergencyInfo.getHospitalOutName());
+ }
+ if (emergencyInfo.getHospitalOutDepartment() != null) {
+ existingInfo.setHospitalOutDepartment(emergencyInfo.getHospitalOutDepartment());
+ }
+ if (emergencyInfo.getHospitalOutDepartmentId() != null) {
+ existingInfo.setHospitalOutDepartmentId(emergencyInfo.getHospitalOutDepartmentId());
+ }
+ if (emergencyInfo.getHospitalOutBedNumber() != null) {
+ existingInfo.setHospitalOutBedNumber(emergencyInfo.getHospitalOutBedNumber());
+ }
+ if (emergencyInfo.getHospitalOutAddress() != null) {
+ existingInfo.setHospitalOutAddress(emergencyInfo.getHospitalOutAddress());
+ }
+ if (emergencyInfo.getHospitalOutLongitude() != null) {
+ existingInfo.setHospitalOutLongitude(emergencyInfo.getHospitalOutLongitude());
+ }
+ if (emergencyInfo.getHospitalOutLatitude() != null) {
+ existingInfo.setHospitalOutLatitude(emergencyInfo.getHospitalOutLatitude());
+ }
+
+ // 鏇存柊杞叆鍖婚櫌淇℃伅
+ if (emergencyInfo.getHospitalInId() != null) {
+ existingInfo.setHospitalInId(emergencyInfo.getHospitalInId());
+ }
+ if (emergencyInfo.getHospitalInName() != null) {
+ existingInfo.setHospitalInName(emergencyInfo.getHospitalInName());
+ }
+ if (emergencyInfo.getHospitalInDepartment() != null) {
+ existingInfo.setHospitalInDepartment(emergencyInfo.getHospitalInDepartment());
+ }
+ if (emergencyInfo.getHospitalInDepartmentId() != null) {
+ existingInfo.setHospitalInDepartmentId(emergencyInfo.getHospitalInDepartmentId());
+ }
+ if (emergencyInfo.getHospitalInBedNumber() != null) {
+ existingInfo.setHospitalInBedNumber(emergencyInfo.getHospitalInBedNumber());
+ }
+ if (emergencyInfo.getHospitalInAddress() != null) {
+ existingInfo.setHospitalInAddress(emergencyInfo.getHospitalInAddress());
+ }
+ if (emergencyInfo.getHospitalInLongitude() != null) {
+ existingInfo.setHospitalInLongitude(emergencyInfo.getHospitalInLongitude());
+ }
+ if (emergencyInfo.getHospitalInLatitude() != null) {
+ existingInfo.setHospitalInLatitude(emergencyInfo.getHospitalInLatitude());
+ }
+
+ // 鏇存柊璐圭敤淇℃伅
+ if (emergencyInfo.getTransferDistance() != null) {
+ existingInfo.setTransferDistance(emergencyInfo.getTransferDistance());
+ }
+ if (emergencyInfo.getTransferPrice() != null) {
+ existingInfo.setTransferPrice(emergencyInfo.getTransferPrice());
+ }
+
+ // 鏇存柊鐥呮儏ID鍒楄〃
+ if (updateVO.getDiseaseIds() != null && !updateVO.getDiseaseIds().isEmpty()) {
+ String diseaseIdsStr = updateVO.getDiseaseIds().stream()
+ .map(String::valueOf)
+ .collect(Collectors.joining(","));
+ existingInfo.setDiseaseIds(diseaseIdsStr);
+ } else {
+ // 濡傛灉鐥呮儏ID鍒楄〃涓虹┖锛屾竻绌鸿瀛楁
+ existingInfo.setDiseaseIds(null);
+ }
+
+ // 绯荤粺瀛楁
+ existingInfo.setUpdateTime(DateUtils.getNowDate());
+ existingInfo.setUpdateBy(SecurityUtils.getUsername());
+
+ // 鎵ц鏇存柊
+ sysTaskEmergencyMapper.updateSysTaskEmergency(existingInfo);
+ }
+
+ /**
* 淇濆瓨绂忕杞︿换鍔℃墿灞曚俊鎭�
*
* @param taskId 浠诲姟ID
--
Gitblit v1.9.1