From 0a3eed02e78dfeeb7763a4b62992eefcd1f5a0ca Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期二, 23 十二月 2025 23:33:34 +0800
Subject: [PATCH] feat: 优化状态变更时实时推送

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysEmergencyTaskServiceImpl.java |   86 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 74 insertions(+), 12 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysEmergencyTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysEmergencyTaskServiceImpl.java
index 20fcac3..a2dbe88 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysEmergencyTaskServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysEmergencyTaskServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.service.impl;
 
+import com.ruoyi.common.utils.BigDecimalUtil;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.SysTask;
@@ -41,9 +42,11 @@
 
     @Override
     public void saveEmergencyInfo(Long taskId, String createUserName, TaskCreateVO createVO,
-                                  String serviceOrderId, String dispatchOrderId, String serviceOrdNo) {
+                                  Long serviceOrderId, Long dispatchOrderId, String serviceOrdNo) {
         SysTaskEmergency emergencyInfo = new SysTaskEmergency();
         emergencyInfo.setTaskId(taskId);
+        emergencyInfo.setServiceOrdVip(createVO.getServiceOrdVIP());
+        emergencyInfo.setFromHq2Is(createVO.getFromHQ2_is());
 
         if (createVO.getPatient() != null) {
             emergencyInfo.setPatientContact(createVO.getPatient().getContact());
@@ -110,7 +113,7 @@
             }
         }
 
-        emergencyInfo.setTransferDistance(createVO.getTransferDistance());
+        emergencyInfo.setTransferDistance(createVO.getDistance());
         emergencyInfo.setTransferPrice(createVO.getPrice());
         emergencyInfo.setDocumentTypeId(createVO.getDocumentTypeId());
         emergencyInfo.setTaskTypeId(createVO.getTaskTypeId());
@@ -123,13 +126,13 @@
         }
 
         if (serviceOrderId != null) {
-            emergencyInfo.setLegacyServiceOrdId(Long.parseLong(serviceOrderId));
+            emergencyInfo.setLegacyServiceOrdId(serviceOrderId);
             emergencyInfo.setSyncStatus(2);
             emergencyInfo.setSyncTime(DateUtils.getNowDate());
             emergencyInfo.setSyncErrorMsg("鏃х郴缁熷悓姝ヨ繃鏉�");
         }
         if (dispatchOrderId != null) {
-            emergencyInfo.setLegacyDispatchOrdId(Long.parseLong(dispatchOrderId));
+            emergencyInfo.setLegacyDispatchOrdId(dispatchOrderId);
             emergencyInfo.setDispatchSyncStatus(2);
             emergencyInfo.setDispatchSyncTime(DateUtils.getNowDate());
             emergencyInfo.setDispatchSyncErrorMsg("鏃х郴缁熷悓姝ヨ繃鏉�");
@@ -143,6 +146,21 @@
         emergencyInfo.setCreateBy(createUserName);
         emergencyInfo.setUpdateBy(createUserName);
 
+        if(createVO.getLegacyDispatchNsTime() != null){
+            emergencyInfo.setLegacyDispatchNsTime(createVO.getLegacyDispatchNsTime());
+        }
+        if(createVO.getLegacyDispatchOrdClass() != null){
+            emergencyInfo.setLegacyDispatchOrdClass(createVO.getLegacyDispatchOrdClass());
+        }
+        if(createVO.getLegacyDispatchOrdNo() != null){
+            emergencyInfo.setLegacyDispatchOrdNo(createVO.getLegacyDispatchOrdNo());
+        }
+        if(createVO.getLegacyServiceNsTime() != null){
+            emergencyInfo.setLegacyServiceNsTime(createVO.getLegacyServiceNsTime());
+        }
+        if(createVO.getLegacyServiceOrdClass() != null){
+            emergencyInfo.setLegacyServiceOrdClass(createVO.getLegacyServiceOrdClass());
+        }
         sysTaskEmergencyMapper.insertSysTaskEmergency(emergencyInfo);
     }
 
@@ -251,8 +269,8 @@
             }
         }
 
-        if (updateVO.getTransferDistance() != null) {
-            oldEmergency.setTransferDistance(updateVO.getTransferDistance());
+        if (updateVO.getDistance() != null) {
+            oldEmergency.setTransferDistance(updateVO.getDistance());
         }
         if (updateVO.getPrice() != null) {
             oldEmergency.setTransferPrice(updateVO.getPrice());
@@ -276,7 +294,31 @@
         oldEmergency.setUpdateTime(DateUtils.getNowDate());
         oldEmergency.setUpdateBy(userName);
 
+        if( updateVO.getLegacyDispatchNsTime() != null) {
+            oldEmergency.setLegacyDispatchNsTime(updateVO.getLegacyDispatchNsTime());
+        }
+        if( updateVO.getLegacyServiceNsTime() != null){
+            oldEmergency.setLegacyServiceNsTime(updateVO.getLegacyServiceNsTime());
+        }
+        if( updateVO.getLegacyDispatchOrdClass() != null){
+            oldEmergency.setLegacyDispatchOrdClass(updateVO.getLegacyDispatchOrdClass());
+        }
+        if( updateVO.getLegacyDispatchOrdNo() != null){
+            oldEmergency.setLegacyDispatchOrdNo(updateVO.getLegacyDispatchOrdNo());
+        }
+        if( updateVO.getLegacyServiceOrdClass() != null){
+            oldEmergency.setLegacyServiceOrdClass(updateVO.getLegacyServiceOrdClass());
+        }
+
+        oldEmergency.setFromHq2Is(updateVO.getFromHQ2_is());
+        oldEmergency.setServiceOrdVip(updateVO.getServiceOrdVIP());
+
         sysTaskEmergencyMapper.updateSysTaskEmergency(oldEmergency);
+    }
+
+    @Override
+    public SysTaskEmergency selectSysTaskEmergencyByTaskId(Long taskId) {
+        return sysTaskEmergencyMapper.selectSysTaskEmergencyByTaskId(taskId);
     }
 
     @Override
@@ -285,7 +327,7 @@
             return;
         }
         
-        log.info("鏇存柊杞繍浠诲姟 taskId:{}", existingInfo.getTaskId());
+//        log.info("鏇存柊杞繍浠诲姟 taskId:{}", existingInfo.getTaskId());
         
         // 鏇存柊鎮h�呬俊鎭�
         if (createVO.getPatient() != null) {
@@ -341,7 +383,7 @@
                         if (coords != null) {
                             existingInfo.setHospitalOutLongitude(BigDecimal.valueOf(coords.get("lng")));
                             existingInfo.setHospitalOutLatitude(BigDecimal.valueOf(coords.get("lat")));
-                            log.info("杞嚭鍖婚櫌GPS鍧愭爣鑷姩鑾峰彇鎴愬姛: {}, {}", coords.get("lng"), coords.get("lat"));
+//                            log.info("杞嚭鍖婚櫌GPS鍧愭爣鑷姩鑾峰彇鎴愬姛: {}, {}", coords.get("lng"), coords.get("lat"));
                         }
                     } catch (Exception e) {
                         log.error("鑷姩鑾峰彇杞嚭鍖婚櫌GPS鍧愭爣澶辫触", e);
@@ -382,7 +424,7 @@
                         if (coords != null) {
                             existingInfo.setHospitalInLongitude(BigDecimal.valueOf(coords.get("lng")));
                             existingInfo.setHospitalInLatitude(BigDecimal.valueOf(coords.get("lat")));
-                            log.info("杞叆鍖婚櫌GPS鍧愭爣鑷姩鑾峰彇鎴愬姛: {}, {}", coords.get("lng"), coords.get("lat"));
+//                            log.info("杞叆鍖婚櫌GPS鍧愭爣鑷姩鑾峰彇鎴愬姛: {}, {}", coords.get("lng"), coords.get("lat"));
                         }
                     } catch (Exception e) {
                         log.error("鑷姩鑾峰彇杞叆鍖婚櫌GPS鍧愭爣澶辫触", e);
@@ -392,8 +434,8 @@
         }
         
         // 鏇存柊璐圭敤淇℃伅
-        if (createVO.getTransferDistance() != null) {
-            existingInfo.setTransferDistance(createVO.getTransferDistance());
+        if (createVO.getDistance() != null && BigDecimalUtil.izBigZero(createVO.getDistance())) {
+            existingInfo.setTransferDistance(createVO.getDistance());
         }
         if (createVO.getPrice() != null) {
             existingInfo.setTransferPrice(createVO.getPrice());
@@ -420,7 +462,26 @@
         // 绯荤粺瀛楁
         existingInfo.setUpdateTime(DateUtils.getNowDate());
         existingInfo.setUpdateBy(userName);
-        
+
+        if(createVO.getLegacyDispatchNsTime() != null){
+            existingInfo.setLegacyDispatchNsTime(createVO.getLegacyDispatchNsTime());
+        }
+        if(createVO.getLegacyDispatchOrdNo() != null){
+            existingInfo.setLegacyDispatchOrdNo(createVO.getLegacyDispatchOrdNo());
+        }
+        if(createVO.getLegacyServiceNsTime() != null){
+            existingInfo.setLegacyServiceNsTime(createVO.getLegacyServiceNsTime());
+        }
+        if(createVO.getLegacyDispatchOrdClass() != null){
+            existingInfo.setLegacyDispatchOrdClass(createVO.getLegacyDispatchOrdClass());
+        }
+        if(createVO.getLegacyServiceOrdClass() != null){
+            existingInfo.setLegacyServiceOrdClass(createVO.getLegacyServiceOrdClass());
+        }
+
+        existingInfo.setServiceOrdVip(createVO.getServiceOrdVIP());
+        existingInfo.setFromHq2Is(createVO.getFromHQ2_is());
+
         // 鎵ц鏇存柊
         sysTaskEmergencyMapper.updateSysTaskEmergency(existingInfo);
     }
@@ -432,6 +493,7 @@
         }
         try {
             sysTaskEmergencyService.markNeedResync(taskId);
+
         } catch (Exception e) {
             // 鏍囪澶辫触涓嶅奖鍝嶄富娴佺▼
         }

--
Gitblit v1.9.1