From 93e554de49b2b87c337df71ea9ece51dd4e1d31d Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期四, 22 五月 2025 15:31:24 +0800 Subject: [PATCH] 更新job计时功能,显示为分秒 --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java | 102 ++++++++++++++++++++++++++++----------------------- 1 files changed, 56 insertions(+), 46 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 587aa42..0185f67 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,21 +1,21 @@ 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; 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 com.aps.core.service.ApsPlate.IApsPlateStandardRequireErrorService; 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; @@ -35,7 +35,10 @@ @Resource ApsStandardProcessRouteHeaderMapper standardProcessRouteHeaderMapper; @Resource - ApsPlateStandardRequireErrorMapper requireErrorMapper; + IApsPlateStandardRequireErrorService requireErrorService; + @Resource + private RedisTemplate redisTemplate; + /** * 鏌ヨ鏍囧噯宸ヨ壓璺嚎Line * @@ -116,8 +119,6 @@ */ @Override public ApsStandardProcessRouteLine getRouteLineTotalTime(ApsPlateStandardRequire require) { - // 瀹氫箟鐙崰鐢熶骇妯″紡甯搁噺 - String productivityModel_monopolize = "鐙崰"; // 鍒濆鍖栨�诲伐鏃朵负0 BigDecimal totalRouteTime = BigDecimal.ZERO; //宸ュ巶 @@ -128,7 +129,6 @@ 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()) { @@ -136,52 +136,62 @@ // 鏋勫缓宸ヨ壓璺嚎琛屽弬鏁板璞� 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 = apsStandardProcessRouteLines.stream() - .map(ApsStandardProcessRouteLine::getRouteTime) - .reduce(BigDecimal.ZERO, BigDecimal::add); - } - + BigDecimal standardTime = apsStandardProcessRouteLineMapper.selectTotalStandTime(routeHeader.getRouteId()).getStandardTime(); + totalRouteTime =standardTime.multiply(require.getNetRequirement()); ret.setRouteTime(totalRouteTime); ret.setRouteId(routeHeader.getRouteId()); }else { - saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); + requireErrorService.saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); } // 杩斿洖鎬诲伐鏃� return ret; } + @Override + public ApsStandardProcessRouteLine getRouteHeaderRouteTime(ApsPlateStandardRequire require){ - private void saveRequireError(ApsPlateStandardRequire require,String message) { - ApsPlateStandardRequireError data = ApsPlateStandardRequireError.builder() - .id(IdUtil.getSnowflakeNextId()) - .requireId(require.getId()) - .batchNumber(require.getBatchNumber()) - .docNum(require.getDocNum()) - .itemNum(require.getBomLineCode()) - .orgCode(require.getOrgCode()) - .message(message) - .delFlag("0") - .build(); - data.setCreateBy(SecurityUtils.getUsername()); - data.setCreateTime(DateUtils.getNowDate()); - requireErrorMapper.insertApsPlateStandardRequireError(data); + //宸ュ巶 + 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 { + requireErrorService.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; + } } + } -- Gitblit v1.9.3