From 7ea8883ca6b47ec014a32ed57c3bea64544e893e Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 19 三月 2026 17:09:34 +0800
Subject: [PATCH] feat: 生产订单绑定工艺路线、BOM、工艺路线、工序参数新增修改

---
 src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java |   31 +++++++++++++++++++++++++------
 1 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
index 4a0cebc..d4a9737 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.appendix.service.AppendixService;
 import com.ruoyi.procurementrecord.utils.StockUtils;
 import com.ruoyi.production.dto.ProductOrderDto;
 import com.ruoyi.production.dto.ProductStructureDto;
@@ -73,6 +74,9 @@
 
     @Autowired
     private StockUtils stockUtils;
+
+    @Autowired
+    private AppendixService appendixService;
 
     @Override
     public IPage<ProductOrderDto> pageProductOrder(Page<ProductOrder> page, ProductOrderDto productOrder) {
@@ -166,14 +170,24 @@
 
     @Override
     public Boolean addProductOrder(ProductOrder productOrder) {
-        String string = generateNextOrderNo(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
-        productOrder.setNpsNo(string);
+        fillAndSaveProductOrder(productOrder);
+        return true;
+    }
+
+    @Override
+    public Long insertProductOrder(ProductOrder productOrder) {
+        fillAndSaveProductOrder(productOrder);
+        return productOrder.getId();
+    }
+
+    private void fillAndSaveProductOrder(ProductOrder productOrder) {
+        String orderNo = generateNextOrderNo(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
+        productOrder.setNpsNo(orderNo);
         productOrder.setCompleteQuantity(BigDecimal.ZERO);
         this.save(productOrder);
         if (ObjectUtils.isNotEmpty(productOrder.getRouteId())) {
             this.bindingRoute(productOrder);
         }
-        return true;
     }
 
     @Override
@@ -241,9 +255,14 @@
         // 鍒犻櫎涓棿琛�
         productOrderPlanMapper.delete(Wrappers.<ProductOrderPlan>lambdaQuery().in(ProductOrderPlan::getProductOrderId, ids));
 
-        // TODO: 鍒犻櫎闄勮〃鐨勫伐鑹鸿矾绾夸笌BOM
-        productProcessRouteItemMapper.delete(new LambdaQueryWrapper<ProductProcessRouteItem>().in(ProductProcessRouteItem::getProductOrderId, ids));
-        productProcessRouteMapper.delete(new LambdaQueryWrapper<ProductProcessRoute>().in(ProductProcessRoute::getProductOrderId, ids));
+        //  鍒犻櫎闄勮〃鐨勫伐鑹鸿矾绾夸笌BOM
+        for (Long id : ids) {
+            ProductOrder productOrder = baseMapper.selectById(id);
+            appendixService.deleteData(productOrder.getId(), productOrder.getRouteId());
+        }
+
+//        productProcessRouteItemMapper.delete(new LambdaQueryWrapper<ProductProcessRouteItem>().in(ProductProcessRouteItem::getProductOrderId, ids));
+//        productProcessRouteMapper.delete(new LambdaQueryWrapper<ProductProcessRoute>().in(ProductProcessRoute::getProductOrderId, ids));
 
         //  鍒犻櫎璁㈠崟
         productOrderMapper.delete(new LambdaQueryWrapper<ProductOrder>().in(ProductOrder::getId, ids));

--
Gitblit v1.9.3