zhanghl
2025-04-21 1859ddd5514b7df454f8b8c98aa5020ef808c33b
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java
@@ -3,6 +3,7 @@
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.*;
@@ -149,14 +150,18 @@
                /*判断当前工序 当前工序只有一条*/
                if (stat.getCurrentProcessNumber().equals(stat.getRoadProcessNumber())) {
                    /* 对 stat.getProcessPlanStartDay() 和当前日期 进行对比,只对比到日,不用管十分秒*/
                    if (stat.getProcessPlanStartDay().toLocalDate().isBefore(LocalDateTime.now().toLocalDate())) {
                        stat.setProcessPlanStartDay(LocalDateTime.now());
                    LocalDate startLocalDate = LocalDate.ofInstant(stat.getProcessPlanStartDay().toInstant(), ZoneId.systemDefault());
                    LocalDate nowLocalDate = LocalDate.now();
                    if (startLocalDate.isBefore(nowLocalDate)) {
                        stat.setProcessPlanStartDay(new Date());
                    }
                }
                /*未开工工序的计划开工日=上一道工序的计划开工日+上一道工序的工序总工时。*/
                if (stat.getCurrentProcessNumber().compareTo(stat.getRoadProcessNumber()) < 0) {
                    if (last != null) {
                        stat.setProcessPlanStartDay(last.getProcessPlanStartDay().plusHours(last.getProcessTotalTime()));
                        LocalDateTime lastStartDate = LocalDateTime.ofInstant(last.getProcessPlanStartDay().toInstant(), ZoneId.systemDefault());
                        lastStartDate.plusHours(last.getProcessTotalTime());
                        stat.setProcessPlanStartDay(Date.from(lastStartDate.atZone(ZoneId.systemDefault()).toInstant()));
                    }
                }
                /*保存上一步计算的 开工日*/