From bc0fdd1f0c20ca4737e8f073050f37b27a658694 Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期四, 22 五月 2025 16:31:12 +0800
Subject: [PATCH] 管路&气柜产能负载优化,实现动态row聚合统计

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java
index de29aca..9cb9f90 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java
@@ -122,8 +122,9 @@
         if (rows > 0) {
             List<ApsMaterialProductGroupManagement> list = new ArrayList<>();
 
-            /*鏁版嵁鍒椾粠1寮�濮�*/
-            for (int i = 1; i <= rows; i++) {
+            /*鏁版嵁琛屼粠1寮�濮�*/
+            Set<String> keys = new HashSet<>();
+            for (int i = rows; i > 0; --i) {
                 Row row = sheet.getRow(i);
                 if (row.getCell(0) == null) {
                     continue;
@@ -149,20 +150,19 @@
                     item.setIsMain(isMain);
                     item.setCreateBy(SecurityUtils.getUsername());
                     item.setCreateTime(DateUtils.getNowDate());
-                    list.add(item);
+                    if (!keys.contains(item.getKey())) {
+                        keys.add(item.getKey());
+                        list.add(item);
+                    }
                 }
             }
             if (!list.isEmpty()) {
-                Set<String> facCodeKey = apsMaterialProductGroupManagementMapper.selectByFacOrMaterial(
-                        list.stream().map(ApsMaterialProductGroupManagement::getFactory).collect(Collectors.toSet()),
-                        list.stream().map(ApsMaterialProductGroupManagement::getMaterialCode).collect(Collectors.toSet())
-                );
+                Set<String> facCodeKey = apsMaterialProductGroupManagementMapper.selectByFacOrMaterial(keys);
                 if (!facCodeKey.isEmpty()) {
                     Iterator<ApsMaterialProductGroupManagement> it = list.iterator();
                     while (it.hasNext()) {
                         ApsMaterialProductGroupManagement item = it.next();
-                        String key = item.getFactory() + "##" + item.getMaterialCode();
-                        if (facCodeKey.contains(key)) {
+                        if (facCodeKey.contains(item.getKey())) {
                             LambdaUpdateWrapper<ApsMaterialProductGroupManagement> wrapper = new LambdaUpdateWrapper<>();
                             wrapper.eq(ApsMaterialProductGroupManagement::getFactory, item.getFactory());
                             wrapper.eq(ApsMaterialProductGroupManagement::getMaterialCode, item.getMaterialCode());

--
Gitblit v1.9.3