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(); } aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java
@@ -83,4 +83,9 @@ * 更新子计划未匹配数量 * */ int updatePlanUnMatchQtyByVersion(ApsPlatePlan plan); /** * 初始化 子件工单的 未匹配数量 * */ int initUnMatchQty(); } 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(); } 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); } 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); } 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); } 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); } 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; /** * 钣金计划标准需求计划批次表Service接口 @@ -58,4 +59,9 @@ * @return 结果 */ public int deleteApsPlateStandardRequireBatchById(Long id); String getNewBatchNumber(); @Transactional void initRequireBatch(); } 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; /** * 钣金计划标准需求计划批次表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; /** * 查询钣金计划标准需求计划批次表 @@ -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(); } } } 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); } } 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; /** * 查询钣金工单标准需求 @@ -154,14 +158,17 @@ return apsPlateStandardRequireMapper.selectPlateSupplyGapList(apsPlateStandardRequire); } private void generatorPlan(){ @Transactional public void generatorPlan(){ /*初始化数据*/ requireBatchService.initRequireBatch(); /*定义工厂为南通 */ String plantCode="FORTUNA"; /*定义主单类型为钣金主单*/ String mainOrderType = "钣金主件"; /*生成新批次号*/ String batchNum=getBatch(); String batchNum= requireBatchService.getNewBatchNumber(); /*获取钣金主单信息*/ 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; } /** * 获取物料库存信息 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> 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> 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> 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> 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> 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> 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>