From 8d230ea993c35ab7a2794bbdca39c819796543b0 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 02 二月 2026 09:02:47 +0800
Subject: [PATCH] refactor(production): 优化产品主表删除逻辑并添加完成状态标识

---
 src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java |   31 ++++++++++++++++++-------------
 1 files changed, 18 insertions(+), 13 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 4db1c0c..7f73d6b 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
@@ -6,9 +6,11 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.framework.web.domain.R;
 import com.ruoyi.production.dto.ProductProcessRouteItemDto;
+import com.ruoyi.production.dto.ProductionProductMainDto;
 import com.ruoyi.production.mapper.*;
 import com.ruoyi.production.pojo.*;
 import com.ruoyi.production.service.ProductProcessRouteItemService;
+import com.ruoyi.production.service.ProductionProductMainService;
 import com.ruoyi.quality.mapper.QualityInspectMapper;
 import com.ruoyi.quality.pojo.QualityInspect;
 import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
@@ -20,6 +22,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -34,6 +37,7 @@
 public class ProductProcessRouteItemServiceImpl extends ServiceImpl<ProductProcessRouteItemMapper, ProductProcessRouteItem> implements ProductProcessRouteItemService {
 
 
+    private ProductionProductMainService productionProductMainService;
     private ProductProcessRouteItemMapper productProcessRouteItemMapper;
 
     private ProductionProductMainMapper productionProductMainMapper;
@@ -73,6 +77,9 @@
             if (productWorkOrder == null) {
                 throw new RuntimeException("鍒犻櫎澶辫触锛氭湭鎵惧埌鍏宠仈鐨勭敓浜у伐鍗�");
             }
+            if (BigDecimal.ZERO.compareTo(productWorkOrder.getCompleteQuantity()) < 0) {
+                throw new RuntimeException("鍒犻櫎澶辫触锛氳宸ュ崟宸插紑濮嬬敓浜э紝璇峰厛鍒犻櫎鐢熶骇鎶ュ伐");
+            }
             Long workOrderId = productWorkOrder.getId();
             Long productOrderId = productWorkOrder.getProductOrderId();
             // 鏌ヨ鐢熶骇涓昏〃
@@ -83,21 +90,19 @@
             if (!productionProductMains.isEmpty()) {
                 // 鎵归噺鍒犻櫎瀛愯〃
                 for (ProductionProductMain main : productionProductMains) {
-                    Long mainId = main.getId();
-                    // 鍒犻櫎鎶曞叆
-                    productionProductInputMapper.delete(new LambdaQueryWrapper<ProductionProductInput>()
-                            .eq(ProductionProductInput::getProductMainId, mainId));
-                    // 鍒犻櫎浜у嚭
-                    productionProductOutputMapper.delete(new LambdaQueryWrapper<ProductionProductOutput>()
-                            .eq(ProductionProductOutput::getProductMainId, mainId));
-                    // 鍒犻櫎璐ㄦ
-                    qualityInspectMapper.delete(new LambdaQueryWrapper<QualityInspect>()
-                            .eq(QualityInspect::getProductMainId, mainId));
+                    productionProductMainService.removeProductMain(main.getId());
+//                    Long mainId = main.getId();
+//                    // 鍒犻櫎鎶曞叆
+//                    productionProductInputMapper.delete(new LambdaQueryWrapper<ProductionProductInput>()
+//                            .eq(ProductionProductInput::getProductMainId, mainId));
+//                    // 鍒犻櫎浜у嚭
+//                    productionProductOutputMapper.delete(new LambdaQueryWrapper<ProductionProductOutput>()
+//                            .eq(ProductionProductOutput::getProductMainId, mainId));
+//                    // 鍒犻櫎璐ㄦ
+//                    qualityInspectMapper.delete(new LambdaQueryWrapper<QualityInspect>()
+//                            .eq(QualityInspect::getProductMainId, mainId));
                 }
             }
-            //  鍒犻櫎鎶ュ伐锛堢敓浜т富琛級
-            productionProductMainMapper.delete(new LambdaQueryWrapper<ProductionProductMain>()
-                    .eq(ProductionProductMain::getWorkOrderId, workOrderId));
             // 鏌ヨ璁㈠崟 + 鍒犻櫎鏍哥畻
             ProductOrder productOrder = productOrderMapper.selectById(productOrderId);
             if (productOrder != null && productOrder.getSalesLedgerId() != null) {

--
Gitblit v1.9.3