From 60e741a676ff88385fdf08ed8f506beb979fde54 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 08 四月 2026 15:51:14 +0800
Subject: [PATCH] feat(production): 新增报工主表实体及实现报工主表相关服务逻辑

---
 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index 156e62b..62d1fc4 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -151,6 +151,10 @@
         productionProductMain.setAuditUserId(dto.getAuditUserId());
         productionProductMain.setAuditUserName(dto.getAuditUserName());
         productionProductMain.setStatus(0);
+        productionProductMain.setStartTime(dto.getStartTime());
+        productionProductMain.setEndTime(dto.getEndTime());
+        productionProductMain.setDeviceId(productProcess.getDeviceId());
+        productionProductMain.setDeviceName(productProcess.getDeviceName());
         productionProductMainMapper.insert(productionProductMain);
         /*鏂板鎶ュ伐鎶曞叆琛�*/
         List<ProductStructureDto> productStructureDtos = productStructureMapper.listBybomAndProcess(productProcessRoute.getBomId(), productProcess.getId());
@@ -397,9 +401,13 @@
             BigDecimal scrapQty = productionProductOutput.getScrapQty() == null ? BigDecimal.ZERO : productionProductOutput.getScrapQty();
             BigDecimal completeQty = productWorkOrder.getCompleteQuantity() == null ? BigDecimal.ZERO : productWorkOrder.getCompleteQuantity();
 
-            BigDecimal validQuantity = outputQty.subtract(scrapQty);
+            // 蹇呴』涓哄鏍搁�氳繃鐨勬墠浼氬噺灏戞暟閲�
 
-            productWorkOrder.setCompleteQuantity(completeQty.subtract(validQuantity));
+
+            BigDecimal validQuantity = outputQty.subtract(scrapQty);
+            if(productionProductMain.getAuditStatus() != 2){
+                productWorkOrder.setCompleteQuantity(completeQty.subtract(validQuantity).max(BigDecimal.ZERO));
+            }
             productWorkOrder.setActualEndTime(null);
             productWorkOrderMapper.updateById(productWorkOrder);
         } else {

--
Gitblit v1.9.3