From 54b067a61093c5c8b5620dab0487c1231395dd78 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期一, 12 五月 2025 11:17:17 +0800
Subject: [PATCH] 优化从Redis 获取工艺路线和库存信息

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java
index d0d3b21..4d1b4ec 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java
@@ -1,10 +1,8 @@
 package com.aps.core.service.impl;
 
 import java.math.BigDecimal;
-import java.util.Hashtable;
 import java.util.List;
 import java.util.Optional;
-import java.util.stream.Collectors;
 
 import cn.hutool.core.util.IdUtil;
 import com.aps.common.core.utils.DateUtils;
@@ -16,6 +14,7 @@
 import com.aps.core.mapper.ApsStandardProcessRouteHeaderMapper;
 import jakarta.annotation.Resource;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import com.aps.core.mapper.ApsStandardProcessRouteLineMapper;
 import com.aps.core.domain.ApsStandardProcessRouteLine;
@@ -36,6 +35,9 @@
     ApsStandardProcessRouteHeaderMapper standardProcessRouteHeaderMapper;
     @Resource
     ApsPlateStandardRequireErrorMapper requireErrorMapper;
+    @Resource
+    private RedisTemplate redisTemplate;
+
     /**
      * 鏌ヨ鏍囧噯宸ヨ壓璺嚎Line
      * 
@@ -144,6 +146,48 @@
         // 杩斿洖鎬诲伐鏃�
         return ret;
     }
+    @Override
+    public ApsStandardProcessRouteLine getRouteHeaderRouteTime(ApsPlateStandardRequire require){
+
+        //宸ュ巶
+        String plant=require.getOrgCode();
+        // 鐗╂枡鍙�
+        String itemCode=require.getBomLineCode();
+        // 鍑�闇�姹�
+        BigDecimal netRequirement=  require.getNetRequirement();
+        //鏋勫缓Redis Key
+        String key = "ROUTE:ROUTE_"+plant+"_"+itemCode;
+
+        BigDecimal totalRouteTime = BigDecimal.ZERO;
+        ApsStandardProcessRouteLine ret=new ApsStandardProcessRouteLine();
+        ret.setRouteId("0");
+        ret.setRouteTime(totalRouteTime);
+
+        Object routeHeaderObj = redisTemplate.opsForValue().get(key);
+        if (routeHeaderObj != null) {
+            totalRouteTime = (BigDecimal) routeHeaderObj;
+            ret.setRouteTime(totalRouteTime);
+            return  ret;
+        } else {
+            // 鏌ヨ鏍囧噯宸ヨ壓璺嚎澶撮儴淇℃伅
+            Optional<ApsStandardProcessRouteHeader> firstProcessRoute = standardProcessRouteHeaderMapper.queryStandardProcessRouteHeaderByPlantAndItemCode(plant, itemCode).stream().findFirst();
+            if (firstProcessRoute.isPresent()) {
+                ApsStandardProcessRouteHeader routeHeader = firstProcessRoute.get();
+                // 鏋勫缓宸ヨ壓璺嚎琛屽弬鏁板璞�
+                ApsStandardProcessRouteLine routeLineParam =new ApsStandardProcessRouteLine();
+                routeLineParam.setRouteId(routeHeader.getRouteId());
+                // 鏌ヨ鏍囧噯宸ヨ壓璺嚎琛屼俊鎭�
+                BigDecimal standardTime = apsStandardProcessRouteLineMapper.selectTotalStandTime(routeHeader.getRouteId()).getStandardTime();
+                totalRouteTime =standardTime.multiply(netRequirement);
+                // 璁$畻杩斿洖鐨勬暟鎹�
+                ret.setRouteTime(totalRouteTime);
+                ret.setRouteId(routeHeader.getRouteId());
+                /*瀛樺偍鑷砇edis*/
+                redisTemplate.opsForValue().set(key, standardTime);
+            }
+            return ret;
+        }
+    }
 
     private void saveRequireError(ApsPlateStandardRequire require,String message) {
         ApsPlateStandardRequireError data = ApsPlateStandardRequireError.builder()

--
Gitblit v1.9.3