From 15edc521582e08e0e59ee5da9eaec2f2049bb462 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 24 十月 2026 21:57:46 +0800
Subject: [PATCH] fix(mes): 自动生成生产入库及倒冲领料单

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceServiceImpl.java |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceServiceImpl.java
index ef11a06..d70dea9 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceServiceImpl.java
@@ -8,6 +8,7 @@
 import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchGenerateReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderProcessDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDetailDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDO;
@@ -21,7 +22,9 @@
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
+import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderProcessService;
 import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService;
+import cn.iocoder.yudao.module.mes.service.wm.productreceipt.MesWmProductReceiptService;
 import cn.iocoder.yudao.module.mes.service.wm.transaction.MesWmTransactionService;
 import cn.iocoder.yudao.module.mes.service.wm.transaction.dto.MesWmTransactionSaveReqDTO;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
@@ -57,6 +60,10 @@
     @Resource
     private MesProWorkOrderService workOrderService;
     @Resource
+    private MesProWorkOrderProcessService workOrderProcessService;
+    @Resource
+    private MesWmProductReceiptService productReceiptService;
+    @Resource
     private MesWmBatchService batchService;
     @Resource
     private MesWmTransactionService wmTransactionService;
@@ -71,7 +78,7 @@
     @Transactional(rollbackFor = Exception.class)
     public void finishProductProduce(Long id) {
         // 1.1 鏍¢獙瀛樺湪 + 鑽夌鐘舵��
-        validateProductProduceExistsAndPrepare(id);
+        MesWmProductProduceDO produce = validateProductProduceExistsAndPrepare(id);
         // 1.2 鏍¢獙鑷冲皯鏈変竴鏉¤
         List<MesWmProductProduceLineDO> lines = productProduceLineService.getProductProduceLineListByProduceId(id);
         if (CollUtil.isEmpty(lines)) {
@@ -84,6 +91,13 @@
         // 3. 鏇存柊鍏ュ簱鍗曠姸鎬�
         productProduceMapper.updateById(new MesWmProductProduceDO()
                 .setId(id).setStatus(MesWmProductProduceStatusEnum.FINISHED.getStatus()));
+
+        // 4. 鍙湁鏈亾宸ュ簭鐨勫悎鏍间骇鍑烘墠鐢熸垚浜у搧鍏ュ簱鍗曪紝閬垮厤涓棿宸ュ簭閲嶅鐢熸垚鎴愬搧鍏ュ簱
+        MesProWorkOrderProcessDO lastProcess = workOrderProcessService
+                .getLastWorkOrderProcessByWorkOrderId(produce.getWorkOrderId());
+        if (lastProcess != null && ObjUtil.equal(lastProcess.getProcessId(), produce.getProcessId())) {
+            productReceiptService.generateProductReceipt(produce, lines);
+        }
     }
 
     private void createTransactionList(Long produceId, List<MesWmProductProduceLineDO> lines) {

--
Gitblit v1.9.3