From 13a31edf7f569cdcf15d3c43a476a2c947f47fbf Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 09 十一月 2025 22:33:24 +0800
Subject: [PATCH] feat: 增加hospdata表,同步sqlserver过来

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java |  120 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 103 insertions(+), 17 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
index 828459a..a58c2c8 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
@@ -11,7 +11,15 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import java.security.cert.X509Certificate;
 
+import com.ruoyi.system.domain.*;
+import com.ruoyi.system.service.*;
+import com.ruoyi.system.task.ITaskAttachmentService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,11 +30,6 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.entity.SysDept;
-import com.ruoyi.system.domain.SysTask;
-import com.ruoyi.system.domain.SysTaskEmergency;
-import com.ruoyi.system.domain.SysTaskVehicle;
-import com.ruoyi.system.domain.SysTaskAssignee;
-import com.ruoyi.system.domain.VehicleInfo;
 import com.ruoyi.system.domain.vo.TaskCreateVO;
 import com.ruoyi.system.mapper.SysTaskMapper;
 import com.ruoyi.system.mapper.SysTaskEmergencyMapper;
@@ -35,10 +38,7 @@
 import com.ruoyi.system.mapper.VehicleInfoMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.mapper.SysDeptMapper;
-import com.ruoyi.system.service.ILegacySystemSyncService;
 import com.ruoyi.system.utils.TaskStatusConverter;
-import com.ruoyi.system.service.IDispatchOrdService;
-import com.ruoyi.system.service.ISysTaskEmergencyService;
 
 /**
  * 鏃х郴缁熷悓姝ervice涓氬姟灞傚鐞�
@@ -77,6 +77,15 @@
     
     @Autowired
     private ISysTaskEmergencyService sysTaskEmergencyService;
+
+    @Autowired
+    private ITaskAttachmentSyncService taskAttachmentSyncService;
+
+    @Autowired
+    private ISysTaskService sysTaskService;
+
+    @Autowired
+    private ITaskAttachmentService taskAttachmentService;
     
     /**
      * 鍚屾鎬ユ晳杞繍浠诲姟鍒版棫绯荤粺
@@ -265,7 +274,27 @@
             return false;
         }
     }
-    
+
+
+    /**
+     * 鍚屾浠诲姟闄勪欢鍒版棫绯荤粺
+     * @param taskAttachments
+     * @param serviceOrdId
+     * @param dispatchOrdId
+     * @param oaUserID
+     */
+    public void syncAttachmentToLegacy(List<SysTaskAttachment> taskAttachments, Long serviceOrdId,Long dispatchOrdId,Integer oaUserID) {
+        taskAttachments.forEach((taskAttachment)->{
+            Long imageDataId=  taskAttachmentSyncService.syncAttachmentToImageData(taskAttachment,serviceOrdId,dispatchOrdId,oaUserID);
+            if (imageDataId != null && imageDataId > 0) {
+
+                taskAttachment.setSyncedToImageData(1);
+                taskAttachment.setSyncTime(new Date());
+                taskAttachment.setImageDataId(imageDataId);
+                taskAttachmentService.updateAttachment(taskAttachment);
+            }
+        });
+    }
     /**
      * 鍚屾璋冨害鍗曞埌鏃х郴缁燂紙admin_save_24.asp锛�
      */
@@ -303,16 +332,23 @@
                 log.info("璋冨害鍗曞凡鍚屾杩囷紝浠诲姟ID: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId());
                 return emergency.getLegacyDispatchOrdId();
             }
-            
+
+            Long serviceOrdId=emergency.getLegacyServiceOrdId();
             // 蹇呴』鍏堝悓姝ユ湇鍔″崟
-            if (emergency.getLegacyServiceOrdId() == null || emergency.getLegacyServiceOrdId() <= 0) {
+            if (serviceOrdId == null || serviceOrdId <= 0) {
                 log.warn("鏈嶅姟鍗曟湭鍚屾锛屾棤娉曞悓姝ヨ皟搴﹀崟锛屼换鍔D: {}", taskId);
                 return null;
             }
-            
+
+
+
+
             // 鏇存柊鍚屾鐘舵�佷负鍚屾涓�
             emergency.setDispatchSyncStatus(1);
             sysTaskEmergencyService.updateSysTaskEmergency(emergency);
+
+            SysUser u=sysUserMapper.selectUserById(task.getCreatorId());
+            Integer oaUserID= u.getOaUserId();
             
             // 鏋勫缓璇锋眰鍙傛暟
             Map<String, String> params = buildDispatchOrderParams(task, emergency);
@@ -330,7 +366,13 @@
                 emergency.setDispatchSyncTime(new Date());
                 emergency.setDispatchSyncErrorMsg(null);
                 sysTaskEmergencyService.updateSysTaskEmergency(emergency);
-                
+
+                List<SysTaskAttachment> taskAttachments= sysTaskService.getAttachmentsByTaskId(taskId);
+                if (taskAttachments != null && !taskAttachments.isEmpty()) {
+                    //鍚屾闄勪欢
+                   this.syncAttachmentToLegacy(taskAttachments,serviceOrdId,dispatchOrdId,oaUserID);
+                }
+
                 log.info("璋冨害鍗曞悓姝ユ垚鍔燂紝浠诲姟ID: {}, DispatchOrdID: {}", taskId, dispatchOrdId);
                 return dispatchOrdId;
             } else {
@@ -383,7 +425,7 @@
             while (true) {
                 // 鍒嗛〉鏌ヨ宸插悓姝ユ湇鍔″崟浣嗘湭鍚屾璋冨害鍗曠殑浠诲姟
                 List<SysTaskEmergency> pendingTasks = sysTaskEmergencyService.selectPendingDispatchSyncTasks(offset, pageSize);
-                
+                log.info("鏌ヨ鍒版湭鍚屾璋冨害鍗曠殑浠诲姟鏁伴噺: {}", pendingTasks.size());
                 if (pendingTasks == null || pendingTasks.isEmpty()) {
                     log.info("娌℃湁鏇村闇�瑕佸悓姝ヨ皟搴﹀崟鐨勪换鍔★紝offset: {}", offset);
                     break; // 娌℃湁鏇村鏁版嵁锛岄��鍑哄惊鐜�
@@ -393,7 +435,9 @@
                 
                 int pageSuccessCount = 0;
                 for (SysTaskEmergency emergency : pendingTasks) {
+                    log.info("寮�濮嬪悓姝ヨ皟搴﹀崟锛屼换鍔D: {}", emergency.getTaskId());
                     Long dispatchOrdId = syncDispatchOrderToLegacy(emergency.getTaskId());
+
                     if (dispatchOrdId != null && dispatchOrdId > 0) {
                         pageSuccessCount++;
                     }
@@ -938,11 +982,20 @@
     }
     
     /**
-     * 鍙戦�丠TTP POST璇锋眰
+     * 鍙戦�丠TTP/HTTPS POST璇锋眰
+     * 鏀寔HTTPS鑷鍚嶈瘉涔�
      */
     private String sendHttpPost(String urlString, Map<String, String> params) throws Exception {
         URL url = new URL(urlString);
         HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+        
+        // 濡傛灉鏄疕TTPS璇锋眰锛岄厤缃甋SL淇′换鎵�鏈夎瘉涔�
+        if (conn instanceof HttpsURLConnection) {
+            HttpsURLConnection httpsConn = (HttpsURLConnection) conn;
+            httpsConn.setSSLSocketFactory(createTrustAllSSLContext().getSocketFactory());
+            httpsConn.setHostnameVerifier((hostname, session) -> true); // 淇′换鎵�鏈変富鏈哄悕
+            log.debug("閰嶇疆HTTPS杩炴帴锛屼俊浠绘墍鏈塖SL璇佷功锛孶RL: {}", urlString);
+        }
         
         try {
             // 璁剧疆杩炴帴灞炴��
@@ -988,8 +1041,7 @@
                 }
             } else {
                 log.error("璇锋眰澶辫触锛岃姹俇RL {},鍙傛暟 {}",urlString,postData);
-
-                throw new Exception("HTTP璇锋眰澶辫触锛屽搷搴旂爜: " + responseCode);
+                throw new Exception("HTTP/HTTPS璇锋眰澶辫触锛屽搷搴旂爜: " + responseCode);
             }
             
         } finally {
@@ -998,6 +1050,40 @@
     }
     
     /**
+     * 鍒涘缓淇′换鎵�鏈塖SL璇佷功鐨凷SLContext
+     * 鐢ㄤ簬鏀寔鑷鍚嶈瘉涔︾殑HTTPS璇锋眰
+     * 
+     * 娉ㄦ剰锛氭鏂规硶浼氫俊浠绘墍鏈塖SL璇佷功锛屽寘鎷嚜绛惧悕璇佷功
+     * 浠呯敤浜庝笌鏃х郴缁熺殑鍐呴儴閫氫俊锛岀敓浜х幆澧冨缓璁娇鐢ㄦ瑙凜A璇佷功
+     */
+    private SSLContext createTrustAllSSLContext() throws Exception {
+        // 鍒涘缓淇′换鎵�鏈夎瘉涔︾殑TrustManager
+        TrustManager[] trustAllCerts = new TrustManager[] {
+            new X509TrustManager() {
+                @Override
+                public X509Certificate[] getAcceptedIssuers() {
+                    return null;
+                }
+                
+                @Override
+                public void checkClientTrusted(X509Certificate[] certs, String authType) {
+                    // 淇′换鎵�鏈夊鎴风璇佷功
+                }
+                
+                @Override
+                public void checkServerTrusted(X509Certificate[] certs, String authType) {
+                    // 淇′换鎵�鏈夋湇鍔″櫒璇佷功
+                }
+            }
+        };
+        
+        // 瀹夎淇′换鎵�鏈夎瘉涔︾殑TrustManager
+        SSLContext sslContext = SSLContext.getInstance("TLS");
+        sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
+        return sslContext;
+    }
+    
+    /**
      * 瑙f瀽鏃х郴缁熷搷搴�
      * 棰勬湡鏍煎紡: "OK:ServiceOrdID" 鎴栭敊璇俊鎭�
      */

--
Gitblit v1.9.1