From 2a64b537e8e3bce9ce030585a3da17d48379c0ad Mon Sep 17 00:00:00 2001
From: sfd <sun.sunshine@163.com>
Date: 星期一, 26 五月 2025 15:04:45 +0800
Subject: [PATCH] 修改json类型转换错误

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 46 insertions(+), 4 deletions(-)

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 7ec3fdd..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
@@ -1,12 +1,20 @@
 package com.aps.core.service.impl;
 
-import java.util.List;
+import com.alibaba.fastjson2.JSONArray;
 import com.aps.common.core.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.aps.core.mapper.ApsBomHeaderMapper;
+import com.aps.core.domain.ApsBom;
 import com.aps.core.domain.ApsBomHeader;
+import com.aps.core.mapper.ApsBomHeaderMapper;
 import com.aps.core.service.IApsBomHeaderService;
+import org.springframework.beans.factory.annotation.Autowired;
+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.Set;
+import java.util.stream.Collectors;
 
 /**
  * BOM Header 鏁版嵁绠$悊Service涓氬姟灞傚鐞�
@@ -19,6 +27,9 @@
 {
     @Autowired
     private ApsBomHeaderMapper apsBomHeaderMapper;
+
+    @Autowired
+    public RedisTemplate redisTemplate;
 
     /**
      * 鏌ヨBOM Header 鏁版嵁绠$悊
@@ -93,4 +104,35 @@
     {
         return apsBomHeaderMapper.deleteApsBomHeaderById(id);
     }
+
+    /**
+     * 璁剧疆BOM鏁版嵁鍒癛edis
+     * @return
+     */
+    @Override
+    public boolean setBomDataToRedis(String orgCode) {
+        try {
+            Set<String> keys = redisTemplate.keys("BOM:BOM_*");
+            if (keys != null && !keys.isEmpty()) {
+                redisTemplate.delete(keys);
+            }
+            List<ApsBom> bomRedisData = apsBomHeaderMapper.selectBomRedisData(orgCode);
+            Map<String, List<ApsBom>> groupedByMainItemCode = bomRedisData.stream().collect(Collectors.groupingBy(ApsBom::getMainItemCode));
+            Map<String, Object> bulkData = new HashMap<>();
+            for (Map.Entry<String, List<ApsBom>> entry : groupedByMainItemCode.entrySet()) {
+                String mainItemCode = entry.getKey();
+                JSONArray jsonArray = JSONArray.from(entry.getValue());
+                bulkData.put("BOM:BOM_" + orgCode + "_" + mainItemCode, jsonArray);
+            }
+            redisTemplate.opsForValue().multiSet(bulkData);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+        return true;
+    }
+    @Override
+    public Integer getBomKeys(String orgCode){
+        return redisTemplate.keys("BOM:BOM_"+orgCode+"*").size();
+    }
 }

--
Gitblit v1.9.3