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