| | |
| | | apsProcessRoutes.sort((a, b)->b.getProcessNumber().compareTo(a.getProcessNumber())); |
| | | //是否找到当前工序 |
| | | boolean isCurrentProcess = false; |
| | | boolean lastProcessStartTimeIsBeforeNow = false; |
| | | ApsGasPipingRouteStat preApsProcessRoute = null; |
| | | for (int i=0;i<apsProcessRoutes.size();i++){ |
| | | ApsProcessRoute apsProcessRoute = apsProcessRoutes.get(i); |
| | |
| | | apsGasPipingRouteStat.setProcessTotalTime(apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity())); |
| | | //计划开工日 如果是当前序 |
| | | if(apsGasPipingPlan.getProcessNumber().equals(apsProcessRoute.getProcessNumber())) { |
| | | if(apsGasPipingPlan.getOpStatus()==null || apsGasPipingPlan.getOpStatus().equals("完工")){ |
| | | break; |
| | | } |
| | | isCurrentProcess = true; |
| | | } |
| | | // 上一道工序的结束时间 = 上一道工序的开始时间 + 上一道工序的总工时 |
| | | if(i==0){ |
| | | apsGasPipingRouteStat.setProcessPlanEndDay(apsGasPipingPlan.getPlanEndDay()); |
| | | LocalDate endLocalDate = LocalDate.ofInstant(apsGasPipingPlan.getPlanEndDay().toInstant(), ZoneId.systemDefault()); |
| | | LocalDate nowLocalDate = LocalDate.now(); |
| | | LocalDateTime planEndDay; |
| | |
| | | }else{ |
| | | planEndDay = apsGasPipingPlan.getPlanEndDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); |
| | | } |
| | | apsGasPipingRouteStat.setProcessPlanEndDay(Date.from(planEndDay.atZone(ZoneId.systemDefault()).toInstant())); |
| | | long seconds = apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity()).multiply(new BigDecimal(60)).multiply(new BigDecimal(60)).longValue(); |
| | | LocalDateTime planStartDay = planEndDay.plusSeconds(-seconds); |
| | | apsGasPipingRouteStat.setProcessPlanStartDay(Date.from(planStartDay.atZone(ZoneId.systemDefault()).toInstant())); |
| | | if(planStartDay.isBefore(LocalDateTime.now())){ |
| | | lastProcessStartTimeIsBeforeNow = true; |
| | | } |
| | | }else{ |
| | | apsGasPipingRouteStat.setProcessPlanEndDay(preApsProcessRoute.getProcessPlanEndDay()); |
| | | LocalDateTime planEndDay = apsGasPipingPlan.getPlanEndDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); |
| | | if(lastProcessStartTimeIsBeforeNow){ |
| | | Date now = new Date(); |
| | | apsGasPipingRouteStat.setProcessPlanStartDay(now); |
| | | apsGasPipingRouteStat.setProcessPlanEndDay(now); |
| | | }else{ |
| | | apsGasPipingRouteStat.setProcessPlanEndDay(preApsProcessRoute.getProcessPlanStartDay()); |
| | | LocalDateTime planEndDay = preApsProcessRoute.getProcessPlanStartDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); |
| | | long seconds = apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity()).multiply(new BigDecimal(60)).multiply(new BigDecimal(60)).longValue(); |
| | | LocalDateTime planStartDay = planEndDay.plusSeconds(-seconds); |
| | | apsGasPipingRouteStat.setProcessPlanStartDay(Date.from(planStartDay.atZone(ZoneId.systemDefault()).toInstant())); |
| | | } |
| | | } |
| | | //插入 年 月 日 |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | String formattedDate = sdf.format(apsGasPipingRouteStat.getProcessPlanStartDay()); |