From 09faa36132c8cbada5327649875534ef01c1a3b1 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 11 十二月 2025 20:44:31 +0800
Subject: [PATCH] feat: 优化任务里程统计
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java | 91 ++++++++++++++++++++++++++++++++++++---------
1 files changed, 72 insertions(+), 19 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java
index 7bdf7ab..4bf8466 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java
@@ -6,6 +6,7 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.SysTaskEmergency;
import com.ruoyi.system.domain.VehicleInfo;
+import com.ruoyi.system.domain.enums.TaskStatus;
import com.ruoyi.system.domain.vo.TaskCreateVO;
import com.ruoyi.system.domain.vo.TaskUpdateVO;
import com.ruoyi.system.mapper.SysTaskEmergencyMapper;
@@ -17,6 +18,7 @@
import com.ruoyi.system.mapper.VehicleInfoMapper;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.IWechatTaskNotifyService;
+import com.ruoyi.system.utils.TaskStatusConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@@ -198,6 +200,13 @@
}
}
+ /**
+ * 鏇存柊鍗曚釜杞繍鍗�
+ * @param serviceOrdID
+ * @param dispatchOrdID
+ * @param order
+ * @return
+ */
private boolean updateTransferOrder(String serviceOrdID, String dispatchOrdID, Map<String, Object> order){
log.info("寮�濮嬪悓姝ュ崟涓浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
String sysTaskCode="";
@@ -209,13 +218,11 @@
}
// 鏋勯�燭askCreateVO瀵硅薄
TaskCreateVO createTaskVo = buildCreateTaskVo(serviceOrdID, dispatchOrdID, order);
-
- sysTaskCode = createTaskVo.getTaskCode();
if (createTaskVo == null) {
log.error("鏋勯�燭askCreateVO澶辫触: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
return false;
}
-
+ sysTaskCode = createTaskVo.getTaskCode();
// 璁板綍鍒涘缓鐨勪换鍔′俊鎭�
log.debug("鍑嗗鍒涘缓浠诲姟: ServiceOrdID={}, DispatchOrdID={}, 鎮h�呭鍚�={}, 杞嚭鍖婚櫌={}, 杞叆鍖婚櫌={}",
serviceOrdID, dispatchOrdID,
@@ -230,15 +237,26 @@
String serviceOrdClass = getStringValue(order,"ServiceOrdClass");
String serviceOrdNo = getStringValue(order,"ServiceOrdNo");
- Integer oauserId=getIntegerValue(order,"ServiceOrd_NS_ID");
+ Integer oauserId=getIntegerValue(order,"ServiceOrd_CC_ID");
+ if(oauserId==null){
+ oauserId=getIntegerValue(order,"ServiceOrd_NS_ID");
+ }
+ if(oauserId==null || oauserId==0){
+ log.error("鍒涘缓浠诲姟鏃讹紝鑾峰彇鍒涘缓浜轰俊鎭け璐ワ紝serviceOrdID={}, DispatchOrdID={} ServiceOrd_NS_ID={},ServiceOrd_CC_ID={}", serviceOrdID, dispatchOrdID, getIntegerValue(order,"ServiceOrd_NS_ID"),getIntegerValue(order,"ServiceOrd_CC_ID"));
+ return false;
+ }
SysUser sysUser=sysUserService.selectUserByOaUserId(oauserId);
Long taskCreatorId=sysUser==null?null:sysUser.getUserId();
String createUserName=sysUser==null?"system":sysUser.getUserName();
+ if(taskCreatorId==null || createUserName==null){
+ log.error("鍒涘缓浠诲姟鏃讹紝鑾峰彇鍒涘缓浜轰俊鎭け璐ワ紝serviceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+ return false;
+ }
SysDept dept=sysDeptService.selectDeptByServiceClass(serviceOrdClass);
Long deptId=dept==null?null:dept.getDeptId();
TaskUpdateVO updateTaskVo = new TaskUpdateVO();
BeanUtils.copyProperties(createTaskVo, updateTaskVo);
-
+ log.info("寮�濮嬩繚瀛樿浆杩愪换鍔�,serviceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
int result = sysTaskService.updateTask(updateTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time);
@@ -300,11 +318,19 @@
* 鍒涘缓浜篒D
*/
Integer oauserId=getIntegerValue(order,"ServiceOrd_CC_ID");
+ if(oauserId==null || oauserId==0) {
+ oauserId=getIntegerValue(order,"ServiceOrd_NS_ID");
+ }
SysUser sysUser=sysUserService.selectUserByOaUserId(oauserId);
- Long taskCreatorId=sysUser==null?null:sysUser.getUserId();
- String createUserName=sysUser==null?"system":sysUser.getUserName();
+ if(sysUser==null){
+ log.error("鍒涘缓浠诲姟鏃讹紝鑾峰彇鍒涘缓浜轰俊鎭け璐ワ紝serviceOrdID={}, DispatchOrdID={} ServiceOrd_CC_ID:{},ServiceOrd_NS_ID:{}", serviceOrdID, dispatchOrdID, getIntegerValue(order,"ServiceOrd_CC_ID"),getIntegerValue(order,"ServiceOrd_NS_ID"));
+ return false;
+ }
+ Long taskCreatorId= sysUser.getUserId();
+ String createUserName= sysUser.getUserName();
SysDept dept=sysDeptService.selectDeptByServiceClass(serviceOrdClass);
Long deptId=dept==null?null:dept.getDeptId();
+
int result = sysTaskService.insertTask(createTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time);
@@ -394,7 +420,7 @@
*/
@Override
public TaskCreateVO buildCreateTaskVo(String serviceOrdID, String dispatchOrdID, Map<String, Object> order) {
- log.info("鏋勯�燭askCreateVO: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+// log.info("鏋勯�燭askCreateVO: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
try {
// 妫�鏌ュ弬鏁版湁鏁堟��
@@ -408,11 +434,11 @@
return null;
}
String serviceOrdClass = getStringValue(order, "ServiceOrdClass");
- //TODO
+
TaskCreateVO createTaskVo = new TaskCreateVO();
String serviceOrdCode=this.getServiceOrdCode(getDateValue(order, "ServiceOrd_CC_Time"),serviceOrdClass,getStringValue(order, "ServiceOrdNo"));
createTaskVo.setTaskCode(serviceOrdCode);
- log.info("鏋勯�燭askCreateVO: ServiceOrdID={}, DispatchOrdID={},taskCode:{}", serviceOrdID, dispatchOrdID,serviceOrdCode);
+// log.info("鏋勯�燭askCreateVO: ServiceOrdID={}, DispatchOrdID={},taskCode:{}", serviceOrdID, dispatchOrdID,serviceOrdCode);
// 璁剧疆鍩烘湰淇℃伅
createTaskVo.setTaskType("EMERGENCY_TRANSFER"); // 鎬ユ晳杞繍浠诲姟
@@ -544,7 +570,8 @@
String carLicense = legacyTransferSyncMapper.selectCarLicenseByCarID(carID);
if (StringUtils.isNotEmpty(carLicense)) {
// 鏍规嵁杞︾墝鍙锋煡璇㈡柊绯荤粺涓殑杞﹁締ID
- log.debug("杞﹁締杞︾墝鍙�: {}", carLicense);
+ log.info("杞繍浠诲姟,ServiceOrdID:{},杞﹁締杞︾墝:{}",serviceOrdID,carLicense);
+// log.debug("杞﹁締杞︾墝鍙�: {}", carLicense);
// 棣栧厛灏濊瘯閫氳繃VehicleInfoMapper鏌ヨ杞﹁締淇℃伅
try {
@@ -556,7 +583,7 @@
List<Long> vehicleIds = new ArrayList<>();
vehicleIds.add(vehicleInfo.getVehicleId());
createTaskVo.setVehicleIds(vehicleIds);
- log.debug("閫氳繃car_id鎵惧埌杞﹁締淇℃伅: vehicle_id={}, vehicle_no={}", vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo());
+// log.debug("閫氳繃car_id鎵惧埌杞﹁締淇℃伅: vehicle_id={}, vehicle_no={}", vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo());
} else {
// 濡傛灉閫氳繃car_id鎵句笉鍒帮紝灏濊瘯閫氳繃杞︾墝鍙锋煡璇�
vehicleInfo = vehicleInfoMapper.selectVehicleInfoByVehicleNo(carLicense);
@@ -564,9 +591,9 @@
List<Long> vehicleIds = new ArrayList<>();
vehicleIds.add(vehicleInfo.getVehicleId());
createTaskVo.setVehicleIds(vehicleIds);
- log.debug("閫氳繃杞︾墝鍙锋壘鍒拌溅杈嗕俊鎭�: vehicle_id={}, vehicle_no={}", vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo());
+ log.debug("杞繍浠诲姟,ServiceOrdID:{} 閫氳繃杞︾墝鍙锋壘鍒拌溅杈嗕俊鎭�: vehicle_id={}, vehicle_no={}",serviceOrdID, vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo());
} else {
- log.warn("鏈壘鍒板搴旂殑杞﹁締淇℃伅: car_id={}, vehicle_no={}", carID, carLicense);
+ log.warn("杞繍浠诲姟,ServiceOrdID:{} 鏈壘鍒板搴旂殑杞﹁締淇℃伅: car_id={}, vehicle_no={}",serviceOrdID, carID, carLicense);
}
}
} catch (NumberFormatException e) {
@@ -585,6 +612,7 @@
}
}
+
// 璁剧疆鍏朵粬淇℃伅
createTaskVo.setTaskDescription("浠庢棫绯荤粺鍚屾鐨勮浆杩愬崟");
@@ -635,8 +663,15 @@
}
createTaskVo.setDiseaseIds(diseaseIds);
}
+
+ Integer dispatchOrdStatus = getIntegerValue(order, "DispatchOrdStatus");
+ TaskStatus status= TaskStatusConverter.convertFromLegacyStatus(dispatchOrdStatus);
+ if(status!=null) {
+ createTaskVo.setTaskStatus(status.getCode());
+ }
+
- log.info("TaskCreateVO鏋勯�犲畬鎴�: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+// log.info("TaskCreateVO鏋勯�犲畬鎴�: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
return createTaskVo;
} catch (Exception e) {
@@ -652,6 +687,7 @@
* @return 鎵ц浜轰俊鎭垪琛�
*/
private List<TaskCreateVO.AssigneeInfo> queryAssignees(String dispatchOrdID) {
+ long startTime = System.currentTimeMillis();
try {
// 妫�鏌ュ弬鏁版湁鏁堟��
if (StringUtils.isEmpty(dispatchOrdID)) {
@@ -659,8 +695,24 @@
return new ArrayList<>();
}
- // 浠嶴QL Server鏌ヨ鎵ц浜轰俊鎭�
- List<Map<String, Object>> assigneeList = legacyTransferSyncMapper.selectAssigneesByDispatchOrdID(dispatchOrdID);
+ // 灏哠tring杞崲涓篖ong锛岄伩鍏嶆暟鎹簱绫诲瀷涓嶅尮閰嶅鑷寸殑鎬ц兘闂
+ Long dispatchOrdIdLong;
+ try {
+ dispatchOrdIdLong = Long.valueOf(dispatchOrdID);
+ } catch (NumberFormatException e) {
+ log.error("璋冨害鍗旾D鏍煎紡涓嶆纭�: {}", dispatchOrdID, e);
+ return new ArrayList<>();
+ }
+
+ // 浠嶴QL Server鏌ヨ鎵ц浜轰俊鎭紙浣跨敤Long绫诲瀷锛屽尮閰岯IGINT瀛楁锛�
+ List<Map<String, Object>> assigneeList = legacyTransferSyncMapper.selectAssigneesByDispatchOrdID(dispatchOrdIdLong);
+ long queryTime = System.currentTimeMillis() - startTime;
+
+ // 璁板綍鎱㈡煡璇紙瓒呰繃500ms锛�
+ if (queryTime > 500) {
+ log.warn("鏌ヨ鎵ц浜轰俊鎭�楁椂杩囬暱: {}ms, 璋冨害鍗旾D: {}, 寤鸿鍦� DispatchOrd_Entourage 琛ㄧ殑 DispatchOrdIDDt 瀛楁涓婂垱寤虹储寮�",
+ queryTime, dispatchOrdID);
+ }
// 杞崲涓篢askCreateVO.AssigneeInfo瀵硅薄
List<TaskCreateVO.AssigneeInfo> assignees = new ArrayList<>();
@@ -702,10 +754,11 @@
}
}
- log.info("鏌ヨ鍒皗}涓墽琛屼汉锛岃皟搴﹀崟ID: {}", assignees.size(), dispatchOrdID);
+ log.debug("鏌ヨ鍒皗}涓墽琛屼汉锛岃皟搴﹀崟ID: {}, 鑰楁椂: {}ms", assignees.size(), dispatchOrdID, System.currentTimeMillis() - startTime);
return assignees;
} catch (Exception e) {
- log.error("鏌ヨ鎵ц浜轰俊鎭紓甯革紝璋冨害鍗旾D: {}", dispatchOrdID, e);
+ long totalTime = System.currentTimeMillis() - startTime;
+ log.error("鏌ヨ鎵ц浜轰俊鎭紓甯革紝璋冨害鍗旾D: {}, 鑰楁椂: {}ms", dispatchOrdID, totalTime, e);
return new ArrayList<>(); // 杩斿洖绌哄垪琛ㄨ�屼笉鏄痭ull
}
}
--
Gitblit v1.9.1