huangjiayang
2025-04-29 d4d5f196cc42ef8cfe739de6ecd40f2d21a96e31
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java
@@ -180,13 +180,22 @@
                        }else{
                            apsGasPipingRouteStat.setProcessPlanStartDay(apsProcessRoute.getProcessPlanStartDay());
                        }
                        apsGasPipingRouteStat.setProcessPlanEndDay(apsProcessRoute.getProcessPlanEndDay());
                        LocalDateTime planStartDay = apsGasPipingRouteStat.getProcessPlanStartDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
                        long seconds = apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity()).multiply(new BigDecimal(60)).multiply(new BigDecimal(60)).longValue();
                        apsGasPipingRouteStat.setProcessPlanEndDay(Date.from(planStartDay.plusSeconds(seconds).atZone(ZoneId.systemDefault()).toInstant()));
                        isCurrentProcess = true;
                    }else{
                        // 上一道工序的结束时间 = 上一道工序的开始时间 + 上一道工序的总工时
                        if(i==0){
                            apsGasPipingRouteStat.setProcessPlanEndDay(apsGasPipingPlan.getPlanEndDay());
                            LocalDateTime planEndDay = apsGasPipingPlan.getPlanEndDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
                            LocalDate endLocalDate = LocalDate.ofInstant(apsGasPipingPlan.getPlanEndDay().toInstant(), ZoneId.systemDefault());
                            LocalDate nowLocalDate = LocalDate.now();
                            LocalDateTime planEndDay;
                            if(endLocalDate.isBefore(nowLocalDate)){
                                planEndDay = LocalDateTime.now();
                            }else{
                                planEndDay = apsGasPipingPlan.getPlanEndDay().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()));