From 6c8973d78b04b1aa132dccbd478ba8abbcf2b6c1 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 25 四月 2025 09:10:21 +0800
Subject: [PATCH] 1.国产网分仪 2.可靠性计划成品计划

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java |   74 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 72 insertions(+), 2 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java
index 632d656..b225652 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java
@@ -9,8 +9,11 @@
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -28,8 +31,75 @@
 
     @Override
     public List<ReliabilityPlanProductItem> selectProductItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
-        return reliabilityPlanProductItemMapper.selectList(new LambdaQueryWrapper<ReliabilityPlanProductItem>().eq(ReliabilityPlanProductItem::getPlanId,reliabilityPlanProductItemDto.getRePlanId())
-                .eq(ReliabilityPlanProductItem::getType,reliabilityPlanProductItemDto.getType()));
+        // 浠庢暟鎹簱涓煡璇㈡柊鐨勬暟鎹�
+        List<Map<String, Object>> maps = reliabilityPlanProductItemMapper.itemList(reliabilityPlanProductItemDto.getRePlanId());
+        List<ReliabilityPlanProductItem> newItemList = new ArrayList<>();
+        for (Map<String, Object> map : maps) {
+            ReliabilityPlanProductItem item = new ReliabilityPlanProductItem();
+            item.setInspectionItem((String) map.get("inspectionItem"));
+            item.setStandard((String) map.get("standard"));
+            item.setFrequency((String) map.get("frequency"));
+            item.setPlanId(reliabilityPlanProductItemDto.getRePlanId());
+            item.setType(reliabilityPlanProductItemDto.getType());
+            newItemList.add(item);
+        }
+
+        // 鏌ヨ鏁版嵁搴撲腑宸插瓨鍦ㄧ殑鏁版嵁
+        List<ReliabilityPlanProductItem> existingItemList = reliabilityPlanProductItemMapper.selectList(
+                new LambdaQueryWrapper<ReliabilityPlanProductItem>()
+                        .eq(ReliabilityPlanProductItem::getPlanId, reliabilityPlanProductItemDto.getRePlanId())
+                        .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductItemDto.getType())
+        );
+
+        // 灏嗗凡瀛樺湪鐨勬暟鎹浆鎹负浠� inspectionItem_planId_type 涓洪敭鐨� Map
+        Map<String, ReliabilityPlanProductItem> existingItemMap = new HashMap<>();
+        for (ReliabilityPlanProductItem item : existingItemList) {
+            StringBuilder keyBuilder = new StringBuilder();
+            keyBuilder.append(item.getInspectionItem())
+                    .append("_")
+                    .append(item.getPlanId())
+                    .append("_")
+                    .append(item.getType());
+            existingItemMap.put(keyBuilder.toString(), item);
+        }
+
+        List<ReliabilityPlanProductItem> itemsToUpdate = new ArrayList<>();
+        List<ReliabilityPlanProductItem> itemsToInsert = new ArrayList<>();
+
+        // 瀵规瘮鏂版暟鎹拰宸插瓨鍦ㄧ殑鏁版嵁锛屽尯鍒嗗嚭闇�瑕佹洿鏂板拰闇�瑕佹柊澧炵殑璁板綍
+        for (ReliabilityPlanProductItem newItem : newItemList) {
+            StringBuilder keyBuilder = new StringBuilder();
+            keyBuilder.append(newItem.getInspectionItem())
+                    .append("_")
+                    .append(newItem.getPlanId())
+                    .append("_")
+                    .append(newItem.getType());
+            String key = keyBuilder.toString();
+            ReliabilityPlanProductItem existingItem = existingItemMap.get(key);
+            if (existingItem != null) {
+                // 瀛樺湪鍒欐洿鏂�
+                existingItem.setStandard(newItem.getStandard());
+                existingItem.setFrequency(newItem.getFrequency());
+                itemsToUpdate.add(existingItem);
+            } else {
+                // 涓嶅瓨鍦ㄥ垯鏂板
+                itemsToInsert.add(newItem);
+            }
+        }
+
+        // 鎵ц鏇存柊鍜屾柊澧炴搷浣�
+        if (!itemsToUpdate.isEmpty()) {
+            saveOrUpdateBatch(itemsToUpdate);
+        }
+        if (!itemsToInsert.isEmpty()) {
+            saveBatch(itemsToInsert);
+        }
+
+        // 鍙互鑰冭檻鍦ㄥ墠闈㈢殑鏌ヨ涓繚鐣欓渶瑕佺殑缁撴灉锛岄伩鍏嶅啀娆℃煡璇�
+        return existingItemList.stream()
+                .filter(item -> item.getPlanId().equals(reliabilityPlanProductItemDto.getRePlanId())
+                        && item.getType().equals(reliabilityPlanProductItemDto.getType()))
+                .collect(Collectors.toList());
     }
 
     @Override

--
Gitblit v1.9.3