From dae4a24949c0c8cfad87aff850b667d3cad399c1 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期四, 22 五月 2025 14:56:12 +0800 Subject: [PATCH] 优化: 钣金详细计划、钣金计划大表、钣金工单计划 --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java | 19 ++++ aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireErrorMapper.xml | 4 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java | 5 + aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomStockDetailMapper.xml | 4 aps-modules/aps-core/src/main/java/com/aps/core/enums/PLAN_TASK_STATUS.java | 4 aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml | 11 +- aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireMapper.xml | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireBatchService.java | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomHeaderService.java | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java | 4 + aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireServiceImpl.java | 46 ++++------- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlanTaskServiceImpl.java | 39 +++++---- aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomOrderDetailMapper.xml | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java | 4 - aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java | 22 +---- aps-common/aps-common-redis/src/main/java/com/aps/common/redis/service/RedisLockUtils.java | 3 aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireErrorService.java | 4 + aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireBatchServiceImpl.java | 18 +-- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireErrorServiceImpl.java | 21 +++++ aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml | 10 ++ aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java | 9 ++ 21 files changed, 134 insertions(+), 101 deletions(-) diff --git a/aps-common/aps-common-redis/src/main/java/com/aps/common/redis/service/RedisLockUtils.java b/aps-common/aps-common-redis/src/main/java/com/aps/common/redis/service/RedisLockUtils.java index 4460773..1dafb95 100644 --- a/aps-common/aps-common-redis/src/main/java/com/aps/common/redis/service/RedisLockUtils.java +++ b/aps-common/aps-common-redis/src/main/java/com/aps/common/redis/service/RedisLockUtils.java @@ -29,6 +29,9 @@ * 鍒ゆ柇鏄惁瀛樺湪閿� * */ public boolean existLock(String key,String value){ + if(null==this.redisTemplate.opsForValue().get(key)){ + return false; + } return this.redisTemplate.opsForValue().get(key).equals(value); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java index 433c072..d1342ca 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java @@ -129,7 +129,8 @@ @PostMapping("/setBomDataToRedis") public void setBomDataToRedis() { - apsBomHeaderService.setBomDataToRedis(""); + apsBomHeaderService.setBomDataToRedis("FORTUNA"); + //apsBomHeaderService.setBomDataToRedis("FORTUNE"); } @PostMapping("/test") @@ -137,4 +138,10 @@ { apsBomHeaderService.setBomDataToRedis("FORTUNA"); } + + @GetMapping("/getBomRdsCount/{orgCode}") + public Integer getBomRdsCount(String orgCode) + { + return apsBomHeaderService.getBomKeys(orgCode); + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/enums/PLAN_TASK_STATUS.java b/aps-modules/aps-core/src/main/java/com/aps/core/enums/PLAN_TASK_STATUS.java index ec1945d..1714dab 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/enums/PLAN_TASK_STATUS.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/enums/PLAN_TASK_STATUS.java @@ -2,8 +2,8 @@ public enum PLAN_TASK_STATUS { IN_PROCESS("InProgress","杩涜涓�"), - FINISHED("Finished","瀹屾垚"); - + FINISHED("Finished","瀹屾垚"), + ERROR("Error","澶辫触"); private String code; private String desc; diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireBatchService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireBatchService.java index 7e619a5..aeedfb3 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireBatchService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireBatchService.java @@ -63,5 +63,5 @@ String getNewBatchNumber(); @Transactional - void initRequireBatch(); + void initRequireBatch(String batchNumber); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireErrorService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireErrorService.java index 25bf22c..d3958e1 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireErrorService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireErrorService.java @@ -1,6 +1,8 @@ package com.aps.core.service.ApsPlate; import java.util.List; + +import com.aps.core.domain.ApsPlate.ApsPlateStandardRequire; import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireError; /** @@ -58,4 +60,6 @@ * @return 缁撴灉 */ public int deleteApsPlateStandardRequireErrorById(Long id); + + void saveRequireError(ApsPlateStandardRequire require, String message); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomHeaderService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomHeaderService.java index c985f36..794b14f 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomHeaderService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomHeaderService.java @@ -66,4 +66,6 @@ * @return */ public boolean setBomDataToRedis(String orgCode); + + Integer getBomKeys(String orgCode); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java index e5ab958..939cd2b 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java @@ -131,4 +131,8 @@ } return true; } + @Override + public Integer getBomKeys(String orgCode){ + return redisTemplate.keys("BOM:BOM_"+orgCode+"*").size(); + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java index 0b9717b..bd7b3c8 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java @@ -140,10 +140,6 @@ bomLineList.add(apsBom); } } -// else { -// bomLineList = selectApsBomLineList(plant, itemNumber); -// } - return bomLineList; } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlanTaskServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlanTaskServiceImpl.java index 6469be7..d00d0af 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlanTaskServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlanTaskServiceImpl.java @@ -90,36 +90,37 @@ } @Override - public AjaxResult generatorPlan() - { + public AjaxResult generatorPlan() { String plateOrderPlanKey = PLATE_ORDER_PLAN.getKey(); boolean existsLock = redisLockUtils.existLock(plateOrderPlanKey, PLAN_TASK_TYPE.PLATE_PLAN.getCode()); - if (existsLock){ + if (existsLock) { return AjaxResult.warn("閽i噾宸ュ崟璁″垝浠诲姟姝e湪鎵ц涓�!"); } - LambdaQueryWrapper<ApsPlanTask> queryWrapper=new LambdaQueryWrapper<>(); - queryWrapper.eq(ApsPlanTask::getTaskType,PLAN_TASK_TYPE.PLATE_PLAN.getCode()); - queryWrapper.eq(ApsPlanTask::getTaskStatus,PLAN_TASK_STATUS.IN_PROCESS.getCode()); + LambdaQueryWrapper<ApsPlanTask> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ApsPlanTask::getTaskType, PLAN_TASK_TYPE.PLATE_PLAN.getCode()); + queryWrapper.eq(ApsPlanTask::getTaskStatus, PLAN_TASK_STATUS.IN_PROCESS.getCode()); boolean existsDbTask = mapper.exists(queryWrapper); - if (existsDbTask){ + if (existsDbTask) { return AjaxResult.warn("閽i噾宸ュ崟璁″垝浠诲姟姝e湪鎵ц涓�!!"); } + String currentBatchNum = requireBatchService.getNewBatchNumber(); try { - redisLockUtils.getLock(plateOrderPlanKey,PLAN_TASK_TYPE.PLATE_PLAN.getCode(), 3*60L); - String batchNum= requireBatchService.getNewBatchNumber(); - this.savePlanTask(batchNum); - apsPlateStandardRequireService.generatorPlan(batchNum); - this.updateTaskStatus(batchNum, PLAN_TASK_STATUS.FINISHED); + redisLockUtils.getLock(plateOrderPlanKey, PLAN_TASK_TYPE.PLATE_PLAN.getCode(), 15 * 60L); + this.savePlanTask(currentBatchNum); + //Thread.sleep(60*1000); + apsPlateStandardRequireService.generatorPlan(currentBatchNum); /*娓呴櫎宸茬粡瀛樺湪鐨� 宸ュ崟璁″垝瀹屽伐鏃堕棿*/ orderEndDayMapper.batchRemove(); - log.info("璁″垝浠诲姟鎵ц瀹屾垚!"+batchNum); + this.updateTaskStatus(currentBatchNum, PLAN_TASK_STATUS.FINISHED); + log.info("璁″垝浠诲姟鎵ц瀹屾垚!" + currentBatchNum); return success(); - }catch (Exception e){ - redisLockUtils.releaseLock(plateOrderPlanKey,PLAN_TASK_TYPE.PLATE_PLAN.getCode()); - log.error("璁″垝浠诲姟鎵ц澶辫触!"+e.getMessage()); - return AjaxResult.error("璁″垝浠诲姟鎵ц澶辫触!"+e.getMessage()); - }finally { - redisLockUtils.releaseLock(plateOrderPlanKey,PLAN_TASK_TYPE.PLATE_PLAN.getCode()); + } catch (Exception e) { + redisLockUtils.releaseLock(plateOrderPlanKey, PLAN_TASK_TYPE.PLATE_PLAN.getCode()); + log.error("璁″垝浠诲姟鎵ц澶辫触!" + e.getMessage()); + this.updateTaskStatus(currentBatchNum, PLAN_TASK_STATUS.ERROR); + return AjaxResult.error("璁″垝浠诲姟鎵ц澶辫触!" + e.getMessage()); + } finally { + redisLockUtils.releaseLock(plateOrderPlanKey, PLAN_TASK_TYPE.PLATE_PLAN.getCode()); } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java index 2315067..2436835 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java @@ -18,6 +18,7 @@ import com.aps.core.domain.ApsPlate.ApsPlateProcessShopStat; import com.aps.core.domain.ApsPlate.ApsPlateProcessStat; import com.aps.core.mapper.*; +import com.aps.core.service.ApsPlate.IApsPlateProcessStatService; import com.aps.system.api.domain.SysDictData; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -59,6 +60,9 @@ @Resource private ApsPlatePlanMapper apsPlatePlanMapper; + @Autowired + private IApsPlateProcessStatService apsPlateProcessStatService; + /** @@ -136,6 +140,7 @@ @Override public void saveShopStat() { try { + apsPlateProcessStatService.savePlateProcessStat(); // 寮�濮嬩箣鍓嶅厛鍒犻櫎鎵�鏈夊巻鍙叉暟鎹� apsPlateProcessShopStatMapper.deleteAll(); diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java index 6544ed3..410a1d6 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java @@ -2,12 +2,15 @@ import java.math.BigDecimal; import java.time.*; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; +import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.uuid.IdUtils; import com.aps.common.security.utils.SecurityUtils; +import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomOrderDetail; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsPlateProcessStatMapper; @@ -109,9 +112,11 @@ public void savePlateProcessStat() { String batchNum = IdUtils.fastSimpleUUID(); List<ApsPlateProcessStat> tempList = apsPlateProcessStatMapper.queryTempStat(); + ApsPlateProcessStat apsPlateProcessStat = tempList.stream().filter(x -> x.getWorkOrderNo().equals("MO-250409003498")).findFirst().get(); Map<String, List<ApsPlateProcessStat>> groupByOrderNo = tempList.stream().collect(groupingBy(ApsPlateProcessStat::getWorkOrderNo)); Boolean hasBefore = false; LocalDateTime now = LocalDateTime.now(); + List<ApsPlateProcessStat> totalList=new ArrayList<>(); for (Map.Entry<String, List<ApsPlateProcessStat>> entry : groupByOrderNo.entrySet()) { List<ApsPlateProcessStat> statPerOrder = entry.getValue(); /*num 涓烘牴鎹畬宸ユ椂闂存帓搴忓嚭鐨勫簭鍙凤紝鎸夋鎺掑簭锛屽彲淇濊瘉鏄寜瀹屽伐鏃堕棿鍊掑彊鎺掑垪*/ @@ -176,13 +181,21 @@ } } last = stat; - apsPlateProcessStatMapper.insertApsPlateProcessStat(stat); + totalList.add(stat); + //apsPlateProcessStatMapper.insertApsPlateProcessStat(stat); } hasBefore=false; - } apsPlateProcessStatMapper.removeOtherStat(batchNum); - + if(!totalList.isEmpty()){ + int batchSize = 1000; + totalList.forEach(x->x.setId(String.valueOf(IdUtil.getSnowflakeNextId()))); + for (int i = 0; i < totalList.size(); i += batchSize) { + int end = Math.min(i + batchSize, totalList.size()); + List<ApsPlateProcessStat> batch = totalList.subList(i, end); + apsPlateProcessStatMapper.batchInsertPlateStat(batch); + } + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireBatchServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireBatchServiceImpl.java index e765fc6..5046800 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireBatchServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireBatchServiceImpl.java @@ -136,16 +136,12 @@ @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(); - } + public void initRequireBatch(String currentBatchNumber) { + apsPlateStandardRequireMapper.deleteLastPatch(currentBatchNumber); + apsPlateStandardRequireBomOrderDetailMapper.deleteLastPatch(currentBatchNumber); + apsPlateStandardRequireBomStockDetailMapper.deleteLastPatch(currentBatchNumber); + apsPlateStandardRequireErrorMapper.deleteLastPatch(currentBatchNumber); + apsPlatePlanMapper.initUnMatchQty(); + apsMaterialStorageManagementMapper.initRemainderStock(); } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireErrorServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireErrorServiceImpl.java index 606a101..a342cee 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireErrorServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireErrorServiceImpl.java @@ -1,7 +1,11 @@ package com.aps.core.service.impl.ApsPlate; 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.domain.ApsPlate.ApsPlateStandardRequire; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsPlateStandardRequireErrorMapper; @@ -93,4 +97,21 @@ { return apsPlateStandardRequireErrorMapper.deleteApsPlateStandardRequireErrorById(id); } + + @Override + public void saveRequireError(ApsPlateStandardRequire require, String message) { + ApsPlateStandardRequireError data = ApsPlateStandardRequireError.builder() + .id(IdUtil.getSnowflakeNextId()) + .requireId(require.getId()) + .batchNumber(require.getBatchNumber()) + .docNum(require.getDocNum()) + .itemNum(require.getBomLineCode()) + .orgCode(require.getOrgCode()) + .message(message) + .delFlag("0") + .build(); + data.setCreateBy(SecurityUtils.getUsername()); + data.setCreateTime(DateUtils.getNowDate()); + apsPlateStandardRequireErrorMapper.insertApsPlateStandardRequireError(data); + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireServiceImpl.java index e6b8cd9..a7653f6 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireServiceImpl.java @@ -1,29 +1,27 @@ package com.aps.core.service.impl.ApsPlate; -import java.math.BigDecimal; -import java.util.*; - import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; import com.aps.common.security.utils.DictUtils; import com.aps.common.security.utils.SecurityUtils; -import com.aps.core.domain.*; -import com.aps.core.domain.ApsPlate.ApsPlatePlan; -import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomOrderDetail; -import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomStockDetail; +import com.aps.core.domain.ApsBom; +import com.aps.core.domain.ApsMaterialStorageManagement; +import com.aps.core.domain.ApsPlate.*; +import com.aps.core.domain.ApsStandardProcessRouteLine; import com.aps.core.mapper.*; -import com.aps.core.service.*; import com.aps.core.service.ApsPlate.*; +import com.aps.core.service.IApsBomService; +import com.aps.core.service.IApsMaterialStorageManagementService; +import com.aps.core.service.IApsStandardProcessRouteLineService; import com.aps.system.api.domain.SysDictData; import jakarta.annotation.Resource; -import com.aps.core.domain.ApsPlate.ApsPlateStandardRequire; -import com.aps.core.mapper.ApsPlateStandardRequireMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; /** * 閽i噾宸ュ崟鏍囧噯闇�姹係ervice涓氬姟灞傚鐞� @@ -39,29 +37,17 @@ private ApsPlateStandardRequireMapper apsPlateStandardRequireMapper; @Resource - private ApsPlateStandardRequireBatchMapper requireBatchMapper; - - @Resource ApsPlatePlanMapper platePlanMapper; @Resource - ApsBomHeaderMapper bomHeaderMapper; - @Resource IApsBomService bomLineService; - - @Resource - ApsMaterialStorageManagementMapper itemStorageMapper; @Resource ApsPlateStandardRequireBomStockDetailMapper plateBomStockDetailMapper; @Resource IApsPlateStandardRequireBomStockDetailService bomStockDetailService; - @Resource - ApsStandardProcessRouteHeaderMapper standardProcessRouteHeaderMapper; - @Resource - ApsStandardProcessRouteLineMapper ApsStandardProcessRouteLineMapper; @Resource ApsPlateStandardRequireBomOrderDetailMapper plateBomOrderDetailMapper; @@ -76,10 +62,11 @@ IApsStandardProcessRouteLineService routeLineService; @Resource - IApsPlateStandardRequireBatchService requireBatchService; + IApsPlateStandardRequireErrorService requireErrorService; @Resource private IApsMaterialStorageManagementService storageManagementService; - + @Resource + IApsPlateStandardRequireBatchService requireBatchService; /** * 鏌ヨ閽i噾宸ュ崟鏍囧噯闇�姹� * @@ -167,9 +154,7 @@ @Transactional @Override public void generatorPlan(String batchNum){ - - /*鍒濆鍖栨暟鎹�*/ - requireBatchService.initRequireBatch(); + requireBatchService.initRequireBatch(batchNum); /*瀹氫箟宸ュ巶涓哄崡閫� */ String plantCode="FORTUNA"; /*鑾峰彇閽i噾涓诲崟淇℃伅*/ @@ -296,7 +281,10 @@ if (itemStorageOpt.isPresent()) { ApsMaterialStorageManagement itemStorage=itemStorageOpt.get(); - BigDecimal remainderStock =itemStorage.getRemainderStock(); + BigDecimal remainderStock =BigDecimal.ZERO; + if(null!=itemStorage.getRemainderStock()){ + remainderStock = itemStorage.getRemainderStock(); + } /*璁$畻鍑�闇�姹� 榛樿=闇�姹傛暟閲�*/ if (remainderStock.compareTo(BigDecimal.ZERO) == 0) { require.setNetRequirement(require.getBomUseAmount()); diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java index b9b2ac3..0185f67 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java @@ -12,6 +12,7 @@ import com.aps.core.domain.ApsStandardProcessRouteHeader; import com.aps.core.mapper.ApsPlateStandardRequireErrorMapper; import com.aps.core.mapper.ApsStandardProcessRouteHeaderMapper; +import com.aps.core.service.ApsPlate.IApsPlateStandardRequireErrorService; import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -34,7 +35,7 @@ @Resource ApsStandardProcessRouteHeaderMapper standardProcessRouteHeaderMapper; @Resource - ApsPlateStandardRequireErrorMapper requireErrorMapper; + IApsPlateStandardRequireErrorService requireErrorService; @Resource private RedisTemplate redisTemplate; @@ -141,7 +142,7 @@ ret.setRouteTime(totalRouteTime); ret.setRouteId(routeHeader.getRouteId()); }else { - saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); + requireErrorService.saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); } // 杩斿洖鎬诲伐鏃� return ret; @@ -170,7 +171,7 @@ ret.setRouteTime(totalRouteTime.multiply(netRequirement)); return ret; } else { - saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); + requireErrorService.saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); /*// 鏌ヨ鏍囧噯宸ヨ壓璺嚎澶撮儴淇℃伅 Optional<ApsStandardProcessRouteHeader> firstProcessRoute = standardProcessRouteHeaderMapper.queryStandardProcessRouteHeaderByPlantAndItemCode(plant, itemCode).stream().findFirst(); if (firstProcessRoute.isPresent()) { @@ -193,19 +194,4 @@ } } - private void saveRequireError(ApsPlateStandardRequire require,String message) { - ApsPlateStandardRequireError data = ApsPlateStandardRequireError.builder() - .id(IdUtil.getSnowflakeNextId()) - .requireId(require.getId()) - .batchNumber(require.getBatchNumber()) - .docNum(require.getDocNum()) - .itemNum(require.getBomLineCode()) - .orgCode(require.getOrgCode()) - .message(message) - .delFlag("0") - .build(); - data.setCreateBy(SecurityUtils.getUsername()); - data.setCreateTime(DateUtils.getNowDate()); - requireErrorMapper.insertApsPlateStandardRequireError(data); - } } diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml index aaa2a8e..174bc86 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml @@ -109,13 +109,10 @@ LEFT JOIN aps_bom_line b on a.bom_header_id=b.bom_header_id LEFT JOIN aps_material_management d on b.item_code=d.item_number LEFT JOIN aps_material_management c on a.item_code=c.item_number - <where> - <if test="orgCode != null and orgCode != ''"> - and a.org_code=#{orgCode} and d.applicable_factories=#{orgCode} - </if> - and d.material_type='鍒堕�犱欢' - and c.material_type='鍒堕�犱欢' - </where> + where d.material_type='鍒堕�犱欢' and c.material_type='鍒堕�犱欢' + <if test="orgCode != null and orgCode != ''"> + and a.org_code=#{orgCode} and d.applicable_factories=#{orgCode} + </if> ORDER BY mainItemCode </select> </mapper> \ No newline at end of file diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml index a7f7adc..2db812a 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml @@ -173,10 +173,13 @@ production_quantity, standard_time, process_total_time, + process_plan_start_day, process_plan_end_day, + order_plan_end_day, batch_number, create_by, - del_flag + del_flag, + warning ) values <foreach collection="list" item="item" index="index" separator=","> @@ -190,10 +193,13 @@ #{item.productionQuantity}, #{item.standardTime}, #{item.processTotalTime}, + #{item.processPlanStartDay}, #{item.processPlanEndDay}, + #{item.orderPlanEndDay}, #{item.batchNumber}, #{item.createBy}, - '0' + '0', + #{item.warning} ) </foreach> </insert> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomOrderDetailMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomOrderDetailMapper.xml index 69ff69f..306615d 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomOrderDetailMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomOrderDetailMapper.xml @@ -127,7 +127,7 @@ </delete> <update id="deleteLastPatch" parameterType="String"> - update aps_plate_standard_require_bom_order_detail set del_flag = '1' where batch_number = #{batchNumber} + update aps_plate_standard_require_bom_order_detail set del_flag = '1' where del_flag = '0' and batch_number != #{batchNumber} </update> <insert id="batchInsert" parameterType="com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomOrderDetail"> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomStockDetailMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomStockDetailMapper.xml index 4ede8e3..8a6bfc3 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomStockDetailMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomStockDetailMapper.xml @@ -120,7 +120,9 @@ </delete> <update id="deleteLastPatch" parameterType="String"> - update aps_plate_standard_require_bom_stock_detail set del_flag = '1' where batch_number = #{batchNumber} + update aps_plate_standard_require_bom_stock_detail + set del_flag = '1' + where del_flag = '0' and batch_number != #{batchNumber} </update> <insert id="batchInsert" parameterType="com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomStockDetail"> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireErrorMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireErrorMapper.xml index bba08bb..5ab7280 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireErrorMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireErrorMapper.xml @@ -103,6 +103,8 @@ </foreach> </delete> <update id="deleteLastPatch" parameterType="String"> - update aps_plate_standard_require_error set del_flag = '1' where batch_number = #{batchNumber} + update aps_plate_standard_require_error + set del_flag = '1' + where del_flag = '0' and batch_number != #{batchNumber} </update> </mapper> \ No newline at end of file diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireMapper.xml index 1e16f2c..b8d1c57 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireMapper.xml @@ -226,6 +226,6 @@ </foreach> </insert> <update id="deleteLastPatch" parameterType="String"> - update aps_plate_standard_require set del_flag = '1' where batch_number = #{batchNumber} + update aps_plate_standard_require set del_flag = '1' where del_flag = '0' and batch_number != #{batchNumber} </update> </mapper> \ No newline at end of file -- Gitblit v1.9.3