From 5eec9b5a9d8bf9e49663d5a51cab7490fef5b204 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 26 八月 2025 15:22:03 +0800
Subject: [PATCH] yys  生产管控(完成基本功能)

---
 main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java |   50 ++++++++++++++++++++++++--------------------------
 1 files changed, 24 insertions(+), 26 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 6a2d46c..25dae27 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
@@ -173,7 +173,7 @@
         batchInsertInventories(masterId, dto.getProductionInventoryList());
 
         // 鎻掑叆寰呭叆搴撴暟鎹�
-        insertPendingInventory(dto.getProductionList());
+//        insertPendingInventory(dto.getProductionList());
 
         return 1;
     }
@@ -263,6 +263,7 @@
             BeanUtils.copyProperties(p, copy);
             copy.setId(null);
             copy.setProductionMasterId(masterId);
+            copy.setStatus(1);
             productionMapper.insert(copy);
         }
     }
@@ -283,41 +284,38 @@
     /**
      * 灏嗗姞宸ヤ骇鐢熺殑浜у搧璁板綍鍒板緟鍏ュ簱琛�
      */
-    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);
-        // 甯搁噺瀹氫箟锛氫繚鐣�2浣嶅皬鏁帮紝鍥涜垗浜斿叆妯″紡
         final int SCALE = 2;
         final RoundingMode ROUNDING_MODE = RoundingMode.HALF_UP;
-        // 绋庣巼13%锛岀敤瀛楃涓叉瀯閫燘igDecimal閬垮厤绮惧害璇樊
         final BigDecimal TAX_RATE = new BigDecimal("1.13");
 
         for (Production p : list) {
             PendingInventory pending = new PendingInventory();
             pending.setCoalId(p.getCoalId());
             pending.setInventoryQuantity(p.getProductionQuantity());
-            pending.setUnit("t");
+            pending.setUnit("鍚�");
             pending.setSupplierName(formattedDate + " - " + "鐢熶骇鍔犲伐鍏ュ簱");
 
-            // 1. 闈炵┖澶勭悊锛氶伩鍏峮ull瀵艰嚧鐨勮繍绠楀紓甯�
+            // 闈炵┖澶勭悊
             BigDecimal totalCost = p.getTotalCost() == null ? BigDecimal.ZERO : p.getTotalCost();
             BigDecimal productionQuantity = p.getProductionQuantity() == null ? BigDecimal.ZERO : p.getProductionQuantity();
 
-            // 2. 鍚◣鎬讳环 = 鍚◣鍗曚环 * 浜ч噺 鈫� 淇濈暀2浣嶅皬鏁�
+            // 鍚◣鎬讳环
             BigDecimal totalPriceIncludingTax = totalCost.multiply(productionQuantity)
                     .setScale(SCALE, ROUNDING_MODE);
             pending.setTotalPriceIncludingTax(totalPriceIncludingTax);
 
-            // 3. 鍚◣鍗曚环 鈫� 鐩存帴淇濈暀2浣嶅皬鏁�
+            // 鍚◣鍗曚环
             pending.setPriceIncludingTax(totalCost.setScale(SCALE, ROUNDING_MODE));
 
-            // 4. 涓嶅惈绋庡崟浠� = 鍚◣鍗曚环 / 1.13 鈫� 鍏堥珮绮惧害璁$畻锛屽啀淇濈暀2浣�
-            BigDecimal priceExcludingTax = totalCost.divide(TAX_RATE, 10, ROUNDING_MODE) // 涓棿淇濈暀10浣嶉槻璇樊
-                    .setScale(SCALE, ROUNDING_MODE);   // 鏈�缁堜繚鐣�2浣�
+            // 涓嶅惈绋庡崟浠凤紙鐩存帴淇濈暀2浣嶅皬鏁帮級
+            BigDecimal priceExcludingTax = totalCost.divide(TAX_RATE, SCALE, ROUNDING_MODE);
             pending.setPriceExcludingTax(priceExcludingTax);
 
-            // 5. 涓嶅惈绋庢�讳环 = 涓嶅惈绋庡崟浠� * 浜ч噺 鈫� 淇濈暀2浣嶅皬鏁�
+            // 涓嶅惈绋庢�讳环
             BigDecimal totalPriceExcludingTax = priceExcludingTax.multiply(productionQuantity)
                     .setScale(SCALE, ROUNDING_MODE);
             pending.setTotalPriceExcludingTax(totalPriceExcludingTax);
@@ -405,20 +403,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