From ae1e467411a786c37fb20b9bce2a7a4da64aa412 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期一, 10 十一月 2025 21:35:55 +0800
Subject: [PATCH] feat:在app中增加成交价的自动计算
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DepartmentSyncServiceImpl.java | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 108 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 30d4f18..3af352b 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
@@ -10,9 +10,11 @@
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.DepartmentSyncDTO;
+import com.ruoyi.system.domain.OrderClassDTO;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.system.service.IDepartmentSyncService;
import com.ruoyi.system.service.IDepartmentSyncDataService;
+import com.ruoyi.system.service.IOrderClassDataService;
/**
* 閮ㄩ棬鍚屾Service涓氬姟灞傚鐞�
@@ -30,10 +32,11 @@
{
private static final Logger log = LoggerFactory.getLogger(DepartmentSyncServiceImpl.class);
-
-
@Autowired
private SysDeptMapper sysDeptMapper;
+
+ @Autowired
+ private IOrderClassDataService orderClassDataService;
@@ -49,7 +52,7 @@
*/
@Override
@Transactional
- public AjaxResult syncBranchDepartments(List<DepartmentSyncDTO> branchDepts)
+ public AjaxResult syncBranchDepartments(List<DepartmentSyncDTO> branchDepts,List<OrderClassDTO> serviceOrderList,List<OrderClassDTO> dispatchOrderList)
{
try
{
@@ -59,6 +62,9 @@
}
log.info("寮�濮嬪悓姝� {} 鏉″垎鍏徃鏁版嵁鍒� MySQL 鏁版嵁搴�...", branchDepts.size());
+
+ // 涓�娆℃�т粠SQL Server鏌ヨ鎵�鏈夌紪鐮佹暟鎹紝閬垮厤鍦ㄥ惊鐜腑閲嶅鏌ヨ
+
// 浣跨敤Map鏉ヨ窡韪凡鍒涘缓鐨勫垎鍏徃锛宬ey涓哄垎鍏徃鍚嶇О锛寁alue涓洪儴闂↖D
Map<String, Long> branchMap = new HashMap<>();
@@ -95,10 +101,16 @@
SysDept existingBranch = sysDeptMapper.checkDeptNameUnique(branchName, 100L);
if (existingBranch != null)
{
- // 鍒嗗叕鍙稿凡瀛樺湪锛屾洿鏂癲epartment_id
+ // 鍒嗗叕鍙稿凡瀛樺湪锛屾洿鏂扮紪鐮�
branchDeptId = existingBranch.getDeptId();
branchMap.put(branchName, branchDeptId);
- log.info("鍒嗗叕鍙稿凡瀛樺湪: {}, ID: {}", branchName, branchDeptId);
+
+ // 妫�鏌ュ苟鏇存柊缂栫爜
+ syncOrderClassCodes(existingBranch, parts[0].trim(), serviceOrderList, dispatchOrderList);
+// existingBranch.setDepartmentId(dto.getDepartmentId());
+ sysDeptMapper.updateDept(existingBranch);
+ log.info("鏇存柊鍒嗗叕鍙哥紪鐮�: {}, 鏈嶅姟鍗曠紪鐮�: {}, 璋冨害鍗曠紪鐮�: {}",
+ branchName, existingBranch.getServiceOrderClass(), existingBranch.getDispatchOrderClass());
}
else
{
@@ -110,12 +122,17 @@
newBranch.setOrderNum(branchMap.size() + 1); // 鎺掑簭
newBranch.setStatus("0"); // 姝e父鐘舵��
newBranch.setCreateBy("sync");
+// newBranch.setDepartmentId(dto.getDepartmentId());
+
+ // 鑷姩鍖归厤骞惰缃湇鍔″崟鍜岃皟搴﹀崟缂栫爜
+ syncOrderClassCodes(newBranch, parts[0].trim(), serviceOrderList, dispatchOrderList);
sysDeptMapper.insertDept(newBranch);
branchDeptId = newBranch.getDeptId();
branchMap.put(branchName, branchDeptId);
createdBranch++;
- log.info("鍒涘缓鏂板垎鍏徃: {}, ID: {}", branchName, branchDeptId);
+ log.info("鍒涘缓鏂板垎鍏徃: {}, ID: {}, 鏈嶅姟鍗曠紪鐮�: {}, 璋冨害鍗曠紪鐮�: {}",
+ branchName, branchDeptId, newBranch.getServiceOrderClass(), newBranch.getDispatchOrderClass());
}
}
@@ -129,6 +146,7 @@
// 閮ㄩ棬宸插瓨鍦紝鏇存柊淇℃伅
existingDept.setDeptName(deptName);
existingDept.setUpdateBy("sync");
+// existingDept.setDepartmentId(dto.getDepartmentId());
sysDeptMapper.updateDept(existingDept);
updatedDept++;
log.info("鏇存柊閮ㄩ棬: {} -> {}", branchName, deptName);
@@ -270,6 +288,7 @@
// 閮ㄩ棬宸插瓨鍦紝鏇存柊淇℃伅
existingDept.setDeptName(deptName);
existingDept.setUpdateBy("sync");
+ existingDept.setDepartmentId(dto.getDepartmentId());
sysDeptMapper.updateDept(existingDept);
updatedDept++;
log.info("鏇存柊杞繍閮ㄥ瓙閮ㄩ棬: {}", deptName);
@@ -327,4 +346,87 @@
return AjaxResult.error("鍚屾澶辫触: " + e.getMessage());
}
}
+
+ /**
+ * 鍚屾璁㈠崟缂栫爜锛堟湇鍔″崟鍜岃皟搴﹀崟缂栫爜锛�
+ *
+ * 鏍规嵁鍒嗗叕鍙稿悕绉颁腑鐨勫湴鍚嶏紝鑷姩鍖归厤SQL Server涓殑缂栫爜骞舵洿鏂板埌閮ㄩ棬瀵硅薄
+ *
+ * @param dept 閮ㄩ棬瀵硅薄锛堝垎鍏徃锛�
+ * @param cityName 鍩庡競鍚嶇О锛堝锛氫腑灞便�佸箍宸炪�佹箾姹燂級
+ * @param serviceOrderList 鏈嶅姟鍗曠紪鐮佸垪琛紙浠嶴QL Server鏌ヨ锛�
+ * @param dispatchOrderList 璋冨害鍗曠紪鐮佸垪琛紙浠嶴QL Server鏌ヨ锛�
+ */
+ private void syncOrderClassCodes(SysDept dept, String cityName,
+ List<OrderClassDTO> serviceOrderList,
+ List<OrderClassDTO> dispatchOrderList)
+ {
+ if (serviceOrderList == null || dispatchOrderList == null)
+ {
+ log.warn("缂栫爜鍒楄〃涓虹┖锛岃烦杩囩紪鐮佸悓姝� - 鍩庡競: {}", cityName);
+ return;
+ }
+
+ try
+ {
+ // 鍖归厤鏈嶅姟鍗曠紪鐮�
+ String serviceOrderClass = matchCityNameToCode(cityName, serviceOrderList);
+ if (serviceOrderClass != null)
+ {
+ dept.setServiceOrderClass(serviceOrderClass);
+ log.info("鍖归厤鍒版湇鍔″崟缂栫爜 - 鍩庡競: {}, 缂栫爜: {}", cityName, serviceOrderClass);
+ }
+ else
+ {
+ log.warn("鏈壘鍒板尮閰嶇殑鏈嶅姟鍗曠紪鐮� - 鍩庡競: {}", cityName);
+ }
+
+ // 鍖归厤璋冨害鍗曠紪鐮�
+ String dispatchOrderClass = matchCityNameToCode(cityName, dispatchOrderList);
+ if (dispatchOrderClass != null)
+ {
+ dept.setDispatchOrderClass(dispatchOrderClass);
+ log.info("鍖归厤鍒拌皟搴﹀崟缂栫爜 - 鍩庡競: {}, 缂栫爜: {}", cityName, dispatchOrderClass);
+ }
+ else
+ {
+ log.warn("鏈壘鍒板尮閰嶇殑璋冨害鍗曠紪鐮� - 鍩庡競: {}", cityName);
+ }
+ }
+ catch (Exception e)
+ {
+ log.error("鍚屾璁㈠崟缂栫爜澶辫触 - 鍩庡競: {}", cityName, e);
+ }
+ }
+
+ /**
+ * 鏍规嵁鍩庡競鍚嶇О鍖归厤缂栫爜
+ *
+ * 鍖归厤瑙勫垯锛氬鏋渧text涓寘鍚煄甯傚悕绉帮紝鍒欒繑鍥炲搴旂殑vOrder2缂栫爜
+ * 渚嬪锛歝ityName="涓北", vtext="涓北鏈嶅姟鍗�", vOrder2="JA" -> 杩斿洖"JA"
+ *
+ * @param cityName 鍩庡競鍚嶇О锛堝锛氫腑灞便�佸箍宸烇級
+ * @param orderClassList 缂栫爜鍒楄〃
+ * @return 鍖归厤鐨勭紪鐮佸�硷紙vOrder2锛夛紝鏈尮閰嶈繑鍥瀗ull
+ */
+ private String matchCityNameToCode(String cityName, List<OrderClassDTO> orderClassList)
+ {
+ if (StringUtils.isEmpty(cityName) || orderClassList == null || orderClassList.isEmpty())
+ {
+ return null;
+ }
+
+ // 閬嶅巻缂栫爜鍒楄〃锛屾煡鎵惧寘鍚煄甯傚悕绉扮殑椤�
+ for (OrderClassDTO dto : orderClassList)
+ {
+ if (dto.getVtext() != null && dto.getVtext().contains(cityName))
+ {
+ log.debug("鍩庡競鍚嶇О鍖归厤鎴愬姛 - 鍩庡競: {}, vtext: {}, vOrder2: {}",
+ cityName, dto.getVtext(), dto.getVOrder2());
+ return dto.getVOrder2();
+ }
+ }
+
+ return null;
+ }
}
--
Gitblit v1.9.1