From dbcc9f8992c97b84aa6ae0a381c807ba6239ae2c Mon Sep 17 00:00:00 2001
From: huangjiayang <5265313@qq.com>
Date: 星期四, 15 五月 2025 16:47:08 +0800
Subject: [PATCH] 【UPDATE】刷新BOM、库存、工艺路线数据缓存接口增加刷新钣金子单数据

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java |   54 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 31 insertions(+), 23 deletions(-)

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 47d6e6c..20bdf34 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
@@ -11,10 +11,8 @@
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.math.BigDecimal;
+import java.util.*;
 
 /**
  * 鐗╂枡搴撳瓨绠$悊Service涓氬姟灞傚鐞�
@@ -105,7 +103,8 @@
     /**
      * 鑾峰彇鐗╂枡搴撳瓨淇℃伅
      * */
-    private Optional<ApsMaterialStorageManagement> getItemStorage(String plant, String itemNumber) {
+    @Override
+    public Optional<ApsMaterialStorageManagement> getItemStorage(String plant, String itemNumber) {
         ApsMaterialStorageManagement storageParam = new ApsMaterialStorageManagement();
         storageParam.setItemNumber(itemNumber);
         storageParam.setApplicableFactories(plant);
@@ -124,30 +123,23 @@
      * @return ApsMaterialStorageManagement 杩斿洖鑾峰彇鍒扮殑搴撳瓨淇℃伅瀵硅薄锛屽鏋滄病鏈夋壘鍒帮紝鍒欒繑鍥瀗ull
      */
     @Override
-    public ApsMaterialStorageManagement getRdsStorage(String plant, String itemCode){
-        ApsMaterialStorageManagement ams=null;
+    public Optional<ApsMaterialStorageManagement> getRdsStorage(String plant, String itemCode){
         // 灏濊瘯浠嶳edis涓幏鍙栧簱瀛樹俊鎭�
-        JSONObject materialStorage = (JSONObject)redisTemplate.opsForValue().get("MaterialStorage:Material_"+plant+"_"+itemCode);
+        String key = "MaterialStorage:Material_" + plant + "_" + itemCode;
+        JSONObject materialStorage = (JSONObject)redisTemplate.opsForValue().get(key);
         if(materialStorage!=null){
             // 濡傛灉Redis涓湁缂撳瓨锛屽皢鍏惰浆鎹负ApsMaterialStorageManagement瀵硅薄骞惰繑鍥�
-            ams = materialStorage.toJavaObject(ApsMaterialStorageManagement.class);
-            return ams;
+            ApsMaterialStorageManagement ams= materialStorage.toJavaObject(ApsMaterialStorageManagement.class);
+            Optional<ApsMaterialStorageManagement>   optional =  Optional.ofNullable(ams);
+            return optional  ;
         }else {
-            // 濡傛灉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)));
-            }
+            Optional<ApsMaterialStorageManagement> first = getItemStorage( plant, itemCode);
+            first.ifPresent(apsMaterialStorageManagement ->
+                    redisTemplate.opsForValue().set(key, JSONObject.parseObject(JSON.toJSONString(apsMaterialStorageManagement)))
+            );
+            return first;
         }
-        // 杩斿洖搴撳瓨淇℃伅瀵硅薄
-        return ams;
     }
 
     /**
@@ -158,6 +150,10 @@
     @Override
     public boolean setStorageDataToRedis(String orgCode) {
         try {
+            Set<String> keys = redisTemplate.keys("MaterialStorage:Material_*");
+            if (keys != null && !keys.isEmpty()) {
+                redisTemplate.delete(keys);
+            }
             ApsMaterialStorageManagement temp = new ApsMaterialStorageManagement();
             if(!StringUtils.isEmpty(orgCode)){
                 temp.setApplicableFactories(orgCode);
@@ -183,4 +179,16 @@
 //        }
         return true;
     }
+
+    /**
+     * 鏇存柊搴撳瓨淇℃伅
+     * */
+    public int updateMaterialStorageByVersion(String id, BigDecimal remainderStock, Integer version) {
+        return apsMaterialStorageManagementMapper.updateMaterialStorageByVersion(id, remainderStock, version);
+    }
+
+    @Override
+    public int  updateRemainderStock(String id, BigDecimal remainderStock, Integer version){
+        return apsMaterialStorageManagementMapper.updateRemainderStock(id, remainderStock, version);
+    }
 }

--
Gitblit v1.9.3