From 35df7283579ab155e32ecf3299c52fc9b7e5bdef Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期五, 09 五月 2025 17:17:23 +0800 Subject: [PATCH] 钣金需求匹配-完善工时计算 --- aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml | 2 aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml | 7 +++ aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java | 5 -- aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml | 4 +- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java | 28 +------------- aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteLineMapper.java | 2 + aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java | 3 + aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java | 14 +++++++ 8 files changed, 31 insertions(+), 34 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java index cd8d9a7..2622075 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java @@ -8,11 +8,14 @@ import com.aps.common.log.enums.BusinessType; import com.aps.common.security.annotation.RequiresPermissions; import com.aps.core.domain.ApsStandardProcessRouteLine; +import com.aps.core.mapper.ApsStandardProcessRouteLineMapper; import com.aps.core.service.IApsStandardProcessRouteLineService; +import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.math.BigDecimal; import java.util.List; /** @@ -30,6 +33,8 @@ @Autowired private IApsStandardProcessRouteLineService apsStandardProcessRouteLineService; + @Resource + private ApsStandardProcessRouteLineMapper mapper; /** * 鏌ヨ鏍囧噯宸ヨ壓璺嚎Line鍒楄〃 */ @@ -97,4 +102,13 @@ { return toAjax(apsStandardProcessRouteLineService.deleteApsStandardProcessRouteLineByIds(ids)); } + + + + @PostMapping("/getStandardTime") + public AjaxResult getStandardTime(@RequestBody ApsStandardProcessRouteLine apsStandardProcessRouteLine) + { + BigDecimal standardTime = mapper.selectTotalStandTime(apsStandardProcessRouteLine.getRouteId()).getStandardTime(); + return toAjax(standardTime.intValue()); + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteLineMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteLineMapper.java index 6fb2a70..a06fdae 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteLineMapper.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteLineMapper.java @@ -61,4 +61,6 @@ * @return 缁撴灉 */ public int deleteApsStandardProcessRouteLineByIds(Long[] ids); + + ApsStandardProcessRouteLine selectTotalStandTime(String routeHeaderId); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java index af2b106..f49178f 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java @@ -166,7 +166,7 @@ /*瀹氫箟宸ュ巶涓哄崡閫� */ String plantCode="FORTUNA"; /*瀹氫箟涓诲崟绫诲瀷涓洪挘閲戜富鍗�*/ - String mainOrderType = "0"; + String mainOrderType = "main"; /*鐢熸垚鏂版壒娆″彿*/ String batchNum= requireBatchService.getNewBatchNumber(); /*鑾峰彇閽i噾涓诲崟淇℃伅*/ @@ -353,9 +353,6 @@ private void matchRequireAndSubPlan(ApsPlateStandardRequire require) { BigDecimal netRequirement = require.getNetRequirement(); require.setMatchMode("宸ュ崟鍖归厤"); - if(require.getBomLineCode().equals("W0202-100028")){ - System.out.println("W0202-100028"); - } if (netRequirement.compareTo(BigDecimal.ZERO) > 0) { ApsPlatePlan platePlan = apsPlatePlanMapper.selectUnMatchPlateSubPlan(require.getOrgCode(), require.getBomLineCode()); /*瀛愪欢宸ュ崟鐨勬湭鍖归厤鏁伴噺 浣滀负褰撳墠鐨勫簱瀛�*/ 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..d0d3b21 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 @@ -116,8 +116,6 @@ */ @Override public ApsStandardProcessRouteLine getRouteLineTotalTime(ApsPlateStandardRequire require) { - // 瀹氫箟鐙崰鐢熶骇妯″紡甯搁噺 - String productivityModel_monopolize = "鐙崰"; // 鍒濆鍖栨�诲伐鏃朵负0 BigDecimal totalRouteTime = BigDecimal.ZERO; //宸ュ巶 @@ -128,7 +126,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,30 +133,9 @@ // 鏋勫缓宸ヨ壓璺嚎琛屽弬鏁板璞� 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 { diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml index 623bc32..b53581e 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml @@ -285,7 +285,7 @@ select id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity, unmatched_quantity,version from aps_plate_plan - where del_flag='0' and professional_affiliation !='0' and unmatched_quantity > 0 + where del_flag='0' and professional_affiliation ='sub' and unmatched_quantity > 0 <if test="plant != null and plant !='' "> and plant = #{plant}</if> <if test="itemNumber != null and itemNumber !='' "> and item_number = #{itemNumber}</if> order by document_number asc,id asc diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml index e609ec1..1965e12 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml @@ -122,4 +122,11 @@ #{id} </foreach> </delete> + + <select id="selectTotalStandTime" parameterType="String" resultMap="ApsStandardProcessRouteLineResult"> + select sum(standard_time) as standard_time + from aps_standard_process_route_line + where route_id = #{routeId} + ; + </select> </mapper> \ No newline at end of file diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java index fc2078b..c45b643 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java @@ -159,7 +159,7 @@ param.setDocState(Arrays.asList(0,1,2,4)); param.setBeginDate(yesterdayMidnight.format(formatter)); param.setEndDate(today.format(formatter)); - param.setPageSize(100); + param.setPageSize(500); while (continueFlag){ param.setPageIndex(currentPage); continueFlag= batchSaveByPager(param); @@ -303,6 +303,7 @@ order.setProcessStatus("0"); order.setOpStatus(jsonObject.getString("OpStatus")); order.setNextOpName(jsonObject.getString("NextOpName")); + order.setLowOrderCode(jsonObject.getString("LowLevelCode")); jobs.add(order); orderIds.add(order.getOrderId()); } catch (Exception e) { diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml index 6edc249..2da09bb 100644 --- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml +++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml @@ -417,8 +417,8 @@ op_num,work_center,dept, start_date,complete_date,next_dept, is_hold_release,is_out_source,org_code, - order_id,now(),'0',org_code,doc_status,std_op,op_status,next_op_name, - case when low_order_code='0' then 'main' else 'sub' end as professional_affiliation, + cast(order_id as bigint) as id,now(),'0',org_code,doc_status,std_op,op_status,next_op_name, + (case when low_order_code='0' then 'main' else 'sub' end ) as professional_affiliation, order_create_time from aps_work_order_job where ( doc_status in (0,1,2,4) and is_hold_release='0' -- Gitblit v1.9.3