From 37e17957e82ea4263298b9651eb70dd1e093584e Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期二, 02 六月 2026 15:42:42 +0800
Subject: [PATCH] fix: 生产工单时间需要加上时分秒、销售台账加上业务员筛选条件

---
 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 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 7de2682..cc5b1cf 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -115,7 +115,7 @@
         //宸ヨ壓璺嚎涓綋鍓嶅伐搴忓搴旂殑浜у嚭瑙勬牸鍨嬪彿
         ProductModel productModel = productModelMapper.selectById(productProcessRouteItem.getProductModelId());
         //鏌ヨ璇ョ敓浜ц鍗曞搴旂殑bom
-        ProductProcessRoute productProcessRoute = productProcessRouteMapper.selectById(productProcessRouteItem.getProductRouteId());
+        ProductProcessRoute productProcessRoute = Optional.ofNullable(productProcessRouteMapper.selectById(productProcessRouteItem.getProductRouteId())).orElse(new ProductProcessRoute());
         /*鏂板鎶ュ伐涓昏〃*/
         //鏌ヨ鏈�澶ф姤宸ョ紪鍙�
         String datePrefix = "BG" + LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
@@ -177,7 +177,7 @@
 
         productionProductMainMapper.insert(productionProductMain);
         /*鏂板鎶ュ伐鎶曞叆琛�*/
-        List<ProductStructureDto> productStructureDtos = productStructureMapper.listBybomAndProcess(productProcessRoute.getBomId(), productProcess.getId());
+        List<ProductStructureDto> productStructureDtos = productStructureMapper.listBybomAndProcess(Optional.ofNullable(productProcessRoute.getBomId()).orElse(0), productProcess.getId());
         if (productStructureDtos.isEmpty()) {
             //濡傛灉璇ュ伐搴忔病鏈変骇鍝佺粨鏋勭殑鎶曞叆鍝�,閭h繖涓姇鍏ュ搧鍜屼骇鍑哄搧鏄悓涓�涓�
             ProductStructureDto productStructureDto = new ProductStructureDto();
@@ -200,6 +200,7 @@
         productionProductOutput.setQuantity(dto.getQuantity() != null ? dto.getQuantity() : BigDecimal.ZERO);
         productionProductOutput.setScrapQty(dto.getScrapQty() != null ? dto.getScrapQty() : BigDecimal.ZERO);
         productionProductOutput.setReplenishQty(dto.getReplenishQty());
+        productionProductOutput.setAddQty(dto.getAddQty() != null ? dto.getAddQty() : BigDecimal.ZERO);
         productionProductOutputMapper.insert(productionProductOutput);
         //鍚堟牸鏁伴噺=鎶ュ伐鏁伴噺-鎶ュ簾鏁伴噺
         BigDecimal productQty = productionProductOutput.getQuantity().subtract(productionProductOutput.getScrapQty());
@@ -209,10 +210,10 @@
             /*鏇存柊宸ュ崟鍜岀敓浜ц鍗�*/
             productWorkOrder.setCompleteQuantity(productWorkOrder.getCompleteQuantity().add(productQty));
             if (ObjectUtils.isNull(productWorkOrder.getActualStartTime())) {
-                productWorkOrder.setActualStartTime(LocalDate.now());//瀹為檯寮�濮嬫椂闂�
+                productWorkOrder.setActualStartTime(LocalDateTime.now());//瀹為檯寮�濮嬫椂闂�
             }
-            if (productWorkOrder.getCompleteQuantity().compareTo(productWorkOrder.getPlanQuantity()) == 0) {
-                productWorkOrder.setActualEndTime(LocalDate.now());//瀹為檯缁撴潫鏃堕棿
+            if (productWorkOrder.getCompleteQuantity().compareTo(productWorkOrder.getPlanQuantity()) >= 0) {
+                productWorkOrder.setActualEndTime(LocalDateTime.now());//瀹為檯缁撴潫鏃堕棿
             }
             productWorkOrder.setEndProductTime(now);
             productWorkOrderMapper.updateById(productWorkOrder);
@@ -221,10 +222,10 @@
             if (ObjectUtils.isNull(productOrder.getStartTime())) {
                 productOrder.setStartTime(now);//寮�濮嬫椂闂�
             }
-            if (productProcessRouteItem.getDragSort() == productProcessRouteItems.size()) {
+            if (productProcessRouteItem.getDragSort() >= productProcessRouteItems.size() -1 ) {
                 //濡傛灉鏄渶鍚庝竴閬撳伐搴忔姤宸ヤ箣鍚庣敓浜ц鍗曞畬鎴愭暟閲�+
                 productOrder.setCompleteQuantity(productOrder.getCompleteQuantity().add(productQty));
-                if (productOrder.getCompleteQuantity().compareTo(productOrder.getQuantity()) == 0) {
+                if (productOrder.getCompleteQuantity().compareTo(productOrder.getQuantity()) >= 0) {
                     productOrder.setEndTime(now);//缁撴潫鏃堕棿
                 }
             }
@@ -336,7 +337,7 @@
                 //瀵瑰簲鐨勮繃绋嬫鎴栬�呭嚭鍘傛
                 int inspectType = 1;
                 String process = productProcess.getName();//宸ュ簭
-                if (productProcessRouteItem.getDragSort() == productProcessRouteItems.size()) {
+                if (productProcessRouteItem.getDragSort() == (productProcessRouteItems.size()-1)) {
                     //鏈�鍚庝竴閬撳伐搴忕敓鎴愬嚭鍘傛
                     inspectType = 2;
                     process = null;
@@ -370,7 +371,10 @@
                 }
             } else {
                 //鐩存帴鍏ュ簱
-                stockUtils.addStock(productProcessRouteItem.getProductModelId(), productQty, StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId(), "-", "-", "-");
+                if (productProcessRouteItem.getDragSort() == (productProcessRouteItems.size()-1)) {
+                    //鏈�鍚庝竴閬撳伐搴忔墠浼氬叆搴�
+                    stockUtils.addStock(productProcessRouteItem.getProductModelId(), productQty, StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId(), "-", "-", "-");
+                }
             }
 
             /*娣诲姞鐢熶骇鏍哥畻        鍖哄垎宸ュ簭鏄浠惰繕鏄鏃�*/

--
Gitblit v1.9.3