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/service/impl/ProductPartServiceImpl.java |   96 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 76 insertions(+), 20 deletions(-)

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));
     }
 
     // 鍒ゆ柇闆朵欢鍙锋槸鍚﹀瓨鍦�

--
Gitblit v1.9.3