From 5f2ee03958a1a16dc27195c76ea7cffb422c95d1 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期五, 19 十二月 2025 22:40:34 +0800
Subject: [PATCH] feat: 任务修改接口,删除一些不要的字段同步

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DepartmentSyncServiceImpl.java |   94 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 88 insertions(+), 6 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DepartmentSyncServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DepartmentSyncServiceImpl.java
index 3af352b..5e1cf76 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DepartmentSyncServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DepartmentSyncServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.service.impl;
 
+import java.math.BigDecimal;
 import java.util.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -52,7 +53,7 @@
      */
     @Override
     @Transactional
-    public AjaxResult syncBranchDepartments(List<DepartmentSyncDTO> branchDepts,List<OrderClassDTO> serviceOrderList,List<OrderClassDTO> dispatchOrderList)
+    public AjaxResult syncBranchDepartments(List<DepartmentSyncDTO> branchDepts,List<OrderClassDTO> serviceOrderList,List<OrderClassDTO> dispatchOrderList,List<Map<String, Object>> addressList)
     {
         try
         {
@@ -87,11 +88,32 @@
                 if (parts.length != 2)
                 {
                     log.warn("閮ㄩ棬鍚嶇О鏍煎紡涓嶆纭紝璺宠繃: {}", fullName);
-                    continue;
+                   parts= fullName.split("-");
+                   if(parts.length != 2) {
+                       continue;
+                   }
+                }
+                String part="";
+                //鍙鍙戠幇鏈�(鏂�)鎴栵紙鏂帮級灏卞湪branchName涓姞涓柊 瀛�
+                if(fullName.contains("(鏂�)") || fullName.contains("锛堟柊锛�")) {
+                    part="锛堟柊锛�";
                 }
 
                 String branchName = parts[0].trim() + "鍒嗗叕鍙�";  // 婀涙睙 -> 婀涙睙鍒嗗叕鍙�
                 String deptName = parts[1].trim();              // 鎶ゅ+
+                String cityName=parts[0].trim();
+                String namePart=parts[0].trim();
+                if(namePart.contains("(鏂�)") || namePart.contains("锛堟柊锛�")) {
+                    branchName=namePart+"鍒嗗叕鍙�";
+                    cityName=namePart;
+                    deptName=parts[1].trim();
+                }
+                else{
+                    branchName=namePart+part+"鍒嗗叕鍙�";
+                    cityName=namePart+ part;
+                    deptName=parts[1].trim();
+                }
+
 
                 // 鑾峰彇鎴栧垱寤哄垎鍏徃
                 Long branchDeptId = branchMap.get(branchName);
@@ -106,7 +128,7 @@
                         branchMap.put(branchName, branchDeptId);
                         
                         // 妫�鏌ュ苟鏇存柊缂栫爜
-                        syncOrderClassCodes(existingBranch, parts[0].trim(), serviceOrderList, dispatchOrderList);
+                        syncOrderClassCodes(existingBranch, cityName, serviceOrderList, dispatchOrderList,addressList);
 //                        existingBranch.setDepartmentId(dto.getDepartmentId());
                         sysDeptMapper.updateDept(existingBranch);
                         log.info("鏇存柊鍒嗗叕鍙哥紪鐮�: {}, 鏈嶅姟鍗曠紪鐮�: {}, 璋冨害鍗曠紪鐮�: {}", 
@@ -125,7 +147,7 @@
 //                        newBranch.setDepartmentId(dto.getDepartmentId());
 
                         // 鑷姩鍖归厤骞惰缃湇鍔″崟鍜岃皟搴﹀崟缂栫爜
-                        syncOrderClassCodes(newBranch, parts[0].trim(), serviceOrderList, dispatchOrderList);
+                        syncOrderClassCodes(newBranch, cityName, serviceOrderList, dispatchOrderList,addressList);
 
                         sysDeptMapper.insertDept(newBranch);
                         branchDeptId = newBranch.getDeptId();
@@ -204,6 +226,24 @@
             return AjaxResult.error("鍚屾澶辫触: " + e.getMessage());
         }
     }
+
+    /**
+     * 鍚屾鍒嗗叕鍙哥殑鍦板潃鏁版嵁
+     * @param departAddress
+     */
+    public void syncDeptAddress(List<Map<String,Object>> departAddress){
+        List<SysDept> depts =sysDeptMapper.selectDeptListByParentId(100L);
+        for(SysDept dept:depts){
+            Map<String,Object> addressInfo = getDeptAddressInfo(departAddress,dept.getServiceOrderClass());
+            if(addressInfo != null){
+                dept.setDepartureAddress(getAddress(addressInfo));
+                dept.setDepartureLongitude(getLongitude(addressInfo));
+                dept.setDepartureLatitude(getLatitude(addressInfo));
+            }
+            sysDeptMapper.updateDept(dept);
+        }
+
+    }
     
     /**
      * 鍚屾杞繍閮ㄥ拰瀛愰儴闂ㄦ暟鎹紙浣跨敤澶栭儴浼犲叆鐨勬暟鎹簮锛�
@@ -218,7 +258,7 @@
      */
     @Override
     @Transactional
-    public AjaxResult syncTransportDepartments(List<DepartmentSyncDTO> transportDepts)
+    public AjaxResult syncTransportDepartments(List<DepartmentSyncDTO> transportDepts, List<Map<String, Object>> addressList)
     {
         try
         {
@@ -347,6 +387,34 @@
         }
     }
 
+    private Map<String,Object> getDeptAddressInfo(List<Map<String,Object>> departAddress,String ServiceBranch){
+        return departAddress.stream()
+            .filter(map -> map.get("ServiceBranch").equals(ServiceBranch))
+            .findFirst()
+            .orElse(null);
+    }
+
+    private String getAddress(Map<String, Object> addressInfo){
+        if(addressInfo == null){
+            return null;
+        }
+        return addressInfo.get("ServiceAddress").toString();
+    }
+
+    private BigDecimal getLongitude(Map<String, Object> addressInfo){
+        if(addressInfo == null){
+            return null;
+        }
+        return new BigDecimal(addressInfo.get("ServiceAddress_lng").toString());
+    }
+
+    private BigDecimal getLatitude(Map<String, Object> addressInfo){
+        if(addressInfo == null){
+            return null;
+        }
+        return new BigDecimal(addressInfo.get("ServiceAddress_lat").toString());
+    }
+
     /**
      * 鍚屾璁㈠崟缂栫爜锛堟湇鍔″崟鍜岃皟搴﹀崟缂栫爜锛�
      * 
@@ -359,7 +427,7 @@
      */
     private void syncOrderClassCodes(SysDept dept, String cityName, 
                                     List<OrderClassDTO> serviceOrderList,
-                                    List<OrderClassDTO> dispatchOrderList)
+                                    List<OrderClassDTO> dispatchOrderList, List<Map<String, Object>> addressList)
     {
         if (serviceOrderList == null || dispatchOrderList == null)
         {
@@ -373,6 +441,19 @@
             String serviceOrderClass = matchCityNameToCode(cityName, serviceOrderList);
             if (serviceOrderClass != null)
             {
+                Map<String, Object> addressInfo = this.getDeptAddressInfo(addressList, serviceOrderClass);
+                String address=this.getAddress(addressInfo);
+                if(address!=null){
+                    dept.setDepartureAddress(address);
+                }
+                BigDecimal lon = this.getLongitude(addressInfo);
+                if(lon!=null){
+                    dept.setDepartureLongitude(lon);
+                }
+                BigDecimal lat = this.getLatitude(addressInfo);
+                if(lat!=null){
+                    dept.setDepartureLatitude(lat);
+                }
                 dept.setServiceOrderClass(serviceOrderClass);
                 log.info("鍖归厤鍒版湇鍔″崟缂栫爜 - 鍩庡競: {}, 缂栫爜: {}", cityName, serviceOrderClass);
             }
@@ -419,6 +500,7 @@
         // 閬嶅巻缂栫爜鍒楄〃锛屾煡鎵惧寘鍚煄甯傚悕绉扮殑椤�
         for (OrderClassDTO dto : orderClassList)
         {
+            //鏈変簺鍔犱簡鏂� TODO
             if (dto.getVtext() != null && dto.getVtext().contains(cityName))
             {
                 log.debug("鍩庡競鍚嶇О鍖归厤鎴愬姛 - 鍩庡競: {}, vtext: {}, vOrder2: {}", 

--
Gitblit v1.9.1