From d294abb765e4ed349907c92ce313689c6299ba7d Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期二, 02 十二月 2025 00:17:00 +0800
Subject: [PATCH] feat:地图都改为天地图的接口
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java | 122 +++++++++++++++++++++++++++++++++++-----
1 files changed, 107 insertions(+), 15 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 abc7e5c..be0888b 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
@@ -18,6 +18,8 @@
import com.ruoyi.system.mapper.LegacyTransferSyncMapper;
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.factory.annotation.Autowired;
@@ -29,6 +31,7 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.HashMap;
/**
* 鏃х郴缁熻浆杩愬崟鍚屾Service涓氬姟灞傚鐞�
@@ -61,6 +64,9 @@
@Autowired
private ISysUserService sysUserService;
+
+ @Autowired
+ private IWechatTaskNotifyService wechatTaskNotifyService;
/**
* 鍚屾鎸囧畾鏃ユ湡鑼冨洿鐨勬棫绯荤粺杞繍鍗曞埌鏂扮郴缁�
@@ -199,11 +205,11 @@
*/
private boolean syncSingleTransferOrder(String serviceOrdID, String dispatchOrdID, Map<String, Object> order) {
log.info("寮�濮嬪悓姝ュ崟涓浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
-
+ String sysTaskCode="";
try {
// 鏋勯�燭askCreateVO瀵硅薄
TaskCreateVO createTaskVo = buildCreateTaskVo(serviceOrdID, dispatchOrdID, order);
-
+ sysTaskCode = createTaskVo.getTaskCode();
if (createTaskVo == null) {
log.error("鏋勯�燭askCreateVO澶辫触: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
return false;
@@ -215,10 +221,13 @@
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);
@@ -227,10 +236,17 @@
SysDept dept=sysDeptService.selectDeptByServiceClass(serviceOrdClass);
Long deptId=dept==null?null:dept.getDeptId();
- int result = sysTaskService.insertTask(createTaskVo,serviceOrdID,dispatchOrdID, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time);
+ int result = sysTaskService.insertTask(createTaskVo,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);
@@ -238,7 +254,7 @@
}
} catch (Exception e) {
- log.error("鍚屾鍗曚釜杞繍鍗曞紓甯�: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID, e);
+ log.error("鍚屾鍗曚釜杞繍鍗曞紓甯�: ServiceOrdID={}, DispatchOrdID={},sysTaskCode:{}", serviceOrdID, dispatchOrdID,sysTaskCode, e);
return false;
}
}
@@ -288,7 +304,16 @@
return false;
}
}
-
+
+ private String getServiceOrdCode(Date ServiceOrd_CC_Time,String serviceOrdClass,String serviceOrdNo){
+ //BF20251101-serviceOrdNo;
+ //灏� ServiceOrd_CC_Time 杞负 yyyyMMdd 鏍煎紡
+ String ServiceOrd_CC_Time_Str= DateUtils.parseDateToStr(DateUtils.YYYYMMDD,ServiceOrd_CC_Time);
+ //serviceOrdNo 杩欎釜鏄暟瀛楋紝鍥哄畾3浣嶆暟 锛屽皢32锛岃浆鎴�032锛涘皢1杞垚001
+ Integer intServiceNo=Integer.valueOf(serviceOrdNo);
+ String ServiceOrdNo_Str=String.format("%03d", intServiceNo);
+ return serviceOrdClass+ServiceOrd_CC_Time_Str+"-"+ServiceOrdNo_Str;
+ }
/**
* 鏋勯�燭askCreateVO瀵硅薄鐢ㄤ簬鍒涘缓浠诲姟
*
@@ -312,18 +337,17 @@
log.error("鏈嶅姟鍗旾D涓嶈兘涓虹┖");
return null;
}
-
+ String serviceOrdClass = getStringValue(order, "ServiceOrdClass");
+ //TODO
TaskCreateVO createTaskVo = new TaskCreateVO();
- String Old_ServiceOrdID_TXT=getStringValue(order,"Old_ServiceOrdID_TXT");
- if(Old_ServiceOrdID_TXT!=null){
- createTaskVo.setTaskCode(Old_ServiceOrdID_TXT);
- }
-
+ 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);
// 璁剧疆鍩烘湰淇℃伅
createTaskVo.setTaskType("EMERGENCY_TRANSFER"); // 鎬ユ晳杞繍浠诲姟
// 璁剧疆鍗曟嵁绫诲瀷鍜屼换鍔$被鍨婭D锛堜粠鏃х郴缁熷瓧娈垫槧灏勶級
- String serviceOrdClass = getStringValue(order, "ServiceOrdClass");
+
if (StringUtils.isNotEmpty(serviceOrdClass)) {
createTaskVo.setDocumentTypeId(serviceOrdClass);
}
@@ -526,7 +550,7 @@
- // 璁剧疆鍒涘缓鏃堕棿
+ // 璁剧疆鍒涘缓鏃堕棿 寮�鍗曟棩鏈�
Date createTime = getDateValue(order, "ServiceOrd_CC_Time");
if (createTime != null) {
createTaskVo.setCreateTime(createTime);
@@ -767,4 +791,72 @@
return false;
}
}
-}
\ No newline at end of file
+
+ private void notifyTransferOrderByWechat(Long taskId,
+ String serviceOrdID,
+ String dispatchOrdID,
+ String serviceOrdNo,
+ Date serviceOrdCcTime,
+ SysDept dept,
+ Map<String, Object> order) {
+ try {
+ // 鑾峰彇閫氱煡鎺ユ敹浜哄垪琛�
+ List<SysUser> receivers = getWechatNotifyUsers(dispatchOrdID, dept);
+ if (receivers == null || receivers.isEmpty()) {
+ log.info("鏃х郴缁熷悓姝ヨ浆杩愬崟鏃犲彲鐢ㄥ井淇℃帴鏀朵汉锛宼askId={}", taskId);
+ return;
+ }
+
+ // 鎻愬彇鎺ユ敹浜� ID 鍒楄〃
+ List<Long> userIds = new ArrayList<>();
+ for (SysUser user : receivers) {
+ if (user != null && user.getUserId() != null) {
+ userIds.add(user.getUserId());
+ }
+ }
+
+ // 璋冪敤缁熶竴鐨勫井淇¢�氱煡鏈嶅姟
+ int successCount = wechatTaskNotifyService.sendTaskNotifyMessage(taskId, userIds);
+ log.info("鏃х郴缁熷悓姝ヨ浆杩愬崟寰俊閫氱煡鍙戦�佸畬鎴愶紝taskId={}, 鎴愬姛={}", taskId, successCount);
+ } catch (Exception e) {
+ log.error("notifyTransferOrderByWechat鍙戠敓寮傚父, serviceOrdID={}, dispatchOrdID={}", serviceOrdID, dispatchOrdID, e);
+ }
+ }
+
+ private List<SysUser> getWechatNotifyUsers(String dispatchOrdID, SysDept dept) {
+ try {
+ List<SysUser> result = new ArrayList<>();
+
+ List<TaskCreateVO.AssigneeInfo> assignees = queryAssignees(dispatchOrdID);
+ if (assignees != null && !assignees.isEmpty()) {
+ for (TaskCreateVO.AssigneeInfo assigneeInfo : assignees) {
+ if (assigneeInfo == null || assigneeInfo.getUserId() == null) {
+ continue;
+ }
+ SysUser user = sysUserService.selectUserById(assigneeInfo.getUserId());
+ if (user != null && StringUtils.isNotEmpty(user.getOpenId())) {
+ result.add(user);
+ }
+ }
+ }
+
+ if (!result.isEmpty()) {
+ return result;
+ }
+
+ if (dept == null || StringUtils.isEmpty(dept.getPhone())) {
+ return result;
+ }
+
+ SysUser leader = sysUserService.selectUserByPhonenumber(dept.getPhone());
+ if (leader != null && StringUtils.isNotEmpty(leader.getOpenId())) {
+ result.add(leader);
+ }
+
+ return result;
+ } catch (Exception e) {
+ log.error("鑾峰彇鏃х郴缁熷悓姝ヨ浆杩愬崟寰俊閫氱煡鎺ユ敹浜哄け璐�, dispatchOrdID={}", dispatchOrdID, e);
+ return new ArrayList<>();
+ }
+ }
+}
--
Gitblit v1.9.1