From d75541110d428f61a9fe3378110248b7dd78e240 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期三, 21 五月 2025 12:31:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java |   37 +++++++++++++++++++++++++++++++------
 1 files changed, 31 insertions(+), 6 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 5a9c0e1..52ac0a3 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
@@ -2,9 +2,8 @@
 
 import java.math.BigDecimal;
 import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import cn.hutool.core.util.IdUtil;
 import com.aps.common.core.utils.DateUtils;
@@ -13,6 +12,7 @@
 import com.aps.core.domain.ApsMaterialProductGroupManagement;
 import com.aps.core.mapper.ApsMaterialProductGroupManagementMapper;
 import com.aps.core.service.IApsMaterialProductGroupManagementService;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import io.micrometer.common.util.StringUtils;
 import lombok.SneakyThrows;
 import org.apache.poi.ss.usermodel.Row;
@@ -123,7 +123,8 @@
             List<ApsMaterialProductGroupManagement> list = new ArrayList<>();
 
             /*鏁版嵁鍒椾粠1寮�濮�*/
-            for (int i = 1; i <= rows; i++) {
+            Set<String> keys = new HashSet<>();
+            for (int i = rows; i > 0; --i) {
                 Row row = sheet.getRow(i);
                 if (row.getCell(0) == null) {
                     continue;
@@ -149,11 +150,35 @@
                     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()) {
-                apsMaterialProductGroupManagementMapper.insert(list);
+                Set<String> facCodeKey = apsMaterialProductGroupManagementMapper.selectByFacOrMaterial(keys);
+                if (!facCodeKey.isEmpty()) {
+                    Iterator<ApsMaterialProductGroupManagement> it = list.iterator();
+                    while (it.hasNext()) {
+                        ApsMaterialProductGroupManagement item = it.next();
+                        if (facCodeKey.contains(item.getKey())) {
+                            LambdaUpdateWrapper<ApsMaterialProductGroupManagement> wrapper = new LambdaUpdateWrapper<>();
+                            wrapper.eq(ApsMaterialProductGroupManagement::getFactory, item.getFactory());
+                            wrapper.eq(ApsMaterialProductGroupManagement::getMaterialCode, item.getMaterialCode());
+                            item.setCreateBy(null);
+                            item.setCreateTime(null);
+                            item.setUpdateBy(SecurityUtils.getUsername());
+                            item.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+                            apsMaterialProductGroupManagementMapper.update(item, wrapper);
+                            it.remove();
+                        }
+                    }
+                }
+
+                if (!list.isEmpty()) {
+                    apsMaterialProductGroupManagementMapper.insert(list);
+                }
             }
             return list.size();
         }

--
Gitblit v1.9.3