From fbde0b947b4641081b558302ea77d88c902c4cd1 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 30 四月 2025 10:03:24 +0800
Subject: [PATCH] 可靠性计划优化检验项

---
 inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java                    |    4 
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java            |   12 ++--
 inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java                        |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java                      |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java                  |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java     |   45 +++++++++++++-
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java |   70 ----------------------
 7 files changed, 55 insertions(+), 82 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java
index 9e8c98b..dd541e6 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java
@@ -5,4 +5,6 @@
 
 @Data
 public class ReliabilityPlanProductDto extends ReliabilityPlanProduct {
+
+    private String itemType;
 }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java
index 585ad9f..43f18ca 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java
@@ -5,5 +5,5 @@
 
 @Data
 public class ReliabilityPlanProductItemDto extends ReliabilityPlanProductItem {
-    private Integer rePlanId;
+    private Long rePlanId;
 }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java
index 5a1cf60..b0b6ec8 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java
@@ -1,7 +1,7 @@
 package com.ruoyi.inspect.mapper;
 
+import com.ruoyi.framework.mybatis_config.MyBaseMapper;
 import com.ruoyi.inspect.pojo.ReliabilityPlanProductItem;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -15,13 +15,13 @@
  * @author ld
  * @since 2025-04-01 05:12:38
  */
-public interface ReliabilityPlanProductItemMapper extends BaseMapper<ReliabilityPlanProductItem> {
+public interface ReliabilityPlanProductItemMapper extends MyBaseMapper<ReliabilityPlanProductItem> {
 
-    List<Map<String, Object>> itemList(@Param("planId") Integer rePlanId);
+    List<Map<String, Object>> itemList(@Param("planId") Long rePlanId);
 
-    List<Map<String, Object>> codeList(@Param("planId") Integer rePlanId);
+    List<Map<String, Object>> codeList(@Param("planId") Long rePlanId);
 
-    List<Map<String, Object>> materialItem(@Param("planId") Integer rePlanId);
+    List<Map<String, Object>> materialItem(@Param("planId") Long rePlanId);
 
-    List<Map<String, Object>> materialCodeList(@Param("planId") Integer rePlanId);
+    List<Map<String, Object>> materialCodeList(@Param("planId") Long rePlanId);
 }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java
index b7b17de..7af2d7b 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java
@@ -24,7 +24,7 @@
 public class ReliabilityPlanProduct implements Serializable {
 
     @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
+    private Long id;
 
     @ApiModelProperty("浜у搧鍚嶇О")
     private String productName;
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java
index cc1e61f..05d9066 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java
@@ -26,7 +26,7 @@
     private static final long serialVersionUID = 1L;
 
     @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
+    private Long id;
 
     @ApiModelProperty("妫�楠岄」")
     private String inspectionItem;
@@ -41,7 +41,7 @@
     private String remark;
 
     @ApiModelProperty("鍏宠仈鍙潬鎬ц鍒掍骇鍝乮d")
-    private Integer planId;
+    private Long planId;
     /**
      * 鎴愬搧/鍘熻緟鏉�
      */
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 b225652..ea3cb8d 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
@@ -31,75 +31,9 @@
 
     @Override
     public List<ReliabilityPlanProductItem> selectProductItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
-        // 浠庢暟鎹簱涓煡璇㈡柊鐨勬暟鎹�
-        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>()
+        return 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());
+                        .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductItemDto.getType()));
     }
 
     @Override
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java
index 5d5158d..5d4abd1 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java
@@ -1,17 +1,22 @@
 package com.ruoyi.inspect.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.utils.QueryWrappers;
 import com.ruoyi.inspect.dto.ReliabilityPlanProductDto;
+import com.ruoyi.inspect.mapper.ReliabilityPlanProductItemMapper;
 import com.ruoyi.inspect.pojo.ReliabilityPlanProduct;
 import com.ruoyi.inspect.mapper.ReliabilityPlanProductMapper;
+import com.ruoyi.inspect.pojo.ReliabilityPlanProductItem;
 import com.ruoyi.inspect.service.ReliabilityPlanProductService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
-import java.util.Objects;
+import java.util.*;
 
 /**
  * <p>
@@ -26,6 +31,7 @@
 public class ReliabilityPlanProductServiceImpl extends ServiceImpl<ReliabilityPlanProductMapper, ReliabilityPlanProduct> implements ReliabilityPlanProductService {
 
     private ReliabilityPlanProductMapper reliabilityPlanProductMapper;
+    private ReliabilityPlanProductItemMapper reliabilityPlanProductItemMapper;
 
     @Override
     public IPage<ReliabilityPlanProduct> selectProduct(Page page, ReliabilityPlanProductDto reliabilityPlanProductDto) {
@@ -34,17 +40,48 @@
 
     @Override
     public int addOrUpdateProduct(ReliabilityPlanProductDto reliabilityPlanProductDto) {
+        int i;
         if (Objects.isNull(reliabilityPlanProductDto.getId())) {
             reliabilityPlanProductDto.setState(0);
-            return reliabilityPlanProductMapper.insert(reliabilityPlanProductDto);
+            i = reliabilityPlanProductMapper.insert(reliabilityPlanProductDto);
         } else {
-           // 瀹℃牳鐘舵�� 0.寰呮彁浜�1.寰呭鏍�2.閫氳繃3.涓嶉�氳繃
+            // 瀹℃牳鐘舵�� 0.寰呮彁浜�1.寰呭鏍�2.閫氳繃3.涓嶉�氳繃
             int state = reliabilityPlanProductDto.getState();
             if (state != 0 && state != 1 && state != 2) {
                 reliabilityPlanProductDto.setState(3);
             }
-            return reliabilityPlanProductMapper.updateById(reliabilityPlanProductDto);
+            i = reliabilityPlanProductMapper.updateById(reliabilityPlanProductDto);
         }
+        if (i > 0) {
+            Long id = reliabilityPlanProductDto.getId(); // 浠庢暟鎹簱涓煡璇㈡柊鐨勬暟鎹�
+            List<Map<String, Object>> maps = reliabilityPlanProductItemMapper.itemList(id);
+            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(id);
+                item.setType(reliabilityPlanProductDto.getItemType());
+                newItemList.add(item);
+            }
+            // 鏌ヨ鏁版嵁搴撲腑宸插瓨鍦ㄧ殑鏁版嵁
+            List<ReliabilityPlanProductItem> existingItemList = reliabilityPlanProductItemMapper.selectList(
+                    new LambdaQueryWrapper<ReliabilityPlanProductItem>()
+                            .eq(ReliabilityPlanProductItem::getPlanId, id)
+                            .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductDto.getItemType())
+            );
+
+            if (!existingItemList.isEmpty()) {
+                // 濡傛灉鏈夋暟鎹紝鎵ц鍒犻櫎鎿嶄綔
+                reliabilityPlanProductItemMapper.delete(new LambdaUpdateWrapper<ReliabilityPlanProductItem>()
+                                .eq(ReliabilityPlanProductItem::getPlanId, id)
+                                .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductDto.getItemType())
+                );
+            }
+            reliabilityPlanProductItemMapper.insertBatchSomeColumn(newItemList);
+        }
+        return i;
     }
 
     @Override

--
Gitblit v1.9.3