| | |
| | | // apsGasMaterialUsage.setItemNumber(apsGasPipingPlan.getItemNumber()); |
| | | // apsGasMaterialUsage.setProcessName(apsProcessRoute.getProcessName()); |
| | | // List<ApsGasMaterialUsage> apsGasMaterialUsageList = apsGasMaterialUsageService.selectApsGasMaterialUsageList(apsGasMaterialUsage); |
| | | apsGasPipingRouteStat.setStandardDosage(apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity())); |
| | | // apsGasPipingRouteStat.setStandardDosage(apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity())); |
| | | //工序总用量 = 标准用量*生产数量 |
| | | apsGasPipingRouteStat.setProcessTotalDosage(apsGasPipingRouteStat.getStandardDosage().multiply(apsGasPipingPlan.getProductionQuantity())); |
| | | // apsGasPipingRouteStat.setProcessTotalDosage(apsGasPipingRouteStat.getStandardDosage().multiply(apsGasPipingPlan.getProductionQuantity())); |
| | | apsGasPipingRouteStat.setCreateTime(DateUtils.getNowDate()); |
| | | apsGasPipingRouteStat.setCreateBy("auto"); |
| | | apsGasPipingRouteStat.setBatchNumber(batchNum); |
| | |
| | | @Override |
| | | public JSONObject getCapacityPlanData(ApsGasPipingRouteStat apsGasPipingRouteStat) { |
| | | JSONObject result = new JSONObject(); |
| | | YearMonth yearMonth = YearMonth.parse(apsGasPipingRouteStat.getSearchEndDate()); |
| | | int daysInMonth = yearMonth.lengthOfMonth(); |
| | | HashSet<String> startPlanTimeSet = new HashSet<>(); |
| | | //工序分组统计 |
| | | LinkedHashMap<String, List<ApsResourceDateStat>> processMap = new LinkedHashMap<>(); |
| | |
| | | } |
| | | //获取工序计划产能数据 |
| | | HashMap<String, ApsGasPipelineCapacityPlan> apsGasPipingPlanMap = new HashMap<>(); |
| | | List<ApsGasPipelineCapacityPlan> apsGasPipelineCapacityPlanList = apsGasPipelineCapacityPlanMapper.selectApsGasPipelineCapacityPlanList(new ApsGasPipelineCapacityPlan()); |
| | | ApsGasPipelineCapacityPlan searchCapacityPlan = new ApsGasPipelineCapacityPlan(); |
| | | searchCapacityPlan.setMajor(apsGasPipingRouteStat.getMajor().equals("gas")?"气柜":"管路"); |
| | | if("day".equals(apsGasPipingRouteStat.getSearchType())){ |
| | | searchCapacityPlan.setYear(yearMonth.getYear()+""); |
| | | searchCapacityPlan.setMonth(yearMonth.getMonthValue()+""); |
| | | for(int i=1;i<=daysInMonth;i++){ |
| | | startPlanTimeSet.add(yearMonth +"-"+ (i<10?"0"+i:i)); |
| | | } |
| | | }else if("month".equals(apsGasPipingRouteStat.getSearchType())){ |
| | | searchCapacityPlan.setYear(yearMonth.getYear()+""); |
| | | for(int i=1;i<=12;i++){ |
| | | startPlanTimeSet.add(yearMonth.getYear()+"-"+(i<10?"0"+i:i)); |
| | | } |
| | | } |
| | | List<ApsGasPipelineCapacityPlan> apsGasPipelineCapacityPlanList = apsGasPipelineCapacityPlanMapper.selectApsGasPipelineCapacityPlanList(searchCapacityPlan); |
| | | apsGasPipelineCapacityPlanList.forEach(apsGasPipelineCapacityPlan -> { |
| | | apsGasPipingPlanMap.put(apsGasPipelineCapacityPlan.getProcessName(),apsGasPipelineCapacityPlan); |
| | | }); |
| | |
| | | DateTimeFormatter formatter = null; |
| | | List<ApsGasPipingRouteStat> apsGasPipingRouteStats; |
| | | SimpleDateFormat simpleDateFormat = null; |
| | | YearMonth yearMonth = YearMonth.parse(apsGasPipingRouteStat.getSearchEndDate()); |
| | | int daysInMonth = yearMonth.lengthOfMonth(); |
| | | apsGasPipingRouteStat.setSearchStartDate(apsGasPipingRouteStat.getSearchStartDate()+"-01 00:00:00"); |
| | | apsGasPipingRouteStat.setSearchEndDate(apsGasPipingRouteStat.getSearchEndDate()+"-"+ daysInMonth +" 23:59:59"); |
| | | if("day".equals(apsGasPipingRouteStat.getSearchType())){ |
| | |
| | | processMap.forEach((processName, apsResourceDateStatList) -> { |
| | | LinkedHashMap<String, ApsResourceDateStat> dayMap = new LinkedHashMap<>(); |
| | | apsResourceDateStatList.forEach(apsResourceDateStat -> { |
| | | startPlanTimeSet.add(apsResourceDateStat.getPlanDay().toString()); |
| | | // startPlanTimeSet.add(apsResourceDateStat.getPlanDay().toString()); |
| | | if(dayMap.containsKey(apsResourceDateStat.getPlanDay().toString())){ |
| | | ApsResourceDateStat apsResourceDateStatTemp = dayMap.get(apsResourceDateStat.getPlanDay().toString()); |
| | | if("month".equals(apsGasPipingRouteStat.getSearchType())){ |
| | |
| | | } |
| | | apsResourceDateStatTemp.setRequireTimes(apsResourceDateStatTemp.getRequireTimes().add(apsResourceDateStat.getRequireTimes())); |
| | | if(apsResourceDateStatTemp.getDesignTimes().compareTo(BigDecimal.ZERO) > 0){ |
| | | apsResourceDateStat.setCapacityLoad(apsResourceDateStat.getRequireTimes() |
| | | .divide(apsResourceDateStat.getDesignTimes(), 2, RoundingMode.HALF_UP) |
| | | apsResourceDateStatTemp.setCapacityLoad(apsResourceDateStatTemp.getRequireTimes() |
| | | .divide(apsResourceDateStatTemp.getDesignTimes(), 2, RoundingMode.HALF_UP) |
| | | .multiply(new BigDecimal(100))); |
| | | }else{ |
| | | apsResourceDateStatTemp.setCapacityLoad(new BigDecimal(0)); |
| | |
| | | HashMap<String, List<ApsResourceDateStat>> temp = processList.get(i); |
| | | for (Map.Entry<String, List<ApsResourceDateStat>> entry : temp.entrySet()){ |
| | | List<ApsResourceDateStat> apsResourceDateStatList = entry.getValue(); |
| | | if(apsResourceDateStatList.size()<=0){ |
| | | for(String tempTime:sortedStartPlanTimeList){ |
| | | String key = entry.getKey(); |
| | | List<ApsResourceDateStat> crtList = new ArrayList<>(); |
| | | for(String tempTime:sortedStartPlanTimeList) { |
| | | LocalDate crtDate = LocalDate.parse(tempTime, formatter); |
| | | Optional<ApsResourceDateStat> first = apsResourceDateStatList.stream().filter(x -> x.getPlanDay().equals(crtDate)).findFirst(); |
| | | if (first.isPresent()) { |
| | | ApsResourceDateStat apsResourceDateStat = first.get(); |
| | | crtList.add(apsResourceDateStat); |
| | | } else { |
| | | ApsResourceDateStat apsResourceDateStat = new ApsResourceDateStat(); |
| | | apsResourceDateStat.setPlanDay(LocalDate.parse(tempTime, formatter)); |
| | | if("month".equals(apsGasPipingRouteStat.getSearchType())){ |
| | | apsResourceDateStat.setDesignTimes(apsGasPipingPlanMap.get(entry.getKey())!=null?apsGasPipingPlanMap.get(entry.getKey()).getMonthProduceAllNum():new BigDecimal(0)); |
| | | }else{ |
| | | apsResourceDateStat.setDesignTimes(apsGasPipingPlanMap.get(entry.getKey())!=null?apsGasPipingPlanMap.get(entry.getKey()).getDayProduceAllNum():new BigDecimal(0)); |
| | | if ("month".equals(apsGasPipingRouteStat.getSearchType())) { |
| | | apsResourceDateStat.setDesignTimes(apsGasPipingPlanMap.get(entry.getKey()) != null ? apsGasPipingPlanMap.get(entry.getKey()).getMonthProduceAllNum() : new BigDecimal(0)); |
| | | } else { |
| | | apsResourceDateStat.setDesignTimes(apsGasPipingPlanMap.get(entry.getKey()) != null ? apsGasPipingPlanMap.get(entry.getKey()).getDayProduceAllNum() : new BigDecimal(0)); |
| | | } |
| | | apsResourceDateStat.setRequireTimes(new BigDecimal(0)); |
| | | apsResourceDateStat.setCapacityLoad(new BigDecimal(0)); |
| | | apsResourceDateStat.setResourceName(entry.getKey()); |
| | | apsResourceDateStat.setResourceGroupName(entry.getKey()); |
| | | apsResourceDateStatList.add(apsResourceDateStat); |
| | | crtList.add(apsResourceDateStat); |
| | | } |
| | | temp.put(entry.getKey(), apsResourceDateStatList); |
| | | temp.put(entry.getKey(), crtList); |
| | | processList.set(i, temp); |
| | | } |
| | | } |