From 13c1adb5494af143cf7b3d7ee60c6f4025a90040 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期四, 08 五月 2025 13:45:57 +0800 Subject: [PATCH] 钣金计划:完善工序总工时 计算方法 --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java | 86 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 85 insertions(+), 1 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 5ebab9c..5597f89 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,7 +1,18 @@ package com.aps.core.service.impl; +import java.math.BigDecimal; +import java.util.Hashtable; import java.util.List; +import java.util.Optional; + 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.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.stereotype.Service; import com.aps.core.mapper.ApsStandardProcessRouteLineMapper; @@ -19,7 +30,10 @@ { @Autowired private ApsStandardProcessRouteLineMapper apsStandardProcessRouteLineMapper; - + @Resource + ApsStandardProcessRouteHeaderMapper standardProcessRouteHeaderMapper; + @Resource + ApsPlateStandardRequireErrorMapper requireErrorMapper; /** * 鏌ヨ鏍囧噯宸ヨ壓璺嚎Line * @@ -93,4 +107,74 @@ { return apsStandardProcessRouteLineMapper.deleteApsStandardProcessRouteLineById(id); } + /** + * 鏍规嵁鏂欏彿 鏌ヨ宸ヨ壓璺嚎 鍙婂叾涓嬬殑宸ュ簭锛岃绠楀伐鑹鸿矾绾挎�诲伐鏃� + * @param require 闇�姹備俊鎭� + * @return 宸ヨ壓璺嚎鎬诲伐鏃� + */ + @Override + public ApsStandardProcessRouteLine getRouteLineTotalTime(ApsPlateStandardRequire require) { + // 瀹氫箟鐙崰鐢熶骇妯″紡甯搁噺 + String productivityModel_monopolize = "鐙崰"; + // 鍒濆鍖栨�诲伐鏃朵负0 + BigDecimal totalRouteTime = BigDecimal.ZERO; + //宸ュ巶 + String plant=require.getOrgCode(); + // 鐗╂枡鍙� + String itemNumber=require.getBomLineCode(); + long routId=0L; + ApsStandardProcessRouteLine ret=ApsStandardProcessRouteLine.builder() + .routeId(String.valueOf(routId)) + .routeTime(BigDecimal.ZERO) + .build(); + // 鏌ヨ鏍囧噯宸ヨ壓璺嚎澶撮儴淇℃伅 + Optional<ApsStandardProcessRouteHeader> firstProcessRoute = standardProcessRouteHeaderMapper.queryStandardProcessRouteHeaderByPlantAndItemCode(plant, itemNumber).stream().findFirst(); + if (firstProcessRoute.isPresent()) { + ApsStandardProcessRouteHeader routeHeader = firstProcessRoute.get(); + // 鏋勫缓宸ヨ壓璺嚎琛屽弬鏁板璞� + ApsStandardProcessRouteLine routeLineParam = ApsStandardProcessRouteLine.builder() + .routeId(routeHeader.getRouteId()) + .build(); + // 鏌ヨ鏍囧噯宸ヨ壓璺嚎琛屼俊鎭� + 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()); + }); + } + ret.setRouteTime(totalRouteTime); + ret.setRouteId(routeHeader.getRouteId()); + }else { + saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); + } + // 杩斿洖鎬诲伐鏃� + return ret; + } + + private void saveRequireError(ApsPlateStandardRequire require,String message) { + ApsPlateStandardRequireError data = ApsPlateStandardRequireError.builder() + .requireId(require.getRequireId()) + .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); + } } -- Gitblit v1.9.3