From a9f55fb1ab24f43fee70b16e1a8c58a33fc59fa6 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期二, 13 五月 2025 18:12:14 +0800 Subject: [PATCH] 钣金工单计划管理:新增 查看上下阶需求接口 --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java | 71 +++++++++++++++++++---------------- 1 files changed, 38 insertions(+), 33 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java index 53070f7..3a71bcf 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java @@ -21,6 +21,7 @@ import org.apache.poi.xssf.streaming.SXSSFRow; import org.apache.poi.xssf.streaming.SXSSFSheet; import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,12 +29,11 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.YearMonth; -import java.time.ZoneId; +import java.time.*; import java.time.format.DateTimeFormatter; import java.util.*; + +import static java.util.stream.Collectors.groupingBy; /** * 姘斾綋绠¤矾浜ц兘璐熻浇缁熻Service涓氬姟灞傚鐞� @@ -166,7 +166,7 @@ //宸ュ簭鍚嶇О apsGasPipingRouteStat.setProcessName(apsProcessRoute.getProcessName()); //宸ュ簭鍙� - apsGasPipingRouteStat.setRoadProcessNumber(apsProcessRoute.getProcessNumber()); + apsGasPipingRouteStat.setRoadProcessNumber( new BigDecimal(apsProcessRoute.getProcessNumber()) ); //鏍囧噯宸ユ椂 apsGasPipingRouteStat.setStandardTime(apsProcessRoute.getStandardTime()); //涓撲笟 @@ -303,37 +303,42 @@ formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); simpleDateFormat = new SimpleDateFormat("yyyy-MM"); } - apsGasPipingRouteStats = apsGasPipingRouteStatMapper.selectApsGasPipingRouteStatList(apsGasPipingRouteStat); + ApsGasPipingRouteStat queryStatParam = new ApsGasPipingRouteStat(); + BeanUtils.copyProperties(apsGasPipingRouteStat,queryStatParam); + queryStatParam.setMajor(""); + apsGasPipingRouteStats = apsGasPipingRouteStatMapper.selectApsGasPipingRouteStatList(queryStatParam); //鏍规嵁寮�宸ユ棩杩涜鍗囧簭鎺掑簭 apsGasPipingRouteStats.sort((a, b)->a.getProcessPlanStartDay().compareTo(b.getProcessPlanStartDay())); //宸ュ簭寮�宸ユ棩鏈� String planStartDate = ""; //缁熻鎵�鏈夊伐搴忓搴旂殑寮�宸ユ椂闂� for (ApsGasPipingRouteStat apsGasPipingRouteStatTemp : apsGasPipingRouteStats) { - planStartDate = simpleDateFormat.format(apsGasPipingRouteStatTemp.getProcessPlanStartDay()); - if("month".equals(apsGasPipingRouteStat.getSearchType())){ - planStartDate = planStartDate+"-01"; - } - ApsResourceDateStat apsResourceDateStat = new ApsResourceDateStat(); - apsResourceDateStat.setPlanDay(LocalDate.parse(planStartDate, formatter)); - apsResourceDateStat.setResourceName(apsGasPipingRouteStatTemp.getProcessName()); - //鏌ヨ姘旀煖绠¤矾浜ц兘瑙勫垝琛� - apsResourceDateStat.setDesignTimes(apsGasPipingPlanMap.get(apsGasPipingRouteStatTemp.getProcessName()+"-"+planStartDate.substring(0, 7))!=null?apsGasPipingPlanMap.get(apsGasPipingRouteStatTemp.getProcessName()+"-"+planStartDate.substring(0, 7)).getDayProduceAllNum():new BigDecimal(0)); - //鏌ヨ鏂欏彿宸ュ簭浜ц兘琛� - apsResourceDateStat.setRequireTimes(apsGasPipingRouteStatTemp.getProcessTotalTime()); - if(apsResourceDateStat.getDesignTimes().compareTo(BigDecimal.ZERO)>0){ - apsResourceDateStat.setCapacityLoad(apsResourceDateStat.getRequireTimes() - .divide(apsResourceDateStat.getDesignTimes(), 2, RoundingMode.HALF_UP) - .multiply(new BigDecimal(100))); - }else{ - apsResourceDateStat.setCapacityLoad(BigDecimal.valueOf(0)); - } - List<ApsResourceDateStat> apsResourceDateStatList = new ArrayList<>(); if(processMap.containsKey(apsGasPipingRouteStatTemp.getProcessName())){ - apsResourceDateStatList = processMap.get(apsGasPipingRouteStatTemp.getProcessName()); + planStartDate = simpleDateFormat.format(apsGasPipingRouteStatTemp.getProcessPlanStartDay()); + if("month".equals(apsGasPipingRouteStat.getSearchType())){ + planStartDate = planStartDate+"-01"; + } + ApsResourceDateStat apsResourceDateStat = new ApsResourceDateStat(); + apsResourceDateStat.setPlanDay(LocalDate.parse(planStartDate, formatter)); + apsResourceDateStat.setResourceName(apsGasPipingRouteStatTemp.getProcessName()); + //鏌ヨ姘旀煖绠¤矾浜ц兘瑙勫垝琛� + apsResourceDateStat.setDesignTimes(apsGasPipingPlanMap.get(apsGasPipingRouteStatTemp.getProcessName()+"-"+planStartDate.substring(0, 7))!=null?apsGasPipingPlanMap.get(apsGasPipingRouteStatTemp.getProcessName()+"-"+planStartDate.substring(0, 7)).getDayProduceAllNum():new BigDecimal(0)); + //鏌ヨ鏂欏彿宸ュ簭浜ц兘琛� + apsResourceDateStat.setRequireTimes(apsGasPipingRouteStatTemp.getProcessTotalTime()); + if(apsResourceDateStat.getDesignTimes().compareTo(BigDecimal.ZERO)>0){ + apsResourceDateStat.setCapacityLoad(apsResourceDateStat.getRequireTimes() + .divide(apsResourceDateStat.getDesignTimes(), 2, RoundingMode.HALF_UP) + .multiply(new BigDecimal(100))); + }else{ + apsResourceDateStat.setCapacityLoad(BigDecimal.valueOf(0)); + } + // apsResourceDateStatList = new ArrayList<>(); + + List<ApsResourceDateStat> apsResourceDateStatList = processMap.get(apsGasPipingRouteStatTemp.getProcessName()); + apsResourceDateStatList.add(apsResourceDateStat); + processMap.put(apsGasPipingRouteStatTemp.getProcessName(), apsResourceDateStatList); } - apsResourceDateStatList.add(apsResourceDateStat); - processMap.put(apsGasPipingRouteStatTemp.getProcessName(), apsResourceDateStatList); + } //鑱氬悎姣忛亾宸ュ簭鐨勫紑宸ユ椂闂村拰浜ц兘 processMap.forEach((processName, apsResourceDateStatList) -> { @@ -694,10 +699,10 @@ } } if(stat.getProcessPlanStartDay()!=null){ - Date processPlanStartDay = stat.getProcessPlanStartDay(); - stat.setPlanStartYear(processPlanStartDay.getYear()+""); - stat.setPlanStartMonth(processPlanStartDay.getMonth()+""); - stat.setPlanStartDay(processPlanStartDay.getDay()+""); + String[] strNow = new SimpleDateFormat("yyyy-MM-dd").format(stat.getProcessPlanStartDay()).toString().split("-"); + stat.setPlanStartYear(strNow[0]); + stat.setPlanStartMonth(strNow[1]); + stat.setPlanStartDay(strNow[2]); } last = stat; cptStateList.add(stat); @@ -705,7 +710,7 @@ } // 鎵归噺鎻掑叆浠ユ彁楂樻�ц兘 if (!cptStateList.isEmpty()) { - int batchSize = 500; + int batchSize = 1000; int size = cptStateList.size(); for (int i = 0; i < size; i += batchSize) { int end = Math.min(i + batchSize, size); -- Gitblit v1.9.3