From fed6f56842fea1a7e17dbfec12a30cb332c566b0 Mon Sep 17 00:00:00 2001
From: huangjiayang <5265313@qq.com>
Date: 星期四, 08 五月 2025 16:16:11 +0800
Subject: [PATCH] 【UPDATE】1.增加同步BOM数据定时任务功能 2.将BOM数据存储到Redis中

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 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..f1edfa2 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,16 @@
 package com.aps.core.service.impl;
 
-import java.util.List;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 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.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.List;
 
 /**
  * BOM Header 鏁版嵁绠$悊Service涓氬姟灞傚鐞�
@@ -19,6 +23,9 @@
 {
     @Autowired
     private ApsBomHeaderMapper apsBomHeaderMapper;
+
+    @Autowired
+    public RedisTemplate redisTemplate;
 
     /**
      * 鏌ヨBOM Header 鏁版嵁绠$悊
@@ -93,4 +100,36 @@
     {
         return apsBomHeaderMapper.deleteApsBomHeaderById(id);
     }
+
+    /**
+     * 璁剧疆BOM鏁版嵁鍒癛edis
+     * @return
+     */
+    @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);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+        return true;
+    }
 }

--
Gitblit v1.9.3