From 6d5ce70c3e2b536c8e4b74269be70029a57cb1cc Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 11 五月 2026 15:36:32 +0800
Subject: [PATCH] feat(approve): 使用通用工具类优化审批流程ID生成逻辑

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java |   24 ++++++++++++++++--------
 1 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index eecafea..79ae988 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -113,6 +113,9 @@
         // 璐ㄦ鎬绘暟
         BigDecimal quantity = qualityInspect.getQuantity();
         // 鍚堟牸鏁伴噺 = 璐ㄦ鎬绘暟 - 涓嶈壇鏁伴噺
+        if (ObjectUtils.isNull(qualityInspect.getDefectiveQuantity())) {
+            qualityInspect.setDefectiveQuantity(BigDecimal.ZERO);
+        }
         BigDecimal productQty = quantity.subtract(qualityInspect.getDefectiveQuantity());
         // 鍚堟牸鐜�=鍚堟牸鏁伴噺/璐ㄦ鎬绘暟
         BigDecimal productQtyRate = productQty.divide(quantity, 2, RoundingMode.HALF_UP)
@@ -124,15 +127,20 @@
             if (productQtyRate.compareTo(productProcess.getQualifiedRate()) < 0) {
                 // 鏌ヨ鐢熶骇璁㈠崟
                 ProductionProductMain productionProductMain = productionProductMainMapper.selectById(qualityInspect.getProductMainId());
-                ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
-                ProductOrder productOrder = productOrderMapper.selectOne(new LambdaQueryWrapper<ProductOrder>().eq(ProductOrder::getId, productWorkOrder.getProductOrderId()));
-                if (!ObjectUtils.isNull(productOrder)) {
-                    // 鍙戦�侀�氱煡缁欑鐞嗗憳
-                    sysNoticeService.simpleNoticeByUser("璐ㄦ鎻愮ず",
-                            String.format("%s鐢熶骇璁㈠崟锛�%s宸ュ簭鍚堟牸鐜�%.2f%%浣庝簬鏍囧噯%.2f%%", productOrder.getNpsNo(), productProcess.getName(), productQtyRate, productProcess.getQualifiedRate()),
-                            Arrays.asList(Long.valueOf(1L)),
-                            qualityInspect.getInspectType() == 2 ? "/qualityManagement/finalInspection" : "/qualityManagement/processInspection");
+                if (!ObjectUtils.isNull(productionProductMain)) {
+                    ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
+                    if (!ObjectUtils.isNull(productWorkOrder)) {
+                        ProductOrder productOrder = productOrderMapper.selectOne(new LambdaQueryWrapper<ProductOrder>().eq(ProductOrder::getId, productWorkOrder.getProductOrderId()));
+                        if (!ObjectUtils.isNull(productOrder)) {
+                            // 鍙戦�侀�氱煡缁欑鐞嗗憳
+                            sysNoticeService.simpleNoticeByUser("璐ㄦ鎻愮ず",
+                                    String.format("%s鐢熶骇璁㈠崟锛�%s宸ュ簭鍚堟牸鐜�%.2f%%浣庝簬鏍囧噯%.2f%%", productOrder.getNpsNo(), productProcess.getName(), productQtyRate, productProcess.getQualifiedRate()),
+                                    Arrays.asList(Long.valueOf(1L)),
+                                    qualityInspect.getInspectType() == 2 ? "/qualityManagement/finalInspection" : "/qualityManagement/processInspection");
+                        }
+                    }
                 }
+
             }
         }
 

--
Gitblit v1.9.3