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