From 656d6f8029f8bf9b2daa9dcc89101a879a70b860 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期三, 03 十二月 2025 23:10:05 +0800
Subject: [PATCH] feat:优先添加执行人
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 81 insertions(+), 22 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 be0888b..e764723 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
@@ -1,15 +1,13 @@
package com.ruoyi.system.service.impl;
-import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.system.domain.SysTask;
import com.ruoyi.system.domain.SysTaskEmergency;
import com.ruoyi.system.domain.VehicleInfo;
import com.ruoyi.system.domain.vo.TaskCreateVO;
+import com.ruoyi.system.domain.vo.TaskUpdateVO;
import com.ruoyi.system.mapper.SysTaskEmergencyMapper;
import com.ruoyi.system.mapper.SysTaskMapper;
import com.ruoyi.system.service.ILegacyTransferSyncService;
@@ -19,9 +17,9 @@
import com.ruoyi.system.mapper.VehicleInfoMapper;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.IWechatTaskNotifyService;
-import org.apache.poi.ss.usermodel.DateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -31,7 +29,6 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
-import java.util.HashMap;
/**
* 鏃х郴缁熻浆杩愬崟鍚屾Service涓氬姟灞傚鐞�
@@ -67,7 +64,9 @@
@Autowired
private IWechatTaskNotifyService wechatTaskNotifyService;
-
+
+
+
/**
* 鍚屾鎸囧畾鏃ユ湡鑼冨洿鐨勬棫绯荤粺杞繍鍗曞埌鏂扮郴缁�
*
@@ -121,6 +120,8 @@
// 妫�鏌ユ槸鍚﹀凡鍚屾
if (isTransferOrderSynced(serviceOrdID, dispatchOrdID)) {
log.debug("杞繍鍗曞凡鍚屾锛岃烦杩�: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+ //杩涜鏇存柊鎿嶄綔
+ updateTransferOrder(serviceOrdID, dispatchOrdID, order);
continue;
}
@@ -194,7 +195,71 @@
return false;
}
}
-
+
+ private boolean updateTransferOrder(String serviceOrdID, String dispatchOrdID, Map<String, Object> order){
+ log.info("寮�濮嬪悓姝ュ崟涓浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+ String sysTaskCode="";
+ try {
+ SysTaskEmergency emergency=sysTaskEmergencyMapper.selectByLegacyServiceOrdId(Long.parseLong(serviceOrdID));
+ if(emergency.getNeedResync().equals(1)){
+ log.info("鏂扮郴缁熼渶瑕佸悓姝ュ埌鏃х郴缁熼偅閲岋紝鎵�浠ヤ笉瑕佸悓姝ユ棫鏁版嵁鍒版柊绯荤粺,serviceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+ return false;
+ }
+ // 鏋勯�燭askCreateVO瀵硅薄
+ TaskCreateVO createTaskVo = buildCreateTaskVo(serviceOrdID, dispatchOrdID, order);
+
+ sysTaskCode = createTaskVo.getTaskCode();
+ if (createTaskVo == null) {
+ log.error("鏋勯�燭askCreateVO澶辫触: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+ return false;
+ }
+
+ // 璁板綍鍒涘缓鐨勪换鍔′俊鎭�
+ log.debug("鍑嗗鍒涘缓浠诲姟: ServiceOrdID={}, DispatchOrdID={}, 鎮h�呭鍚�={}, 杞嚭鍖婚櫌={}, 杞叆鍖婚櫌={}",
+ serviceOrdID, dispatchOrdID,
+ createTaskVo.getPatient() != null ? createTaskVo.getPatient().getName() : "鏈煡",
+ createTaskVo.getHospitalOut() != null ? createTaskVo.getHospitalOut().getName() : "鏈煡",
+ createTaskVo.getHospitalIn() != null ? createTaskVo.getHospitalIn().getName() : "鏈煡");
+ /**
+ * 寮�鍗曟椂闂�
+ */
+ Date ServiceOrd_CC_Time= getDateValue(order, "ServiceOrd_CC_Time");
+ // 璋冪敤sysTaskService鍒涘缓浠诲姟
+ String serviceOrdClass = getStringValue(order,"ServiceOrdClass");
+ String serviceOrdNo = getStringValue(order,"ServiceOrdNo");
+
+ Integer 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();
+ SysDept dept=sysDeptService.selectDeptByServiceClass(serviceOrdClass);
+ Long deptId=dept==null?null:dept.getDeptId();
+ TaskUpdateVO updateTaskVo = new TaskUpdateVO();
+ BeanUtils.copyProperties(createTaskVo, updateTaskVo);
+
+
+ int result = sysTaskService.updateTask(updateTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time);
+
+ if (result > 0) {
+ log.info("杞繍鍗曞悓姝ユ垚鍔�: ServiceOrdID={}, DispatchOrdID={}, 鍒涘缓鐨勪换鍔D={}", serviceOrdID, dispatchOrdID, result);
+
+ try {
+ notifyTransferOrderByWechat((long) result, serviceOrdID, dispatchOrdID, serviceOrdNo, ServiceOrd_CC_Time, dept, order);
+ } catch (Exception e) {
+ log.error("杞繍鍗曞悓姝ユ垚鍔熷悗鍙戦�佸井淇¢�氱煡澶辫触: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID, e);
+ }
+
+ return true;
+ } else {
+ log.error("杞繍鍗曞悓姝ュけ璐�: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+ return false;
+ }
+
+ } catch (Exception e) {
+ log.error("鍚屾鍗曚釜杞繍鍗曞紓甯�: ServiceOrdID={}, DispatchOrdID={},sysTaskCode:{}", serviceOrdID, dispatchOrdID,sysTaskCode, e);
+ return false;
+ }
+ }
/**
* 鍚屾鍗曚釜鏃х郴缁熻浆杩愬崟鍒版柊绯荤粺锛堝甫璇︾粏淇℃伅锛�
*
@@ -359,18 +424,10 @@
// 璁剧疆鍖哄煙绫诲瀷
String serviceOrdAreaType = getStringValue(order, "ServiceOrdAreaType");
- if (StringUtils.isNotEmpty(serviceOrdAreaType)) {
- // 鍙互鏍规嵁闇�瑕佸皢鍖哄煙绫诲瀷鏄犲皠鍒癟askCreateVO鐨勫叾浠栧瓧娈�
- log.debug("鍖哄煙绫诲瀷: {}", serviceOrdAreaType);
- }
-
+
// 璁剧疆鐢ㄦ埛ID
Long serviceOrdUserID = getLongValue(order, "ServiceOrdUserID");
- if (serviceOrdUserID != null) {
- // 鍙互鏍规嵁闇�瑕佸皢鐢ㄦ埛ID鏄犲皠鍒癟askCreateVO鐨勫叾浠栧瓧娈�
- log.debug("鐢ㄦ埛ID: {}", serviceOrdUserID);
- }
-
+
// 璁剧疆鎮h�呬俊鎭�
TaskCreateVO.PatientInfo patientInfo = new TaskCreateVO.PatientInfo();
patientInfo.setName(getStringValue(order, "ServiceOrdPtName"));
@@ -414,9 +471,6 @@
String hospitalOutDeptId = getStringValue(order, "ServiceOrdPtServicesID");
-
- //杞嚭搴婁綅
- String serviceOrdPtServices=getStringValue(order, "ServiceOrdPtServices");
hospitalOutInfo.setDepartmentId(hospitalOutDeptId);
if (StringUtils.isNotEmpty(hospitalOutDeptId)) {
String hospitalOutDeptName = legacyTransferSyncMapper.selectDepartmentNameByDeptID(hospitalOutDeptId);
@@ -424,6 +478,8 @@
hospitalOutInfo.setDepartment(hospitalOutDeptName);
}
}
+ //杞嚭搴婁綅
+ String serviceOrdPtServices=getStringValue(order, "ServiceOrdPtServices");
if(serviceOrdPtServices!= null){
hospitalOutInfo.setBedNumber(serviceOrdPtServices);
}
@@ -461,7 +517,7 @@
createTaskVo.setHospitalIn(hospitalInInfo);
// 璁剧疆鍦板潃淇℃伅
- createTaskVo.setDepartureAddress(getStringValue(order, "ServiceOrdTraVia"));
+ createTaskVo.setDepartureAddress(getStringValue(order, "ServiceOrdTraStreet"));
createTaskVo.setDestinationAddress(getStringValue(order, "ServiceOrdTraEnd"));
// 璁剧疆浠锋牸鍜岃窛绂讳俊鎭�
@@ -471,6 +527,9 @@
// 璁剧疆鎵ц浜轰俊鎭�
List<TaskCreateVO.AssigneeInfo> assignees = queryAssignees(dispatchOrdID);
createTaskVo.setAssignees(assignees);
+ if(!assignees.isEmpty()){
+ createTaskVo.setAssigneeId(assignees.get(0).getUserId());
+ }
// 璁剧疆杞﹁締淇℃伅
// 杞﹁締ID闇�瑕佹牴鎹瓺ispatchOrdCarID鏌ヨ鑾峰彇
@@ -602,7 +661,7 @@
if (assigneeList != null && !assigneeList.isEmpty()) {
for (Map<String, Object> assigneeMap : assigneeList) {
String entourageOAId = getStringValue(assigneeMap, "EntourageOAId");
- String entourageState = getStringValue(assigneeMap, "EntourageState");
+ String entourageState = getStringValue(assigneeMap, "EntourageID");
if (StringUtils.isNotEmpty(entourageOAId)) {
try {
--
Gitblit v1.9.1