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