From f350465db70d6f9db9494483ee0cec7793a9007b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 19 八月 2026 17:47:57 +0800
Subject: [PATCH] feat(approve): 实现审批流程或签会签功能并优化数据库配置

---
 src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java |   34 +++++++++++++++-------------------
 1 files changed, 15 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
index 19f5f61..4d8df0f 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
@@ -10,6 +10,8 @@
 import com.ruoyi.production.mapper.*;
 import com.ruoyi.production.pojo.*;
 import com.ruoyi.production.service.ProductProcessRouteItemService;
+import com.ruoyi.production.service.ProductProcessService;
+import com.ruoyi.production.service.ProductWorkOrderService;
 import com.ruoyi.production.service.ProductionProductMainService;
 import com.ruoyi.quality.mapper.QualityInspectMapper;
 import com.ruoyi.quality.pojo.QualityInspect;
@@ -46,11 +48,15 @@
     private ProductionProductMainMapper productionProductMainMapper;
 
     private SalesLedgerProductionAccountingMapper salesLedgerProductionAccountingMapper;
+    private ProductionReportPersonMapper productionReportPersonMapper;
 
     private ProductWorkOrderMapper productWorkOrderMapper;
 
     private ProductOrderMapper productOrderMapper;
 
+    private final ProductWorkOrderService productWorkOrderService;
+
+    private final ProductProcessService productProcessService;
 
 
     @Override
@@ -97,9 +103,14 @@
 //                            .eq(QualityInspect::getProductMainId, mainId));
                     salesLedgerProductionAccountingMapper.delete(new LambdaQueryWrapper<SalesLedgerProductionAccounting>()
                             .eq(SalesLedgerProductionAccounting::getProductMainId, main.getId()));
+                    productionReportPersonMapper.delete(new LambdaQueryWrapper<ProductionReportPerson>()
+                            .eq(ProductionReportPerson::getProductMainId, main.getId()));
                 }
             }
             // 鏌ヨ璁㈠崟 + 鍒犻櫎鏍哥畻
+
+            // 娓呯悊鎺掍骇棰勭敓鎴愮殑璐ㄦ鍗�
+            productionProductMainService.cleanPreGeneratedQualityInspects(Collections.singletonList(workOrderId));
 
             // 鍒犻櫎鍏宠仈宸ュ崟
             productWorkOrderMapper.delete(new LambdaQueryWrapper<ProductWorkOrder>()
@@ -131,31 +142,16 @@
     @Override
     public R addRouteItem(ProductProcessRouteItem productProcessRouteItem) {
         ProductOrder productOrder = productOrderMapper.selectById(productProcessRouteItem.getProductOrderId());
+        ProductProcess productProcess = productProcessService.getById(productProcessRouteItem.getProcessId());
         int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
-        // 鐢熸垚褰撳墠鏃ユ湡鐨勫墠缂�锛氬勾鏈堟棩
-        String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
+
         if (insert > 0) {
-            // 鏌ヨ浠婃棩宸插瓨鍦ㄧ殑鏈�澶у伐鍗曞彿
-            ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectMax(datePrefix);
-            int sequenceNumber = 1; // 榛樿搴忓彿
-            if (lastWorkOrder != null && lastWorkOrder.getWorkOrderNo() != null) {
-                String lastNo = lastWorkOrder.getWorkOrderNo().toString();
-                if (lastNo.startsWith(datePrefix)) {
-                    String seqStr = lastNo.substring(datePrefix.length());
-                    try {
-                        sequenceNumber = Integer.parseInt(seqStr) + 1;
-                    } catch (NumberFormatException e) {
-                        sequenceNumber = 1;
-                    }
-                }
-            }
-            // 鐢熸垚瀹屾暣鐨勫伐鍗曞彿
-            String workOrderNoStr = "GD" +String.format("%s%03d", datePrefix, sequenceNumber);
+
             ProductWorkOrder productWorkOrder = new ProductWorkOrder();
             productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
             productWorkOrder.setProductOrderId(productProcessRouteItem.getProductOrderId());
             productWorkOrder.setPlanQuantity(productOrder.getQuantity());
-            productWorkOrder.setWorkOrderNo(workOrderNoStr);
+            productWorkOrder.setWorkOrderNo(productWorkOrderService.generateProductWorkOrder(productProcess.getName(),productOrder.getNpsNo()));
             productWorkOrder.setStatus(1);
             productWorkOrderMapper.insert(productWorkOrder);
         }

--
Gitblit v1.9.3