From abc451e52a9ded8a18238d6903539fb310c1b256 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期四, 08 五月 2025 16:18:17 +0800
Subject: [PATCH] 增加初始化钣金计划数据接口

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java               |   28 +++-----
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBomStockDetailMapper.java            |    2 
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialStorageManagementMapper.java                     |    5 +
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java                                     |    5 +
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomOrderDetailServiceImpl.java |    4 +
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireMapper.xml                              |    3 +
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBatchMapper.java                     |    5 +
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBatchMapper.xml                         |    6 ++
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml                                         |    5 +
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBomOrderDetailMapper.java            |    2 
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBatchServiceImpl.java          |   57 ++++++++++++++++++
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml                |    4 +
 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBatchService.java                  |    6 ++
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireMapper.java                          |    2 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireErrorMapper.xml                         |    3 +
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomStockDetailMapper.xml                |    4 +
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireErrorMapper.java                     |    2 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml                         |    6 ++
 18 files changed, 130 insertions(+), 19 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialStorageManagementMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialStorageManagementMapper.java
index dcfe594..33794ce 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialStorageManagementMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialStorageManagementMapper.java
@@ -64,4 +64,9 @@
 
 
    int updateMaterialStorageByVersion(BigDecimal remainderStock, Integer version);
+
+   /**
+    * 鍒濆鍖栧墿浣欏簱瀛樻暟閲�
+    * */
+   int initRemainderStock();
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java
index 96ce218..f354088 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java
@@ -83,4 +83,9 @@
      * 鏇存柊瀛愯鍒掓湭鍖归厤鏁伴噺
      * */
     int updatePlanUnMatchQtyByVersion(ApsPlatePlan plan);
+
+    /**
+     * 鍒濆鍖� 瀛愪欢宸ュ崟鐨� 鏈尮閰嶆暟閲�
+     * */
+    int initUnMatchQty();
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBatchMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBatchMapper.java
index e71c7d8..99c7704 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBatchMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBatchMapper.java
@@ -60,4 +60,9 @@
      * @return 缁撴灉
      */
     public int deleteApsPlateStandardRequireBatchByIds(Long[] ids);
+
+    /**
+     * 鍙栧嚭涓婁竴鎵规淇℃伅
+     * */
+    ApsPlateStandardRequireBatch selectLastRequireBatch();
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBomOrderDetailMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBomOrderDetailMapper.java
index 60d4690..9960819 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBomOrderDetailMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBomOrderDetailMapper.java
@@ -61,4 +61,6 @@
      * @return 缁撴灉
      */
     public int deleteApsPlateStandardRequireBomOrderDetailByIds(Long[] ids);
+
+    int deleteLastPatch(String batchNumber);
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBomStockDetailMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBomStockDetailMapper.java
index 0413500..9dcb767 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBomStockDetailMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireBomStockDetailMapper.java
@@ -60,4 +60,6 @@
      * @return 缁撴灉
      */
     public int deleteApsPlateStandardRequireBomStockDetailByIds(Long[] ids);
+
+    int deleteLastPatch(String batchNumber);
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireErrorMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireErrorMapper.java
index 12f5b30..6d7a2d1 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireErrorMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireErrorMapper.java
@@ -60,4 +60,6 @@
      * @return 缁撴灉
      */
     public int deleteApsPlateStandardRequireErrorByIds(Long[] ids);
+    
+    int deleteLastPatch(String batchNumber);
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireMapper.java
index dfdd85f..a42d1f8 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateStandardRequireMapper.java
@@ -71,4 +71,6 @@
     public List<ApsPlateStandardRequire> selectPlateSupplyGapList(ApsPlateStandardRequire apsPlateStandardRequire);
 
     int batchInsert(List<ApsPlateStandardRequire> requireList);
+
+    int deleteLastPatch(String batchNumber);
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBatchService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBatchService.java
index ba3ff13..ac0b987 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBatchService.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireBatchService.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 import com.aps.core.domain.ApsPlateStandardRequireBatch;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 閽i噾璁″垝鏍囧噯闇�姹傝鍒掓壒娆¤〃Service鎺ュ彛
@@ -58,4 +59,9 @@
      * @return 缁撴灉
      */
     public int deleteApsPlateStandardRequireBatchById(Long id);
+
+    String getNewBatchNumber();
+
+    @Transactional
+    void initRequireBatch();
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBatchServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBatchServiceImpl.java
index a0552a7..47f26f1 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBatchServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBatchServiceImpl.java
@@ -1,12 +1,17 @@
 package com.aps.core.service.impl;
 
 import java.util.List;
+
+import cn.hutool.core.util.IdUtil;
 import com.aps.common.core.utils.DateUtils;
+import com.aps.common.security.utils.SecurityUtils;
+import com.aps.core.mapper.*;
+import jakarta.annotation.Resource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.aps.core.mapper.ApsPlateStandardRequireBatchMapper;
 import com.aps.core.domain.ApsPlateStandardRequireBatch;
 import com.aps.core.service.IApsPlateStandardRequireBatchService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 閽i噾璁″垝鏍囧噯闇�姹傝鍒掓壒娆¤〃Service涓氬姟灞傚鐞�
@@ -19,6 +24,25 @@
 {
     @Autowired
     private ApsPlateStandardRequireBatchMapper apsPlateStandardRequireBatchMapper;
+
+    @Resource
+    ApsMaterialStorageManagementMapper apsMaterialStorageManagementMapper;
+
+    @Resource
+    ApsPlatePlanMapper apsPlatePlanMapper;
+
+    @Resource
+    ApsPlateStandardRequireMapper apsPlateStandardRequireMapper;
+
+    @Resource
+    ApsPlateStandardRequireBomOrderDetailMapper apsPlateStandardRequireBomOrderDetailMapper;
+
+    @Resource
+    ApsPlateStandardRequireBomStockDetailMapper apsPlateStandardRequireBomStockDetailMapper;
+
+    @Resource
+    ApsPlateStandardRequireErrorMapper apsPlateStandardRequireErrorMapper;
+
 
     /**
      * 鏌ヨ閽i噾璁″垝鏍囧噯闇�姹傝鍒掓壒娆¤〃
@@ -93,4 +117,35 @@
     {
         return apsPlateStandardRequireBatchMapper.deleteApsPlateStandardRequireBatchById(id);
     }
+
+    /**
+     * 鐢熸垚鏂版壒娆″彿
+     * */
+    @Override
+    public String getNewBatchNumber() {
+        String batchNum = String.valueOf(IdUtil.getSnowflakeNextId()) ;
+        ApsPlateStandardRequireBatch batchBuilder = ApsPlateStandardRequireBatch.builder()
+                .id(IdUtil.getSnowflakeNextId())
+                .batchNumber(batchNum)
+                .delFlag("0").build();
+        batchBuilder.setCreateBy(SecurityUtils.getUsername());
+        batchBuilder.setCreateTime(DateUtils.getNowDate());
+        apsPlateStandardRequireBatchMapper.insertApsPlateStandardRequireBatch(batchBuilder);
+        return batchNum;
+    }
+
+    @Transactional
+    @Override
+    public void initRequireBatch() {
+        ApsPlateStandardRequireBatch batch=apsPlateStandardRequireBatchMapper.selectLastRequireBatch();
+        if (batch!=null){
+            String batchNumber = batch.getBatchNumber();
+            apsPlateStandardRequireMapper.deleteLastPatch(batchNumber);
+            apsPlateStandardRequireBomOrderDetailMapper.deleteLastPatch(batchNumber);
+            apsPlateStandardRequireBomStockDetailMapper.deleteLastPatch(batchNumber);
+            apsPlateStandardRequireErrorMapper.deleteLastPatch(batchNumber);
+            apsPlatePlanMapper.initUnMatchQty();
+            apsMaterialStorageManagementMapper.initRemainderStock();
+        }
+    }
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomOrderDetailServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomOrderDetailServiceImpl.java
index e82eee2..bc6c7b0 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomOrderDetailServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomOrderDetailServiceImpl.java
@@ -115,7 +115,9 @@
                 .docNo(platePlan.getDocumentNumber())
                 .beforeProdAmount(stock)
                 .deductionAmount(netRequirement)
-                .afterProdAmount(subtract).build();
+                .afterProdAmount(subtract)
+                .batchNumber(require.getBatchNumber())
+                .build();
         apsPlateStandardRequireBomOrderDetailMapper.insertApsPlateStandardRequireBomOrderDetail(bomOrderDetail);
     }
 }
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..b33d4d7 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
@@ -18,6 +18,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 +70,9 @@
 
     @Resource
     IApsStandardProcessRouteLineService routeLineService;
+
+    @Resource
+    IApsPlateStandardRequireBatchService requireBatchService;
 
     /**
      * 鏌ヨ閽i噾宸ュ崟鏍囧噯闇�姹�
@@ -154,14 +158,17 @@
         return apsPlateStandardRequireMapper.selectPlateSupplyGapList(apsPlateStandardRequire);
     }
 
-    private void generatorPlan(){
+    @Transactional
+    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();
@@ -294,21 +303,6 @@
                 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;
     }
     /**
      * 鑾峰彇鐗╂枡搴撳瓨淇℃伅
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml
index 747cd2a..2d391a7 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml
@@ -98,4 +98,10 @@
         set remainder_stock=#{remainderStock},version=version+1
         where id=#{id} and version=#{version}
     </update>
+
+    <update id="initRemainderStock">
+        update aps_material_storage_management
+        set remainder_stock=num,version=0
+        where 1=1
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
index fccc5a1..99f4e68 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
@@ -306,4 +306,9 @@
         </if>
     </select>
 
+    <update id="initUnMatchQty" >
+        update aps_plate_plan
+            set unmatched_quantity=production_quantity, version=0
+        where   del_flag='0' and professional_affiliation !='0'
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBatchMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBatchMapper.xml
index 40b6aeb..7b8f502 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBatchMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBatchMapper.xml
@@ -75,4 +75,10 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="selectLastRequireBatch" parameterType="Long" resultMap="ApsPlateStandardRequireBatchResult">
+        <include refid="selectApsPlateStandardRequireBatchVo"/>
+        order by create_time desc,id desc
+        limit  1
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml
index 149e3fc..5d6ac40 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml
@@ -125,4 +125,8 @@
             #{id}
         </foreach>
     </delete>
+
+    <update id="deleteLastPatch" parameterType="String">
+        update aps_plate_standard_require_bom_order_detail set del_flag = '1' where batch_number = #{batchNumber}
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomStockDetailMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomStockDetailMapper.xml
index e94a2cd..552802d 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomStockDetailMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomStockDetailMapper.xml
@@ -118,4 +118,8 @@
             #{id}
         </foreach>
     </delete>
+
+    <update id="deleteLastPatch" parameterType="String">
+        update aps_plate_standard_require_bom_stock_detail set del_flag = '1' where batch_number = #{batchNumber}
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireErrorMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireErrorMapper.xml
index 3899980..a59df7c 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireErrorMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireErrorMapper.xml
@@ -100,4 +100,7 @@
             #{id}
         </foreach>
     </delete>
+    <update id="deleteLastPatch" parameterType="String">
+        update aps_plate_standard_require_error set del_flag = '1' where batch_number = #{batchNumber}
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireMapper.xml
index ba9c463..3721c3b 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireMapper.xml
@@ -216,4 +216,7 @@
         )
         </foreach>
     </insert>
+    <update id="deleteLastPatch" parameterType="String">
+        update aps_plate_standard_require set del_flag = '1' where batch_number = #{batchNumber}
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3