lyh
17 小时以前 3ca5acd1cdd2abc3db64dcbe396d0d19fedd0819
维修时长 故障时长修改
已修改1个文件
47 ■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -208,21 +208,44 @@
        BeanUtils.copyProperties(eamRepairOrderDto,eamRepairOrder);
        eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());
        eamRepairOrder.setActualEndTime(new Date());
        //计算维修时间与故障时间
        // 计算维修时间与故障时间
        Date startTime;
        Date endTime;
        //维修结束时间-维修开始时间=维修时长
        startTime=eamRepairOrder.getActualStartTime();
        endTime=eamRepairOrder.getActualEndTime();
        eamRepairOrder.setRepairDuration(TimeUtil.howLong(startTime,endTime,2));
        //维修结束时间-故障报修时间=故障时长
        EamReportRepair eamReportRepair=eamReportRepairService.getById(eamRepairOrder.getReportId());
        if (eamReportRepair==null){
            return false;
        // 1. 计算维修时长(维修结束时间-维修开始时间)
        if (eamRepairOrder.getActualStartTime() != null &&
                eamRepairOrder.getActualEndTime() != null) {
            startTime = eamRepairOrder.getActualStartTime();
            endTime = eamRepairOrder.getActualEndTime();
            // 确保结束时间在开始时间之后
            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");
        }
        startTime=eamReportRepair.getFaultStartTime();
        endTime=eamRepairOrder.getActualEndTime();
        eamRepairOrder.setFaultDuration(TimeUtil.howLong(startTime,endTime,2));
        // 2. 计算故障时长(维修结束时间-故障开始时间)
        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
        if (eamReportRepair != null &&
                eamReportRepair.getFaultStartTime() != null &&
                eamRepairOrder.getActualEndTime() != null) {
            startTime = eamReportRepair.getFaultStartTime();
            endTime = eamRepairOrder.getActualEndTime();
            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());