From 728621ba2f24bb9f41c7f2cd1c6cdc990247928c Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期四, 15 五月 2025 16:58:36 +0800
Subject: [PATCH] 优化同步WorkOrder:先全部删除,再进行同步
---
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java | 41 +++++++++++++++++++++++++++++++++++++----
1 files changed, 37 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..7d6eee0 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,19 @@
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.stream.Collectors;
/**
* BOM Header 鏁版嵁绠$悊Service涓氬姟灞傚鐞�
@@ -19,6 +26,9 @@
{
@Autowired
private ApsBomHeaderMapper apsBomHeaderMapper;
+
+ @Autowired
+ public RedisTemplate redisTemplate;
/**
* 鏌ヨBOM Header 鏁版嵁绠$悊
@@ -93,4 +103,27 @@
{
return apsBomHeaderMapper.deleteApsBomHeaderById(id);
}
+
+ /**
+ * 璁剧疆BOM鏁版嵁鍒癛edis
+ * @return
+ */
+ @Override
+ public boolean setBomDataToRedis(String orgCode) {
+ try {
+ 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;
+ }
}
--
Gitblit v1.9.3