From a9f55fb1ab24f43fee70b16e1a8c58a33fc59fa6 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期二, 13 五月 2025 18:12:14 +0800
Subject: [PATCH] 钣金工单计划管理:新增 查看上下阶需求接口

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java |   70 +++++++++++++++++++++++++++++++++-
 1 files changed, 67 insertions(+), 3 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 ad1ceee..79015ad 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,17 +1,24 @@
 package com.aps.core.service.impl;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Optional;
 
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.aps.common.core.utils.DateUtils;
+import com.aps.common.core.utils.StringUtils;
+import com.aps.core.domain.ApsMaterialStorageManagement;
+import com.aps.core.mapper.ApsMaterialStorageManagementMapper;
+import com.aps.core.service.IApsMaterialStorageManagementService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
-import com.aps.core.mapper.ApsMaterialStorageManagementMapper;
-import com.aps.core.domain.ApsMaterialStorageManagement;
-import com.aps.core.service.IApsMaterialStorageManagementService;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 
 /**
  * 鐗╂枡搴撳瓨绠$悊Service涓氬姟灞傚鐞�
@@ -99,6 +106,17 @@
     {
         return apsMaterialStorageManagementMapper.deleteApsMaterialStorageManagementById(id);
     }
+    /**
+     * 鑾峰彇鐗╂枡搴撳瓨淇℃伅
+     * */
+    @Override
+    public Optional<ApsMaterialStorageManagement> getItemStorage(String plant, String itemNumber) {
+        ApsMaterialStorageManagement storageParam = new ApsMaterialStorageManagement();
+        storageParam.setItemNumber(itemNumber);
+        storageParam.setApplicableFactories(plant);
+        return apsMaterialStorageManagementMapper.selectApsMaterialStorageManagementList(storageParam).stream()
+                .findFirst();
+    }
 
     /**
      * 浠嶳edis涓幏鍙栧簱瀛樹俊鎭�
@@ -136,4 +154,50 @@
         // 杩斿洖搴撳瓨淇℃伅瀵硅薄
         return ams;
     }
+
+    /**
+     * 璁剧疆搴撳瓨鏁版嵁鍒皉edis
+     * @param orgCode
+     * @return
+     */
+    @Override
+    public boolean setStorageDataToRedis(String orgCode) {
+        try {
+            ApsMaterialStorageManagement temp = new ApsMaterialStorageManagement();
+            if(!StringUtils.isEmpty(orgCode)){
+                temp.setApplicableFactories(orgCode);
+            }
+            List<ApsMaterialStorageManagement> list = apsMaterialStorageManagementMapper.selectApsMaterialStorageManagementList(temp);
+            Map<String, Object> bulkData = new HashMap<>();
+            list.forEach(apsMaterialStorageManagement -> {
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("id", apsMaterialStorageManagement.getId());
+                jsonObject.put("itemNumber", apsMaterialStorageManagement.getItemNumber());
+                jsonObject.put("remainderStock", apsMaterialStorageManagement.getRemainderStock());
+                jsonObject.put("applicableFactories", apsMaterialStorageManagement.getApplicableFactories());
+                bulkData.put("MaterialStorage:Material_"+apsMaterialStorageManagement.getApplicableFactories()+"_"+apsMaterialStorageManagement.getItemNumber(), jsonObject);
+            });
+            redisTemplate.opsForValue().multiSet(bulkData);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+//        Set<String> keys = redisTemplate.keys("MaterialStorage:Material_*");
+//        if (keys != null && !keys.isEmpty()) {
+//            redisTemplate.delete(keys);
+//        }
+        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