From 19556250e5bca5f37f65bf4918a8d77b05f5227d Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Tue, 3 Jun 2025 16:39:11 +0800 Subject: [PATCH] 2025-06-03 --- .../impl/RoutingManagementServiceImpl.java | 79 ++++++++++--------- .../mapper/part/RoutingManagementMapper.xml | 10 +-- 2 files changed, 42 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/spring/modules/part/service/impl/RoutingManagementServiceImpl.java b/src/main/java/com/spring/modules/part/service/impl/RoutingManagementServiceImpl.java index bd72e582..6a62e85a 100644 --- a/src/main/java/com/spring/modules/part/service/impl/RoutingManagementServiceImpl.java +++ b/src/main/java/com/spring/modules/part/service/impl/RoutingManagementServiceImpl.java @@ -1612,53 +1612,54 @@ public class RoutingManagementServiceImpl extends ServiceImpl plmWorkCenterCosts = routingManagementMapper.getPLMWorkCenterCosts(arr); -// -// // 转换列表为映射以便于比较 -// Map mapListAll = ifsWorkCenterCosts.stream() -// .collect(Collectors.toMap(WorkCenterCost::getIfsRowId, Function.identity())); -// Map mapList1 = plmWorkCenterCosts.stream() -// .collect(Collectors.toMap(WorkCenterCost::getIfsRowId, Function.identity())); - -// // 找出需要新增的对象(IFS有而PLM没有的) -// Set keysToAdd = new HashSet<>(mapListAll.keySet()); -// keysToAdd.removeAll(mapList1.keySet()); -// List toAdd = keysToAdd.stream() -// .map(mapListAll::get) -// .collect(Collectors.toList()); -// -// // 找出需要更新的对象(ifsRowVersion不同) -// Set commonKeys = new HashSet<>(mapListAll.keySet()); -// commonKeys.retainAll(mapList1.keySet()); -// List toUpdate = commonKeys.stream() -// .filter(key -> !mapListAll.get(key).getIfsRowVersion().equals(mapList1.get(key).getIfsRowVersion())) -// .map(key -> mapListAll.get(key)) // 选择listAll中的版本进行更新 -// .collect(Collectors.toList()); + // 查询PLM数据 + String[] arr = data.getSiteCon().replace("(", "").replace(")", "").replace("'", "").split(","); + List plmWorkCenterCosts = routingManagementMapper.getPLMWorkCenterCosts(arr); + + // 转换列表为映射以便于比较 + Map mapListAll = ifsWorkCenterCosts.stream() + .collect(Collectors.toMap(WorkCenterCost::getKey, Function.identity())); + Map mapList1 = plmWorkCenterCosts.stream() + .collect(Collectors.toMap(WorkCenterCost::getKey, Function.identity())); + + // 找出需要新增的对象(IFS有而PLM没有的) + Set keysToAdd = new HashSet<>(mapListAll.keySet()); + keysToAdd.removeAll(mapList1.keySet()); + List toAdd = keysToAdd.stream() + .map(mapListAll::get) + .collect(Collectors.toList()); + + // 找出需要更新的对象(ifsRowVersion不同) + Set commonKeys = new HashSet<>(mapListAll.keySet()); + commonKeys.retainAll(mapList1.keySet()); + List toUpdate = commonKeys.stream() + .filter(key -> !mapListAll.get(key).getIfsRowVersion().equals(mapList1.get(key).getIfsRowVersion())) + .map(key -> mapListAll.get(key)) // 选择listAll中的版本进行更新 + .collect(Collectors.toList()); // 删除再新增 - if (!ifsWorkCenterCosts.isEmpty()) { + if (!toAdd.isEmpty()) { // 清空数据 - routingManagementMapper.deleteWorkCenterCostAll(); + // 2025-06-03 改回原来的 有则修改 无则新增 + // routingManagementMapper.deleteWorkCenterCostAll(); // 分批插入 int batchSize = 50; // 假设每批100条记录 - for (int i = 0; i < ifsWorkCenterCosts.size(); i += batchSize) { - int end = Math.min(i + batchSize, ifsWorkCenterCosts.size()); - List subList = ifsWorkCenterCosts.subList(i, end); + for (int i = 0; i < toAdd.size(); i += batchSize) { + int end = Math.min(i + batchSize, toAdd.size()); + List subList = toAdd.subList(i, end); routingManagementMapper.syncSaveWorkCenterCost(subList); } } -// // 修改 -// if (!toUpdate.isEmpty()) { -// // 分批修改 -// int batchSize = 50; // 假设每批100条记录 -// for (int i = 0; i < toUpdate.size(); i += batchSize) { -// int end = Math.min(i + batchSize, toUpdate.size()); -// List subList = toUpdate.subList(i, end); -// routingManagementMapper.syncUpdateWorkCenterCost(subList); -// } -// } + // 修改 + if (!toUpdate.isEmpty()) { + // 分批修改 + int batchSize = 50; // 假设每批100条记录 + for (int i = 0; i < toUpdate.size(); i += batchSize) { + int end = Math.min(i + batchSize, toUpdate.size()); + List subList = toUpdate.subList(i, end); + routingManagementMapper.syncUpdateWorkCenterCost(subList); + } + } } @Override diff --git a/src/main/resources/mapper/part/RoutingManagementMapper.xml b/src/main/resources/mapper/part/RoutingManagementMapper.xml index ee164655..c46b106a 100644 --- a/src/main/resources/mapper/part/RoutingManagementMapper.xml +++ b/src/main/resources/mapper/part/RoutingManagementMapper.xml @@ -1558,11 +1558,11 @@ INSERT INTO work_center_cost (site, work_center_no, item_no, unit_cost, overhead1_cost, overhead2_cost, um_id, begin_date, end_date, remark, - current_work_center_cost, ifs_row_id, ifs_row_version, cost_set, cost_set_desc, wc_rate, wc_cost_code, overhead1_fac, overhead2_fac, overhead1_appl, overhead2_appl) + ifs_row_id, ifs_row_version, cost_set, cost_set_desc, wc_rate, wc_cost_code, overhead1_fac, overhead2_fac, overhead1_appl, overhead2_appl) VALUES (#{item.site}, #{item.workCenterNo}, #{item.itemNo,jdbcType=FLOAT}, #{item.unitCost,jdbcType=FLOAT}, #{item.overhead1Cost,jdbcType=FLOAT}, #{item.overhead2Cost,jdbcType=FLOAT}, #{item.umId}, #{item.beginDate,jdbcType=DATE}, #{item.endDate,jdbcType=DATE}, #{item.remark}, - #{item.currentWorkCenterCost,jdbcType=DECIMAL}, #{item.ifsRowId}, #{item.ifsRowVersion}, #{item.costSet}, #{item.costSetDesc}, #{item.wcRate}, #{item.wcCostCode}, #{item.overhead1Fac}, #{item.overhead2Fac}, #{item.overhead1Appl}, #{item.overhead2Appl}) + #{item.ifsRowId}, #{item.ifsRowVersion}, #{item.costSet}, #{item.costSetDesc}, #{item.wcRate}, #{item.wcCostCode}, #{item.overhead1Fac}, #{item.overhead2Fac}, #{item.overhead1Appl}, #{item.overhead2Appl}) @@ -1618,12 +1618,6 @@ ELSE remark END, - current_work_center_cost = CASE ifs_row_id - - WHEN #{item.ifsRowId} THEN #{item.currentWorkCenterCost} - - ELSE current_work_center_cost - END, ifs_row_version = CASE ifs_row_id WHEN #{item.ifsRowId} THEN #{item.ifsRowVersion}