From 7af9ce0cde405ff7a48012b03bedf2884c09ab15 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期一, 12 五月 2025 15:48:09 +0800 Subject: [PATCH] 钣金计划:从Redis中读取库存信息 --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java | 15 +++++-- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java | 45 ++++++++++++++++------ aps-modules/aps-core/src/main/java/com/aps/core/service/IApsMaterialStorageManagementService.java | 2 + 3 files changed, 45 insertions(+), 17 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsMaterialStorageManagementService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsMaterialStorageManagementService.java index 8cb8ed1..b851267 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsMaterialStorageManagementService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsMaterialStorageManagementService.java @@ -58,4 +58,6 @@ * @return 缁撴灉 */ public int deleteApsMaterialStorageManagementById(String id); + + ApsMaterialStorageManagement getRdsStorage(String plant, String itemCode); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java index 01eb4c1..ad1ceee 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java @@ -1,8 +1,9 @@ package com.aps.core.service.impl; import java.util.List; +import java.util.Optional; -import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.aps.common.core.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -99,20 +100,40 @@ return apsMaterialStorageManagementMapper.deleteApsMaterialStorageManagementById(id); } - public ApsMaterialStorageManagement getRdsStorage(String plant,String itemCode){ - + /** + * 浠嶳edis涓幏鍙栧簱瀛樹俊鎭� + * + * 姝ゆ柟娉曢鍏堝皾璇曚粠Redis涓幏鍙栨寚瀹氬伐鍘傚拰鐗╂枡浠g爜鐨勫簱瀛樹俊鎭鏋淩edis涓笉瀛樺湪鐩稿叧鏁版嵁锛� + * 鍒欎粠鏁版嵁搴撲腑鏌ヨ锛屽苟灏嗙粨鏋滅紦瀛樺埌Redis涓互鎻愰珮涓嬫鏌ヨ鐨勬晥鐜� + * + * @param plant 宸ュ巶浠g爜锛岀敤浜庢寚瀹氬簱瀛樹俊鎭墍灞炵殑宸ュ巶 + * @param itemCode 鐗╂枡浠g爜锛岀敤浜庢寚瀹氶渶瑕佹煡璇㈢殑鐗╂枡 + * @return ApsMaterialStorageManagement 杩斿洖鑾峰彇鍒扮殑搴撳瓨淇℃伅瀵硅薄锛屽鏋滄病鏈夋壘鍒帮紝鍒欒繑鍥瀗ull + */ + @Override + public ApsMaterialStorageManagement getRdsStorage(String plant, String itemCode){ + ApsMaterialStorageManagement ams=null; + // 灏濊瘯浠嶳edis涓幏鍙栧簱瀛樹俊鎭� JSONObject materialStorage = (JSONObject)redisTemplate.opsForValue().get("MaterialStorage:Material_"+plant+"_"+itemCode); if(materialStorage!=null){ - ApsMaterialStorageManagement apsMaterialStorageManagement = new ApsMaterialStorageManagement(); - apsMaterialStorageManagement.setId(materialStorage.getString("id")); - apsMaterialStorageManagement.setItemNumber(materialStorage.getString("itemNumber")); - apsMaterialStorageManagement.setRemainderStock(materialStorage.getBigDecimal("remainderStock")); - apsMaterialStorageManagement.setVersion(materialStorage.getInteger("version")); - - return apsMaterialStorageManagement; + // 濡傛灉Redis涓湁缂撳瓨锛屽皢鍏惰浆鎹负ApsMaterialStorageManagement瀵硅薄骞惰繑鍥� + ams = materialStorage.toJavaObject(ApsMaterialStorageManagement.class); + return ams; }else { - return null; + // 濡傛灉Redis涓病鏈夌紦瀛橈紝鍒涘缓鏌ヨ鍙傛暟瀵硅薄 + ApsMaterialStorageManagement storageParam = new ApsMaterialStorageManagement(); + storageParam.setItemNumber(itemCode); + storageParam.setApplicableFactories(plant); + // 浠庢暟鎹簱涓煡璇㈠簱瀛樹俊鎭� + Optional<ApsMaterialStorageManagement> first = apsMaterialStorageManagementMapper.selectApsMaterialStorageManagementList(storageParam).stream() + .findFirst(); + if (first.isPresent()){ + // 濡傛灉鏌ヨ鍒板簱瀛樹俊鎭紝灏嗗叾缂撳瓨鍒癛edis涓� + ams = first.get(); + redisTemplate.opsForValue().set("MaterialStorage:Material_"+plant+"_"+itemCode,JSONObject.parseObject(JSON.toJSONString(ams))); + } } - + // 杩斿洖搴撳瓨淇℃伅瀵硅薄 + return ams; } } 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 fe53f85..fffc657 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 @@ -73,7 +73,7 @@ @Resource IApsPlateStandardRequireBatchService requireBatchService; @Autowired - private ApsPlateStandardRequireBomStockDetailMapper apsPlateStandardRequireBomStockDetailMapper; + private IApsMaterialStorageManagementService storageManagementService; /** * 鏌ヨ閽i噾宸ュ崟鏍囧噯闇�姹� @@ -181,6 +181,8 @@ List<ApsPlateStandardRequire> requiresList=new ArrayList<>(); List<ApsPlateStandardRequireBomStockDetail> stockDetailsList=new ArrayList<>(); List<ApsPlateStandardRequireBomOrderDetail> orderDetailsList=new ArrayList<>(); + + getBomRequires(plantCode, "0","0",itemNumber,BigDecimal.ONE, batchNum, null, mainPlan, requiresList, 0L,stockDetailsList,orderDetailsList); // 鎵归噺鎻掑叆浠ユ彁楂樻�ц兘 @@ -226,6 +228,8 @@ * @param plan 璁″垝瀵硅薄 * @param allRequires 鎵�鏈夐渶姹傜殑鍒楄〃 * @param level 灞傜骇 + * @param stockDetailsList 搴撳瓨鍖归厤璁板綍 + * @param orderDetailsList 瀛愪欢宸ュ崟鍖归厤璁板綍 */ private void getBomRequires(String plant, String bomHeaderCode, String bomLineId,String itemCode,BigDecimal itemNum, String batchNum, Date upLevelStartDate, ApsPlatePlan plan, @@ -259,9 +263,7 @@ BigDecimal remainderStock = BigDecimal.ZERO; /*榛樿鍑�闇�姹備负BOM鐢ㄩ噺*/ require.setNetRequirement(require.getBomUseAmount()); - Optional<ApsMaterialStorageManagement> itemStorage = getItemStorage(plant, itemCode); - - + Optional<ApsMaterialStorageManagement> itemStorage = Optional.of(storageManagementService.getRdsStorage( plant, itemCode)); if (itemStorage.isPresent()) { ApsMaterialStorageManagement storage = itemStorage.get(); /*鍓╀綑搴撳瓨*/ @@ -284,7 +286,9 @@ require.setNetRequirement(BigDecimal.ZERO); } /*璁板綍搴撳瓨鍓╀綑鏁伴噺锛岃褰曞簱瀛樹娇鐢ㄨ褰�*/ - bomStockDetailService.saveStorageAndDetail(storage, plan, bomLineId,itemCode, batchNum, deductionAmount, afterStockAmount,require.getId(),stockDetailsList); + bomStockDetailService.saveStorageAndDetail(storage, plan, bomLineId,itemCode, batchNum, deductionAmount + , afterStockAmount,require.getId(),stockDetailsList + ); } } /*鏈尮閰嶆暟閲忥紝榛樿涓哄噣闇�姹�*/ @@ -365,6 +369,7 @@ .findFirst(); } + /** * 鑾峰彇閽i噾璁″垝 棰勭暀澶╂暟 * */ -- Gitblit v1.9.3