From dc4d7386937447cc1e9ecfb3cd65966cc5d21aa1 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 03 四月 2025 22:33:53 +0800
Subject: [PATCH] 1.可靠性计划完善 2.复核记录完善

---
 basic-server/src/main/java/com/ruoyi/basic/pojo/ProductPartLog.java                                    |    3 
 basic-server/src/main/java/com/ruoyi/basic/controller/ProductPartController.java                       |    4 
 basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductPartServiceImpl.java                    |   96 +++++++++++++++++++-----
 inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java                    |    5 +
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java            |    4 +
 inspect-server/src/main/resources/mapper/ReliabilityPlanProductItemMapper.xml                          |   33 ++++++++
 basic-server/src/main/java/com/ruoyi/basic/dto/ProductPartDto.java                                     |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanMaterial.java                       |    3 
 inspect-server/src/main/java/com/ruoyi/inspect/service/ReliabilityPlanProductItemService.java          |    6 +
 basic-server/src/main/java/com/ruoyi/basic/service/ProductPartService.java                             |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/controller/ReliabilityPlanProductItemController.java    |   16 +++
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java |   15 +++
 12 files changed, 157 insertions(+), 32 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/ProductPartController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/ProductPartController.java
index 520142a..0591244 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/ProductPartController.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/ProductPartController.java
@@ -60,8 +60,8 @@
 
     @ApiOperation(value = "浜у搧闆朵欢鏃ュ織鏌ヨ")
     @GetMapping("/productPartLogList")
-    public Result productPartLogList(Page page,Integer id){
-        return Result.success(productPartService.productPartLogList(page,id));
+    public Result productPartLogList(Page page,Integer id,String type){
+        return Result.success(productPartService.productPartLogList(page,id,type));
     }
 
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/ProductPartDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/ProductPartDto.java
index b739b6c..3a0d592 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/dto/ProductPartDto.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/dto/ProductPartDto.java
@@ -8,4 +8,6 @@
     private Integer id;
     private Integer productId;
 
+    private String type;
+
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/pojo/ProductPartLog.java b/basic-server/src/main/java/com/ruoyi/basic/pojo/ProductPartLog.java
index fce57c5..dc8c4d8 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/pojo/ProductPartLog.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/pojo/ProductPartLog.java
@@ -53,5 +53,8 @@
 
     @ApiModelProperty("鏄惁宸插鏍�")
     private String review;
+
+    @ApiModelProperty("鏄惁宸插鏍�")
+    private String type;
 }
 
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/ProductPartService.java b/basic-server/src/main/java/com/ruoyi/basic/service/ProductPartService.java
index 98c578e..704813d 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/ProductPartService.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/ProductPartService.java
@@ -22,5 +22,5 @@
 
     int productPartReviewById(ProductPartDto productPartDto);
 
-    IPage<ProductPartLog> productPartLogList(Page page, Integer id);
+    IPage<ProductPartLog> productPartLogList(Page page, Integer id,String Type);
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductPartServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductPartServiceImpl.java
index 64f659a..9162805 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductPartServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductPartServiceImpl.java
@@ -82,36 +82,92 @@
 
     @Override
     public int productPartReviewById(ProductPartDto productPartDto) {
-
         int userId = SecurityUtils.getUserId().intValue();
         String username = SecurityUtils.getUsername();
-        ProductPart productPart = productPartMapper.selectById(productPartDto.getId());
-        this.isPartNoExist(productPart.getPartNo(), productPart.getProductId(), productPart.getId());
-        if (productPart.getProductId() == null) {
-            throw new BaseException("缂哄皯浜у搧瀵硅薄id");
+
+        // 瀹氫箟閫氱敤鐨勪骇鍝侀儴鍒嗗璞�
+        Object productPart = null;
+        if ("瀵硅薄".equals(productPartDto.getType())) {
+            productPart = structureTestObjectPartMapper.selectById(productPartDto.getId());
+            if (productPart != null && ((StructureTestObjectPart) productPart).getTestObjectId() == null) {
+                throw new BaseException("缂哄皯浜у搧瀵硅薄id");
+            }
+        } else {
+            productPart = productPartMapper.selectById(productPartDto.getId());
+            if (productPart != null && ((ProductPart) productPart).getProductId() == null) {
+                throw new BaseException("缂哄皯浜у搧瀵硅薄id");
+            }
         }
-        productPart.setReview("宸插鏍�");
-        int num = productPartMapper.updateById(productPart);
+
+        if (productPart == null) {
+            return 0;
+        }
+
+        // 璁剧疆瀹℃牳鐘舵��
+        if (productPart instanceof StructureTestObjectPart) {
+            ((StructureTestObjectPart) productPart).setReview("宸插鏍�");
+        } else {
+            ((ProductPart) productPart).setReview("宸插鏍�");
+        }
+
+        // 鏇存柊浜у搧閮ㄥ垎淇℃伅
+        int num = 0;
+        if (productPart instanceof StructureTestObjectPart) {
+            num = structureTestObjectPartMapper.updateById((StructureTestObjectPart) productPart);
+        } else {
+            num = productPartMapper.updateById((ProductPart) productPart);
+        }
+
+        // 濡傛灉鏇存柊鎴愬姛锛屽垱寤烘垨鏇存柊鏃ュ織
         if (num > 0) {
-            ProductPartLog productPartLog = new ProductPartLog();
-            productPartLog.setProductPartId(productPart.getId());
-            productPartLog.setOperName(username);
-            productPartLog.setOperId(userId);
-            productPartLog.setOperTime(LocalDateTime.now());
-            productPartLog.setColor(productPart.getColor());
-            productPartLog.setColorCode(productPart.getColorCode());
-            productPartLog.setPartNo(productPart.getPartNo());
-            productPartLog.setInspectionItem(productPart.getInspectionItem());
-            productPartLog.setReview(productPart.getReview());
-            productPartLogMapper.insert(productPartLog);
+            createOrUpdateProductPartLog(productPart, username, userId, productPartDto.getType(), productPartDto);
         }
+
         return num;
     }
 
+    private void createOrUpdateProductPartLog(Object productPart, String username, int userId, String type, ProductPartDto productPartDto) {
+        ProductPartLog productPartLog = new ProductPartLog();
+        if (productPart instanceof StructureTestObjectPart) {
+            StructureTestObjectPart part = (StructureTestObjectPart) productPart;
+            productPartLog.setProductPartId(part.getId());
+            productPartLog.setColor(part.getColor());
+            productPartLog.setColorCode(part.getColorCode());
+            productPartLog.setPartNo(part.getPartNo());
+            productPartLog.setInspectionItem(part.getInspectionItem());
+            productPartLog.setReview(part.getReview());
+        } else {
+            ProductPart part = (ProductPart) productPart;
+            productPartLog.setProductPartId(part.getId());
+            productPartLog.setColor(part.getColor());
+            productPartLog.setColorCode(part.getColorCode());
+            productPartLog.setPartNo(part.getPartNo());
+            productPartLog.setInspectionItem(part.getInspectionItem());
+            productPartLog.setReview(part.getReview());
+        }
+        productPartLog.setOperName(username);
+        productPartLog.setOperId(userId);
+        productPartLog.setOperTime(LocalDateTime.now());
+        productPartLog.setType(type);
+
+        // 妫�鏌ユ槸鍚﹀瓨鍦ㄧ浉鍚� ProductPartId 鐨勬棩蹇楄褰�
+        ProductPartLog existingLog = productPartLogMapper.selectOne(new LambdaQueryWrapper<ProductPartLog>().eq(ProductPartLog::getProductPartId, productPartDto.getId()));
+        if (existingLog != null) {
+            // 濡傛灉瀛樺湪锛屾洿鏂拌褰�
+            productPartLog.setId(existingLog.getId()); // 璁剧疆鏇存柊璁板綍鐨� ID
+            productPartLogMapper.updateById(productPartLog);
+        } else {
+            // 濡傛灉涓嶅瓨鍦紝鎻掑叆鏂拌褰�
+            productPartLogMapper.insert(productPartLog);
+        }
+    }
+
+
     @Override
-    public IPage<ProductPartLog> productPartLogList(Page page, Integer id) {
+    public IPage<ProductPartLog> productPartLogList(Page page, Integer id, String type) {
         return productPartLogMapper.selectPage(page, Wrappers.<ProductPartLog>lambdaQuery()
-                .eq(ProductPartLog::getProductPartId, id));
+                .eq(ProductPartLog::getProductPartId, id)
+                .eq(ProductPartLog::getType, type));
     }
 
     // 鍒ゆ柇闆朵欢鍙锋槸鍚﹀瓨鍦�
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/ReliabilityPlanProductItemController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/ReliabilityPlanProductItemController.java
index 9040c9f..e11e902 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/ReliabilityPlanProductItemController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/ReliabilityPlanProductItemController.java
@@ -24,8 +24,8 @@
 
     @ApiOperation("鏌ヨ鍙潬鎬ц鍒掓垚鍝佹楠岄」")
     @GetMapping("/selectProductItem")
-    public Result selectProductItem() {
-        return Result.success(reliabilityPlanProductItemService.selectProductItem());
+    public Result selectProductItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
+        return Result.success(reliabilityPlanProductItemService.selectProductItem(reliabilityPlanProductItemDto));
     }
 
     @ApiOperation(value = "娣诲姞鍙潬鎬ц鍒掓垚鍝佹楠岄」")
@@ -40,12 +40,24 @@
         return Result.success(reliabilityPlanProductItemService.itemList(reliabilityPlanProductItemDto));
     }
 
+    @ApiOperation(value = "鏌ヨ鍘熻緟鏉愪骇鍝佹楠岄」")
+    @GetMapping("/materialItem")
+    public Result materialItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
+        return Result.success(reliabilityPlanProductItemService.materialItem(reliabilityPlanProductItemDto));
+    }
+
     @ApiOperation(value = "鏌ヨ浜у搧妫�楠岄」")
     @GetMapping("/codeList")
     public Result codeList(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
         return Result.success(reliabilityPlanProductItemService.codeList(reliabilityPlanProductItemDto));
     }
 
+    @ApiOperation(value = "鏌ヨ鍘熻緟鏉愪骇鍝佹楠岄」")
+    @GetMapping("/materialCodeList")
+    public Result materialCodeList(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
+        return Result.success(reliabilityPlanProductItemService.materialCodeList(reliabilityPlanProductItemDto));
+    }
+
     @ApiOperation(value = "鍒犻櫎")
     @DeleteMapping("/deleteItem")
     public Result deleteItem(Integer id) {
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 974d3d7..5a1cf60 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
@@ -20,4 +20,8 @@
     List<Map<String, Object>> itemList(@Param("planId") Integer rePlanId);
 
     List<Map<String, Object>> codeList(@Param("planId") Integer rePlanId);
+
+    List<Map<String, Object>> materialItem(@Param("planId") Integer rePlanId);
+
+    List<Map<String, Object>> materialCodeList(@Param("planId") Integer rePlanId);
 }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanMaterial.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanMaterial.java
index a3aed6b..eee1277 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanMaterial.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanMaterial.java
@@ -35,9 +35,6 @@
     @ApiModelProperty("鍘熻緟鏂欏悕绉癐D")
     private Integer materialId;
 
-    @ApiModelProperty("鏄惁閫氳繃")
-    private String isPass;
-
     @ApiModelProperty("瀹℃牳浜篿d")
     private Integer reviewerId;
 
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 8384aa8..cc1e61f 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
@@ -42,4 +42,9 @@
 
     @ApiModelProperty("鍏宠仈鍙潬鎬ц鍒掍骇鍝乮d")
     private Integer planId;
+    /**
+     * 鎴愬搧/鍘熻緟鏉�
+     */
+    @ApiModelProperty("绫诲瀷")
+    private String type;
 }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/ReliabilityPlanProductItemService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/ReliabilityPlanProductItemService.java
index 4e61f44..5f58b49 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/ReliabilityPlanProductItemService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/ReliabilityPlanProductItemService.java
@@ -17,11 +17,15 @@
  */
 public interface ReliabilityPlanProductItemService extends IService<ReliabilityPlanProductItem> {
 
-    List<ReliabilityPlanProductItem> selectProductItem();
+    List<ReliabilityPlanProductItem> selectProductItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto);
 
     int addOrUpdateItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto);
 
     List<Map<String, Object>> itemList(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto);
 
     List<Map<String, Object>> codeList(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto);
+
+    List<Map<String, Object>> materialItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto);
+
+    List<Map<String, Object>> materialCodeList(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto);
 }
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 0992206..632d656 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
@@ -27,8 +27,9 @@
     private ReliabilityPlanProductItemMapper reliabilityPlanProductItemMapper;
 
     @Override
-    public List<ReliabilityPlanProductItem> selectProductItem() {
-        return reliabilityPlanProductItemMapper.selectList(new LambdaQueryWrapper<>());
+    public List<ReliabilityPlanProductItem> selectProductItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
+        return reliabilityPlanProductItemMapper.selectList(new LambdaQueryWrapper<ReliabilityPlanProductItem>().eq(ReliabilityPlanProductItem::getPlanId,reliabilityPlanProductItemDto.getRePlanId())
+                .eq(ReliabilityPlanProductItem::getType,reliabilityPlanProductItemDto.getType()));
     }
 
     @Override
@@ -50,4 +51,14 @@
     public List<Map<String, Object>> codeList(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
         return reliabilityPlanProductItemMapper.codeList(reliabilityPlanProductItemDto.getRePlanId());
     }
+
+    @Override
+    public List<Map<String, Object>> materialItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
+        return reliabilityPlanProductItemMapper.materialItem(reliabilityPlanProductItemDto.getRePlanId());
+    }
+
+    @Override
+    public List<Map<String, Object>> materialCodeList(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
+        return reliabilityPlanProductItemMapper.materialCodeList(reliabilityPlanProductItemDto.getRePlanId());
+    }
 }
diff --git a/inspect-server/src/main/resources/mapper/ReliabilityPlanProductItemMapper.xml b/inspect-server/src/main/resources/mapper/ReliabilityPlanProductItemMapper.xml
index b0eaee6..3714c6e 100644
--- a/inspect-server/src/main/resources/mapper/ReliabilityPlanProductItemMapper.xml
+++ b/inspect-server/src/main/resources/mapper/ReliabilityPlanProductItemMapper.xml
@@ -56,5 +56,36 @@
                 LEFT JOIN standard_method sm ON sm.id = spl.standard_method_list_id
         WHERE rp.id = #{planId}
     </select>
-
+    <select id="materialItem" resultType="java.util.Map">
+        SELECT
+            sp.inspection_item AS inspectionItem
+        FROM
+            structure_item_parameter sp
+                CROSS JOIN JSON_TABLE (sp.sample, '$[*][*]' COLUMNS (VALUE VARCHAR (255) PATH '$')) AS jt
+                JOIN reliability_plan_material rp ON rp.material_name = jt.
+                VALUE
+                AND rp.id = #{planId}
+        GROUP BY
+            sp.id,
+            sp.inspection_item
+        UNION ALL
+        SELECT
+            inspection_item AS inspectionItem
+        FROM
+            structure_item_parameter
+        WHERE
+            sample IS NULL
+           OR sample = ''
+           OR sample = '[]'
+        ORDER BY
+            inspectionItem ASC;
+    </select>
+    <select id="materialCodeList" resultType="java.util.Map">
+        SELECT DISTINCT sm.`code` as standard, sm.id
+        FROM (SELECT material_name
+              FROM reliability_plan_material
+              WHERE id = #{planId}) rm
+                 JOIN standard_product_list spl ON spl.sample = rm.material_name AND spl.sample IS NOT NULL
+                 JOIN standard_method sm ON sm.id = spl.standard_method_list_id;
+    </select>
 </mapper>

--
Gitblit v1.9.3