lyh
18 小时以前 3ca5acd1cdd2abc3db64dcbe396d0d19fedd0819
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -211,18 +211,41 @@
        //计算维修时间与故障时间
        Date startTime;
        Date endTime;
        //维修结束时间-维修开始时间=维修时长
        // 1. 计算维修时长(维修结束时间-维修开始时间)
        if (eamRepairOrder.getActualStartTime() != null &&
                eamRepairOrder.getActualEndTime() != null) {
        startTime=eamRepairOrder.getActualStartTime();
        endTime=eamRepairOrder.getActualEndTime();
        eamRepairOrder.setRepairDuration(TimeUtil.howLong(startTime,endTime,2));
        //维修结束时间-故障报修时间=故障时长
        EamReportRepair eamReportRepair=eamReportRepairService.getById(eamRepairOrder.getReportId());
        if (eamReportRepair==null){
            return false;
            // 确保结束时间在开始时间之后
            if (endTime.after(startTime)) {
                long time = endTime.getTime() - startTime.getTime();
                double hours = (double) time / (1000 * 60 * 60);
                eamRepairOrder.setRepairDuration(String.format("%.2f", hours));
            } else {
                // 时间顺序错误处理
                eamRepairOrder.setRepairDuration("0.00");
        }
        } else {
            // 处理缺失时间的情况
            eamRepairOrder.setRepairDuration("0.00");
        }
        // 2. 计算故障时长(维修结束时间-故障开始时间)
        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
        if (eamReportRepair != null &&
                eamReportRepair.getFaultStartTime() != null &&
                eamRepairOrder.getActualEndTime() != null) {
        startTime=eamReportRepair.getFaultStartTime();
        endTime=eamRepairOrder.getActualEndTime();
        eamRepairOrder.setFaultDuration(TimeUtil.howLong(startTime,endTime,2));
            if (endTime.after(startTime)) {
                long time = endTime.getTime() - startTime.getTime();
                double hours = (double) time / (1000 * 60 * 60);
                eamRepairOrder.setFaultDuration(String.format("%.2f", hours));
            } else {
                eamRepairOrder.setFaultDuration("0.00");
            }
        } else {
            eamRepairOrder.setFaultDuration("0.00");
        }
        eamRepairOrder.setFaultStartTime(new Date());
        this.updateById(eamRepairOrder);
        eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());