From 392366ea36a839e5d0ea05968e6da31cd53a9ee6 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 27 八月 2025 14:32:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/pim-jlmy' into pim-jlmy

---
 main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java |   46 +++++++++++++++++++++++++++++-----------------
 1 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java
index eef4183..af6ca44 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java
@@ -49,6 +49,8 @@
 
     private final PendingInventoryMapper pendingInventoryMapper;
 
+    private final ProductionSchedulingMapper productionSchedulingMapper;
+
     @Override
     public IPage<ProductionMasterDto> selectPMList(Page page, ProductionMasterDto productionMasterDto) {
         // 1. 鏋勫缓涓昏〃鏌ヨ鏉′欢
@@ -173,7 +175,7 @@
         batchInsertInventories(masterId, dto.getProductionInventoryList());
 
         // 鎻掑叆寰呭叆搴撴暟鎹�
-        insertPendingInventory(dto.getProductionList());
+//        insertPendingInventory(dto.getProductionList());
 
         return 1;
     }
@@ -263,6 +265,7 @@
             BeanUtils.copyProperties(p, copy);
             copy.setId(null);
             copy.setProductionMasterId(masterId);
+            copy.setStatus(1);
             productionMapper.insert(copy);
         }
     }
@@ -283,7 +286,7 @@
     /**
      * 灏嗗姞宸ヤ骇鐢熺殑浜у搧璁板綍鍒板緟鍏ュ簱琛�
      */
-    private void insertPendingInventory(List<Production> list) {
+    public void insertPendingInventory(List<Production> list) {
         LocalDate currentDate = LocalDate.now();
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         String formattedDate = currentDate.format(formatter);
@@ -295,7 +298,7 @@
             PendingInventory pending = new PendingInventory();
             pending.setCoalId(p.getCoalId());
             pending.setInventoryQuantity(p.getProductionQuantity());
-            pending.setUnit("t");
+            pending.setUnit("鍚�");
             pending.setSupplierName(formattedDate + " - " + "鐢熶骇鍔犲伐鍏ュ簱");
 
             // 闈炵┖澶勭悊
@@ -365,12 +368,21 @@
                     .collect(Collectors.toList());
             productionInventoryMapper.deleteBatchIds(inventoryIds);
         }
+        List<Production> productions = productionMapper.selectList(new LambdaQueryWrapper<Production>()
+                .in(Production::getProductionMasterId, idList));
+
+        // 鍒犻櫎鐢熶骇鎶ュ伐璁板綍
+        productionSchedulingMapper.delete(
+                new LambdaQueryWrapper<ProductionScheduling>()
+                        .in(ProductionScheduling::getProductionId, productions.stream().map(Production::getId).collect(Collectors.toList()))
+        );
 
         // 鍒犻櫎鐢熶骇鏄庣粏
         productionMapper.delete(
                 new LambdaQueryWrapper<Production>()
                         .in(Production::getProductionMasterId, idList)
         );
+
 
         // 5. 鍒犻櫎涓昏褰�
         return productionMasterMapper.deleteBatchIds(idList);
@@ -402,20 +414,20 @@
         }
 
         // 鎵归噺鏇存柊瀹樻柟搴撳瓨
-        for (Map.Entry<Long, BigDecimal> entry : inventoryAdjustMap.entrySet()) {
-            OfficialInventory official = officialInventoryMapper.selectById(entry.getKey());
-            if (official == null) {
-                throw new BaseException("瀹樻柟搴撳瓨涓嶅瓨鍦紝ID: " + entry.getKey());
-            }
-
-            // 浣跨敤绾跨▼瀹夊叏鐨凚igDecimal鎿嶄綔
-            official.setInventoryQuantity(
-                    Optional.ofNullable(official.getInventoryQuantity())
-                            .orElse(BigDecimal.ZERO)
-                            .add(entry.getValue())
-            );
-            officialInventoryMapper.updateById(official);
-        }
+//        for (Map.Entry<Long, BigDecimal> entry : inventoryAdjustMap.entrySet()) {
+//            OfficialInventory official = officialInventoryMapper.selectById(entry.getKey());
+//            if (official == null) {
+//                throw new BaseException("瀹樻柟搴撳瓨涓嶅瓨鍦紝ID: " + entry.getKey());
+//            }
+//
+//            // 浣跨敤绾跨▼瀹夊叏鐨凚igDecimal鎿嶄綔
+//            official.setInventoryQuantity(
+//                    Optional.ofNullable(official.getInventoryQuantity())
+//                            .orElse(BigDecimal.ZERO)
+//                            .add(entry.getValue())
+//            );
+//            officialInventoryMapper.updateById(official);
+//        }
 
         // 鎵归噺鍒犻櫎鐢熶骇搴撳瓨
         if (!productionIdsToDelete.isEmpty()) {

--
Gitblit v1.9.3