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/ApsStandardProcessRouteLineServiceImpl.java | 91 ++++++++++++++++++++++++++++++---------------
1 files changed, 61 insertions(+), 30 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 d49ca13..b9b2ac3 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,19 +1,20 @@
package com.aps.core.service.impl;
import java.math.BigDecimal;
-import java.util.Hashtable;
import java.util.List;
import java.util.Optional;
+import cn.hutool.core.util.IdUtil;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.security.utils.SecurityUtils;
-import com.aps.core.domain.ApsPlateStandardRequire;
-import com.aps.core.domain.ApsPlateStandardRequireError;
+import com.aps.core.domain.ApsPlate.ApsPlateStandardRequire;
+import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireError;
import com.aps.core.domain.ApsStandardProcessRouteHeader;
import com.aps.core.mapper.ApsPlateStandardRequireErrorMapper;
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;
@@ -34,6 +35,9 @@
ApsStandardProcessRouteHeaderMapper standardProcessRouteHeaderMapper;
@Resource
ApsPlateStandardRequireErrorMapper requireErrorMapper;
+ @Resource
+ private RedisTemplate redisTemplate;
+
/**
* 鏌ヨ鏍囧噯宸ヨ壓璺嚎Line
*
@@ -114,8 +118,6 @@
*/
@Override
public ApsStandardProcessRouteLine getRouteLineTotalTime(ApsPlateStandardRequire require) {
- // 瀹氫箟鐙崰鐢熶骇妯″紡甯搁噺
- String productivityModel_monopolize = "鐙崰";
// 鍒濆鍖栨�诲伐鏃朵负0
BigDecimal totalRouteTime = BigDecimal.ZERO;
//宸ュ巶
@@ -123,37 +125,19 @@
// 鐗╂枡鍙�
String itemNumber=require.getBomLineCode();
long routId=0L;
- ApsStandardProcessRouteLine ret=ApsStandardProcessRouteLine.builder()
- .routeId(String.valueOf(routId))
- .routeTime(BigDecimal.ZERO)
- .build();
+ ApsStandardProcessRouteLine ret=new ApsStandardProcessRouteLine();
+ ret.setRouteId(String.valueOf(routId));
+ ret.setRouteTime(BigDecimal.ZERO);
// 鏌ヨ鏍囧噯宸ヨ壓璺嚎澶撮儴淇℃伅
Optional<ApsStandardProcessRouteHeader> firstProcessRoute = standardProcessRouteHeaderMapper.queryStandardProcessRouteHeaderByPlantAndItemCode(plant, itemNumber).stream().findFirst();
if (firstProcessRoute.isPresent()) {
ApsStandardProcessRouteHeader routeHeader = firstProcessRoute.get();
// 鏋勫缓宸ヨ壓璺嚎琛屽弬鏁板璞�
- ApsStandardProcessRouteLine routeLineParam = ApsStandardProcessRouteLine.builder()
- .routeId(routeHeader.getRouteId())
- .build();
+ ApsStandardProcessRouteLine routeLineParam =new ApsStandardProcessRouteLine();
+ routeLineParam.setRouteId(routeHeader.getRouteId());
// 鏌ヨ鏍囧噯宸ヨ壓璺嚎琛屼俊鎭�
- List<ApsStandardProcessRouteLine> apsStandardProcessRouteLines = apsStandardProcessRouteLineMapper.selectApsStandardProcessRouteLineList(routeLineParam);
- /*宸ヨ壓璺嚎Line 鎬诲伐鏃�*/
-
- if(apsStandardProcessRouteLines.isEmpty()){
- saveRequireError(require,"宸ュ簭涓嶅瓨鍦�");
- }else {
- // 閬嶅巻姣忎釜宸ヨ壓璺嚎琛�
- apsStandardProcessRouteLines.forEach(line -> {
- // 榛樿灏嗚璁′骇鑳借缃负璺嚎鏃堕棿
- line.setRouteTime(line.getDesignCapacity());
- // 濡傛灉鐢熶骇妯″紡涓虹嫭鍗狅紝鍒欒矾绾挎椂闂翠负璁捐浜ц兘涔樹互鍑�闇�姹傞噺
- if (line.getProductivityModel().equals(productivityModel_monopolize)) {
- line.setRouteTime(line.getDesignCapacity().multiply(require.getNetRequirement()));
- }
- // 绱姞璺嚎鏃堕棿鍒版�诲伐鏃朵腑
- totalRouteTime.add(line.getRouteTime());
- });
- }
+ BigDecimal standardTime = apsStandardProcessRouteLineMapper.selectTotalStandTime(routeHeader.getRouteId()).getStandardTime();
+ totalRouteTime =standardTime.multiply(require.getNetRequirement());
ret.setRouteTime(totalRouteTime);
ret.setRouteId(routeHeader.getRouteId());
}else {
@@ -162,9 +146,56 @@
// 杩斿洖鎬诲伐鏃�
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.setRouteId("0");
+ ret.setRouteTime(totalRouteTime.multiply(netRequirement));
+ return ret;
+ } else {
+ saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�");
+ /*// 鏌ヨ鏍囧噯宸ヨ壓璺嚎澶撮儴淇℃伅
+ 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);
+ }else {
+ saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�");
+ }*/
+ return ret;
+ }
+ }
private void saveRequireError(ApsPlateStandardRequire require,String message) {
ApsPlateStandardRequireError data = ApsPlateStandardRequireError.builder()
+ .id(IdUtil.getSnowflakeNextId())
.requireId(require.getId())
.batchNumber(require.getBatchNumber())
.docNum(require.getDocNum())
--
Gitblit v1.9.3