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