From 2329f548c36876a59a7808e8c96466e94e088350 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期三, 04 二月 2026 14:41:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java |   45 ++++++++++++++++++++++-----------------------
 1 files changed, 22 insertions(+), 23 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..c5fbac0 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,27 +90,23 @@
             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));
+                    salesLedgerProductionAccountingMapper.delete(new LambdaQueryWrapper<SalesLedgerProductionAccounting>()
+                            .eq(SalesLedgerProductionAccounting::getProductMainId, main.getId()));
                 }
             }
-            //  鍒犻櫎鎶ュ伐锛堢敓浜т富琛級
-            productionProductMainMapper.delete(new LambdaQueryWrapper<ProductionProductMain>()
-                    .eq(ProductionProductMain::getWorkOrderId, workOrderId));
             // 鏌ヨ璁㈠崟 + 鍒犻櫎鏍哥畻
-            ProductOrder productOrder = productOrderMapper.selectById(productOrderId);
-            if (productOrder != null && productOrder.getSalesLedgerId() != null) {
-                salesLedgerProductionAccountingMapper.delete(new LambdaQueryWrapper<SalesLedgerProductionAccounting>()
-                        .eq(SalesLedgerProductionAccounting::getSalesLedgerId, productOrder.getSalesLedgerId()));
-            }
+
             // 鍒犻櫎鍏宠仈宸ュ崟
             productWorkOrderMapper.delete(new LambdaQueryWrapper<ProductWorkOrder>()
                     .eq(ProductWorkOrder::getProductProcessRouteItemId, routeItemId));
@@ -139,11 +142,7 @@
         String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
         if (insert > 0) {
             // 鏌ヨ浠婃棩宸插瓨鍦ㄧ殑鏈�澶у伐鍗曞彿
-            QueryWrapper<ProductWorkOrder> queryWrapper = new QueryWrapper<>();
-            queryWrapper.likeRight("work_order_no", datePrefix)
-                    .orderByDesc("work_order_no")
-                    .last("LIMIT 1");
-            ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectOne(queryWrapper);
+            ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectMax(datePrefix);
             int sequenceNumber = 1; // 榛樿搴忓彿
             if (lastWorkOrder != null && lastWorkOrder.getWorkOrderNo() != null) {
                 String lastNo = lastWorkOrder.getWorkOrderNo().toString();

--
Gitblit v1.9.3