From 25cc1b887f5421353d94c5e6be0fca56b3f2e668 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期三, 21 五月 2025 16:29:24 +0800
Subject: [PATCH] 优化Job
---
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java | 35 +++++++++++++++++------------------
1 files changed, 17 insertions(+), 18 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 f1edfa2..e5ab958 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,8 +1,8 @@
package com.aps.core.service.impl;
import com.alibaba.fastjson2.JSONArray;
-import com.alibaba.fastjson2.JSONObject;
import com.aps.common.core.utils.DateUtils;
+import com.aps.core.domain.ApsBom;
import com.aps.core.domain.ApsBomHeader;
import com.aps.core.mapper.ApsBomHeaderMapper;
import com.aps.core.service.IApsBomHeaderService;
@@ -10,7 +10,11 @@
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涓氬姟灞傚鐞�
@@ -108,24 +112,19 @@
@Override
public boolean setBomDataToRedis(String orgCode) {
try {
- List<JSONObject> bomRedisData = apsBomHeaderMapper.selectBomRedisData(orgCode);
- String nowMainItemCode = "";
- JSONArray bomLine = new JSONArray();
- for (int i=0,size=bomRedisData.size();i<size;i++) {
- JSONObject jsonObject = bomRedisData.get(i);
- if("".equals(nowMainItemCode)){
- nowMainItemCode = jsonObject.getString("mainitemcode");
- }
- if(!nowMainItemCode.equals(jsonObject.getString("mainitemcode"))){
- redisTemplate.opsForValue().set("BOM:BOM_"+orgCode+"_"+nowMainItemCode, bomLine);
- bomLine = new JSONArray();
- }
- bomLine.add(jsonObject);
- nowMainItemCode = jsonObject.getString("mainitemcode");
- if(i==size-1){
- redisTemplate.opsForValue().set("BOM:BOM_"+orgCode+"_"+nowMainItemCode, bomLine);
- }
+ 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;
--
Gitblit v1.9.3