From 4c6168cf60426dc1e9c95d575c5efc66bf8d9af9 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 03 六月 2026 18:08:57 +0800
Subject: [PATCH] 生产报工更新实际开始时间和结束时间

---
 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java |   27 ++++++++++++---------------
 1 files changed, 12 insertions(+), 15 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 cc5b1cf..ba4efc4 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -209,12 +209,18 @@
             List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().eq(ProductProcessRouteItem::getProductRouteId, productProcessRouteItem.getProductRouteId()));
             /*鏇存柊宸ュ崟鍜岀敓浜ц鍗�*/
             productWorkOrder.setCompleteQuantity(productWorkOrder.getCompleteQuantity().add(productQty));
-            if (ObjectUtils.isNull(productWorkOrder.getActualStartTime())) {
-                productWorkOrder.setActualStartTime(LocalDateTime.now());//瀹為檯寮�濮嬫椂闂�
+            // 鏌ヨ璇ュ伐鍗曞搴旂殑鏈�鏃╀笂鏈烘椂闂达紙鎸変笂鏈烘椂闂村崌搴忥紝鍙栫涓�鏉★級
+            List<ProductionMachineRecord> machineRecords = productionMachineRecordMapper.selectList(
+                    Wrappers.<ProductionMachineRecord>lambdaQuery()
+                            .eq(ProductionMachineRecord::getWorkOrderId, productWorkOrder.getId())
+                            .isNotNull(ProductionMachineRecord::getMachineStartTime)
+                            .orderByAsc(ProductionMachineRecord::getMachineStartTime)
+            );
+            if (!machineRecords.isEmpty()) {
+                productWorkOrder.setActualStartTime(machineRecords.get(0).getMachineStartTime());
             }
-            if (productWorkOrder.getCompleteQuantity().compareTo(productWorkOrder.getPlanQuantity()) >= 0) {
-                productWorkOrder.setActualEndTime(LocalDateTime.now());//瀹為檯缁撴潫鏃堕棿
-            }
+            // 瀹為檯缁撴潫鏃堕棿 = 鎶ュ伐缁撴潫鏃堕棿
+            productWorkOrder.setActualEndTime(now);//瀹為檯缁撴潫鏃堕棿涓烘姤宸ョ粨鏉熸椂闂�
             productWorkOrder.setEndProductTime(now);
             productWorkOrderMapper.updateById(productWorkOrder);
             //鐢熶骇璁㈠崟
@@ -410,13 +416,6 @@
                 }
             }
         }
-
-        //濡傛灉鎶ュ簾鏁伴噺>0,闇�瑕佽繘鍏ユ姤搴熺殑搴撳瓨
-        if (ObjectUtils.isNotEmpty(productionProductOutput.getScrapQty())) {
-            if (productionProductOutput.getScrapQty().compareTo(BigDecimal.ZERO) > 0) {
-                stockUtils.addUnStock(productModel.getId(), productionProductOutput.getScrapQty(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId(), "-", "-", "-");
-            }
-        }
     }
 
     @Override
@@ -493,8 +492,6 @@
         //鍒犻櫎鎶曞叆璁板綍
         productionProductInputMapper.delete(new LambdaQueryWrapper<ProductionProductInput>()
                 .eq(ProductionProductInput::getProductMainId, productionProductMain.getId()));
-        //鍒犻櫎鎶ュ簾鐨勫叆搴撹褰�
-        stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInUnQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode());
         //鍒犻櫎涓嶉渶瑕佽川妫�鐨勫悎鏍煎叆搴�
         stockUtils.deleteStockInRecord(productionProductMain.getId(), StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode());
         //鍒犻櫎鎶曞叆瀵瑰簲鐨勫嚭搴撹褰�
@@ -508,4 +505,4 @@
     public ArrayList<Long> listMain(List<Long> idList) {
         return productionProductMainMapper.listMain(idList);
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3