From 961ac0196685096572ee838c68585dc8faace8d8 Mon Sep 17 00:00:00 2001
From: sfd <sun.sunshine@163.com>
Date: 星期四, 08 五月 2025 17:08:47 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.50.149:8085/r/aps-backend into dev

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java |   49 ++++++++++++++++++++++---------------------------
 1 files changed, 22 insertions(+), 27 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java
index 0e40df7..6181c6d 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java
@@ -3,7 +3,6 @@
 import java.math.BigDecimal;
 import java.util.*;
 
-import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
 import com.aps.common.core.utils.DateUtils;
 import com.aps.common.security.utils.DictUtils;
@@ -18,6 +17,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.aps.core.service.IApsPlateStandardRequireService;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -69,6 +69,9 @@
 
     @Resource
     IApsStandardProcessRouteLineService routeLineService;
+
+    @Resource
+    IApsPlateStandardRequireBatchService requireBatchService;
 
     /**
      * 鏌ヨ閽i噾宸ュ崟鏍囧噯闇�姹�
@@ -154,14 +157,18 @@
         return apsPlateStandardRequireMapper.selectPlateSupplyGapList(apsPlateStandardRequire);
     }
 
-    private void generatorPlan(){
+    @Transactional
+    @Override
+    public void generatorPlan(){
 
+        /*鍒濆鍖栨暟鎹�*/
+        requireBatchService.initRequireBatch();
         /*瀹氫箟宸ュ巶涓哄崡閫� */
         String plantCode="FORTUNA";
         /*瀹氫箟涓诲崟绫诲瀷涓洪挘閲戜富鍗�*/
         String mainOrderType = "閽i噾涓讳欢";
         /*鐢熸垚鏂版壒娆″彿*/
-        String batchNum=getBatch();
+        String batchNum= requireBatchService.getNewBatchNumber();
         /*鑾峰彇閽i噾涓诲崟淇℃伅*/
         List<ApsPlatePlan> mainPlans = platePlanMapper.selectPlatePlanByPlantMajor(plantCode,mainOrderType);
         for (ApsPlatePlan mainPlan : mainPlans) {
@@ -215,6 +222,8 @@
         }
         /*鏌ユ壘搴撳瓨锛岃绠楀噣闇�姹傦紝淇濆瓨鍓╀綑搴撳瓨锛屼繚瀛樺簱瀛樻墸鍑忔槑缁�*/
         BigDecimal remainderStock = BigDecimal.ZERO;
+        /*榛樿鍑�闇�姹備负BOM鐢ㄩ噺*/
+        require.setNetRequirement(require.getBomUseAmount());
         Optional<ApsMaterialStorageManagement> itemStorage = getItemStorage(plant, itemNumber);
         if (itemStorage.isPresent()) {
             ApsMaterialStorageManagement storage = itemStorage.get();
@@ -282,33 +291,19 @@
         if (require.getNetRequirement().compareTo(BigDecimal.ZERO) > 0) {
             require.setMatchState("寰呭尮閰�");
             require.setMatchMode("宸ュ崟鍖归厤");
+            /*浣跨敤瀛愪欢宸ュ崟杩涜闇�姹傚尮閰�*/
+            matchRequireAndSubPlan(require);
         }
-        /*浣跨敤瀛愪欢宸ュ崟杩涜闇�姹傚尮閰�*/
-        matchRequireAndSubPlan(require);
-
         allRequires.add(require);
-        /*褰撳墠Bom鑺傜偣澶勭悊瀹屾垚鍚庯紝澶勭悊涓嬬骇BOM*/
-        List<ApsBom> bomLineList = bomLineService.selectApsBomLineList(plant, itemNumber);
-        if (!bomLineList.isEmpty()) {
-            bomLineList.forEach(line -> {
-                getBomRequires(plant, line, batchNum, require.getStartDate(), plan, allRequires, level + 1);
-            });
+        if (require.getNetRequirement().compareTo(BigDecimal.ZERO) > 0) {
+            /*褰撳墠Bom鑺傜偣澶勭悊瀹屾垚鍚庯紝澶勭悊涓嬬骇BOM*/
+            List<ApsBom> bomLineList = bomLineService.selectApsBomLineList(plant, itemNumber);
+            if (!bomLineList.isEmpty()) {
+                bomLineList.forEach(line -> {
+                    getBomRequires(plant, line, batchNum, require.getStartDate(), plan, allRequires, level + 1);
+                });
+            }
         }
-    }
-
-    /**
-     * 鐢熸垚鏂版壒娆″彿
-     * */
-    private  String getBatch() {
-        String batchNum = System.currentTimeMillis() + "";
-        ApsPlateStandardRequireBatch batchBuilder = ApsPlateStandardRequireBatch.builder()
-                .id(IdUtil.getSnowflakeNextId())
-                .batchNumber(batchNum)
-                .delFlag("0").build();
-        batchBuilder.setCreateBy(SecurityUtils.getUsername());
-        batchBuilder.setCreateTime(DateUtils.getNowDate());
-        requireBatchMapper.insertApsPlateStandardRequireBatch(batchBuilder);
-        return batchNum;
     }
     /**
      * 鑾峰彇鐗╂枡搴撳瓨淇℃伅

--
Gitblit v1.9.3