qushaowei
2024-09-29 454545bd4207d99d153e263c68f821f856f0e884
430最终问题项修改
已添加1个文件
已修改10个文件
324 ■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/FaultIntervalTime.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/InspectionCycleMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java
@@ -677,6 +677,11 @@
        finishTransferOrder.setDelFlag(0);
        finishTransferOrderService.save(finishTransferOrder);
        String equipmentId = maintenanceOrder.getEquipmentId();
        Equipment equipment = equipmentService.getById(equipmentId);
        equipment.setSecondMaintenanceTime(new Date());
        equipmentService.updateById(equipment);
        if (!b) {
            return Result.error("报工失败!");
        } else {
@@ -722,6 +727,20 @@
        this.createMaintenanceStoveExempt(maintenanceOrder);
        /**
         * ä¸‰ä¿æŠ¥å·¥æ—¶  æ›´æ–°æœ¬æ¬¡ä¸‰ä¿æ—¥æœŸ  å’Œä¸‹æ¬¡ä¸‰ä¿æ—¥æœŸ
         */
        String equipmentImportanceId = equipment.getEquipmentImportanceId();
        equipment.setThirdMaintenanceTime(new Date());
        if("A".equals(equipmentImportanceId)){
            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),3));
        }else if("B".equals(equipmentImportanceId)){
            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),4));
        }else if("C".equals(equipmentImportanceId)){
            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),4));
        }
        equipmentService.updateById(equipment);
        if (!b) {
            return Result.error("报工失败!");
        } else {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -1,6 +1,7 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -673,7 +674,9 @@
                     String teamId = equipmentImportVo.getTeamId();
                     String propertyStatus = equipmentImportVo.getPropertyStatus();
                     String abc = equipmentImportVo.getEquipmentImportanceId();
                     if(StringUtils.isBlank(equipmentImportVo.getNum())){
                     Date thirdMaintenanceTime = equipmentImportVo.getThirdMaintenanceTime();
                     Date technologyStatusQualificationTime = equipmentImportVo.getTechnologyStatusQualificationTime();
                     if(StringUtils.isBlank(equipmentImportVo.getNum())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:统一编码缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
@@ -883,12 +886,14 @@
                                         .setSourceCountry(equipmentImportVo.getSourceCountry())
                                         .setModel(equipmentImportVo.getModel())
                                         .setSpecification(equipmentImportVo.getSpecification())
                                         .setPropertyStatus(equipmentImportVo.getPropertyStatus())
                                         .setPropertyStatus("normal")
                                         .setWarrantyStart(equipmentImportVo.getWarrantyStart())
                                         .setWarrantyEnd(equipmentImportVo.getWarrantyEnd())
                                         .setIsLineEquip("no")
                                         .setIsLine("no")
                                         .setNextTechnologyStatusQualificationTime(equipmentImportVo.getNextTechnologyStatusQualificationTime())
                                         .setThirdMaintenanceTime(equipmentImportVo.getThirdMaintenanceTime())
                                         .setTechnologyStatusQualificationTime(equipmentImportVo.getTechnologyStatusQualificationTime())
                                         .setGpo(equipmentImportVo.getGpo());
                                 if(equipmentCategory.getEquipmentCategoryUda1().equals("weldingMachine")){
                                     equipment.setCheckPeriod(365*3+"");
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java
@@ -7,6 +7,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.hssf.record.DVALRecord;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
@@ -24,6 +25,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.util.*;
@@ -209,9 +212,41 @@
                faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString());
                faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString());
                faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString());
                faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString());
                faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString());
                faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
                //计算mttr
                BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString());
                BigDecimal faultNumber = new BigDecimal(equipmentMTBF.get(0).get("faultNumber").toString());
                BigDecimal averageRepairTime;
                if(new BigDecimal(0).compareTo(faultNumber) == 0){
                    averageRepairTime = new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP);
                }else{
                    averageRepairTime = repairTime.divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
                }
                //计算mtbf
                //当有故障时间时MTBF:(总可利用时间-总故障时间)/(总故障次数+1)
                //当无故障时间时MTBF:MTBF=总可利用时间
                BigDecimal averageFaultIntervalTime;
                BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString());
                BigDecimal faultTime = new BigDecimal(equipmentMTBF.get(0).get("faultTime").toString());
                if(new BigDecimal(0).compareTo(faultNumber) == 0){
                    averageFaultIntervalTime = new BigDecimal(totalAvailableTime + ".00").setScale(2, RoundingMode.HALF_UP);;
                }else{
                    averageFaultIntervalTime = (totalAvailableTime.subtract(faultTime)).divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
                }
                //计算完好率  å¯å¼€åŠ¨çŽ‡
                BigDecimal totalDay = new BigDecimal(equipmentMTBF.get(0).get("totalDay").toString());
                BigDecimal repairDay = new BigDecimal(equipmentMTBF.get(0).get("repairDay").toString());
                BigDecimal serviceabilityRate = (totalDay.subtract(repairDay)).divide(totalDay,2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
                //可开动率
//                BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString());
//                BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString());
                BigDecimal startRate = (totalAvailableTime.subtract(repairTime)).divide(totalAvailableTime,2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
                faultIntervalTime.setAverageRepairTime(averageRepairTime.toString());
                faultIntervalTime.setAverageFaultIntervalTime(averageFaultIntervalTime.toString());
                faultIntervalTime.setServiceabilityRate(serviceabilityRate+"%");
                faultIntervalTime.setStartRate(startRate+"%");
                faultIntervalTimeList.add(faultIntervalTime);
            }else{
                List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getMTBFTotalAvailableTime(query);
@@ -222,12 +257,14 @@
                }else{
                    faultIntervalTime.setTotalAvailableTime("0");
                    faultIntervalTime.setNoFaultTime("0");
                    faultIntervalTime.setAverageFaultIntervalTime("0");
                    faultIntervalTime.setAverageFaultIntervalTime("0.00");
                }
                faultIntervalTime.setFaultTime("0");
                faultIntervalTime.setFaultNumber("0");
                faultIntervalTime.setAverageRepairTime("0");
                faultIntervalTime.setAverageRepairTime("0.00");
                faultIntervalTime.setRepairTime("0");
                faultIntervalTime.setServiceabilityRate("0.00%");
                faultIntervalTime.setStartRate("0.00%");
                faultIntervalTimeList.add(faultIntervalTime);
            }
@@ -375,25 +412,54 @@
                faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString());
                faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString());
                faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString());
                faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString());
                faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString());
                faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
                faultIntervalTime.setEquipmentNumer(equipmentMTBF.get(0).get("equipmentNumer").toString());
                BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString());
                BigDecimal faultNumber = new BigDecimal(equipmentMTBF.get(0).get("faultNumber").toString());
                BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString());
                BigDecimal faultTime = new BigDecimal(equipmentMTBF.get(0).get("faultTime").toString());
                BigDecimal equipmentNumer = new BigDecimal(equipmentMTBF.get(0).get("equipmentNumer").toString());
                BigDecimal totalDay = new BigDecimal(equipmentMTBF.get(0).get("totalDay").toString());
                BigDecimal repairDay = new BigDecimal(equipmentMTBF.get(0).get("repairDay").toString());
                //计算mttr ä¿®å¤æ—¶é—´/故障次数
                BigDecimal averageRepairTime = repairTime.divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
                //计算mtbf ï¼ˆæ€»å¯åˆ©ç”¨æ—¶é—´-故障时间)/故障次数
                BigDecimal averageFaultIntervalTime;
                if(new BigDecimal(0).compareTo(faultNumber)==0){
                    averageFaultIntervalTime = new BigDecimal("0.00").setScale(2, RoundingMode.HALF_UP);
                }else{
                    averageFaultIntervalTime = (totalAvailableTime.subtract(faultTime)).divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
                }
                //完好率 ï¼ˆç»Ÿè®¡å¤©æ•°*设备数量-故障天数)/(统计天数*设备数量)
                BigDecimal serviceabilityRate = ((totalDay.multiply(equipmentNumer)).subtract(repairDay)).divide((totalDay.multiply(equipmentNumer)), 2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
                //开动率  ï¼ˆæ€»å¯åˆ©ç”¨æ—¶é—´-故障时间)/总可利用时间
                BigDecimal startRate = (totalAvailableTime.subtract(faultTime)).divide(totalAvailableTime, 2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
                faultIntervalTime.setAverageRepairTime(averageRepairTime.toString());
                faultIntervalTime.setAverageFaultIntervalTime(averageFaultIntervalTime.toString());
                faultIntervalTime.setServiceabilityRate(serviceabilityRate+"%");
                faultIntervalTime.setStartRate(startRate+"%");
                faultIntervalTimeList.add(faultIntervalTime);
            }else{
                List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getCenterMTBFTotalAvailableTime(query);
                if(query.get("startTime") != "" && query.get("endTime") != ""){
                    faultIntervalTime.setTotalAvailableTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
                    faultIntervalTime.setNoFaultTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
                    faultIntervalTime.setAverageFaultIntervalTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
                    faultIntervalTime.setAverageFaultIntervalTime("0.00");
                }else{
                    faultIntervalTime.setTotalAvailableTime("0");
                    faultIntervalTime.setNoFaultTime("0");
                    faultIntervalTime.setAverageFaultIntervalTime("0");
                    faultIntervalTime.setAverageFaultIntervalTime("0.00");
                }
                faultIntervalTime.setFaultTime("0");
                faultIntervalTime.setFaultNumber("0");
                faultIntervalTime.setAverageRepairTime("0");
                faultIntervalTime.setEquipmentNumer("0");
                faultIntervalTime.setAverageRepairTime("0.00");
                faultIntervalTime.setRepairTime("0");
                faultIntervalTime.setServiceabilityRate("0.00%");
                faultIntervalTime.setStartRate("0.00%");
                faultIntervalTime.setStartTime("0");
                faultIntervalTimeList.add(faultIntervalTime);
            }
@@ -464,4 +530,7 @@
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java
@@ -1,9 +1,11 @@
package org.jeecg.modules.eam.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@@ -122,5 +124,10 @@
    @Excel(name = "下次技术状态鉴定时间", width = 20, format = "yyyyMMdd")
    private Date  nextTechnologyStatusQualificationTime;
    @Excel(name = "三保日期", format = "yyyy-MM-dd")
    private java.util.Date     thirdMaintenanceTime;
    @Excel(name = "技术状态鉴定日期", format = "yyyy-MM-dd")
    private java.util.Date     technologyStatusQualificationTime;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/FaultIntervalTime.java
@@ -110,5 +110,12 @@
    @TableField(exist = false)
    private String endTime;
    @TableField(exist = false)
    private String serviceabilityRate;
    @TableField(exist = false)
    private String startRate;
    @TableField(exist = false)
    private String equipmentNumer;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
package org.jeecg.modules.eam.job;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.jeecg.common.api.dto.message.MessageDTO;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.modules.eam.entity.Equipment;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.system.service.*;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
public class TechnologyStatusAlart implements Job {
    @Resource
    private IEamEquipmentService equipmentService;
    @Resource
    private ISysBaseAPI sysBaseApi;
    @Resource
    private ISysRoleService sysRoleService;
    @Resource
    private ISysDictService sysDictService;
    @Resource
    private ISysDictItemService sysDictItemService;
    @Resource
    private ISysUserRoleService sysUserRoleService;
    @Resource
    private ISysUserService sysUserService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        LocalDateTime currentDateTime = LocalDateTime.now();
        LocalDateTime dateBefore2Months = currentDateTime.plusMonths(2);
        Date result = Date.from(dateBefore2Months.atZone(ZoneId.systemDefault()).toInstant());
        List<Equipment> needAlerts = equipmentService.list(
                new QueryWrapper<Equipment>()
                .lt("next_technology_status_qualification_time",result)
                .eq("property_status","normal")
                .eq("del_flag",0));
        SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
        SysDictItem sysDictItem = sysDictItemService.getOne(
                new QueryWrapper<SysDictItem>()
                .eq("item_text","技术状态鉴定提醒")
                .eq("dict_id",sysDict.getId()),false);
        String roleCode = sysDictItem.getItemValue();
        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().eq("role_code",roleCode),false);
        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>()
                .eq("role_id",sysRole.getId()));
        for(SysUserRole sysUserRole:sysUserRoles){
            SysUser sysUser = sysUserService.getById(sysUserRole.getUserId());
            String title = "设备技术状态鉴定到期提醒!";
            String msg = "统一编码为:";
            for(Equipment equipment:needAlerts){
                msg = msg+"【"+equipment.getNum()+"】";
            }
            msg = msg+"的设备技术状态鉴定的日期不足两个月,请及时处理";
            MessageDTO messageDTO = new MessageDTO();
            messageDTO.setTitle(title);
            messageDTO.setContent(msg);
            messageDTO.setCategory("技术状态鉴定消息");
            messageDTO.setFromUser("admin");
            messageDTO.setToUser(sysUser.getUsername());
            if(needAlerts.size()!=0){
                sysBaseApi.sendSysAnnouncement(messageDTO);
            }
        }
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java
@@ -42,12 +42,20 @@
        LocalDateTime currentDateTime = LocalDateTime.now();
        LocalDateTime dateBefore2Months = currentDateTime.plusMonths(2);
        Date result = Date.from(dateBefore2Months.atZone(ZoneId.systemDefault()).toInstant());
        List<Equipment> needAlerts = equipmentService.list(new QueryWrapper<Equipment>().lt("next_third_maintenance_time",result).eq("property_status","normal").eq("del_flag",0));
        List<Equipment> needAlerts = equipmentService.list(
                new QueryWrapper<Equipment>()
                .lt("next_third_maintenance_time",result)
                .eq("property_status","normal")
                .eq("del_flag",0));
        SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
        SysDictItem sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>().eq("item_text","三保消息").eq("dict_id",sysDict.getId()),false);
        SysDictItem sysDictItem = sysDictItemService.getOne(
                new QueryWrapper<SysDictItem>()
                .eq("item_text","三保消息")
                .eq("dict_id",sysDict.getId()),false);
        String roleCode = sysDictItem.getItemValue();
        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().eq("role_code",roleCode),false);
        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>().eq("role_id",sysRole.getId()));
        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>()
                .eq("role_id",sysRole.getId()));
        for(SysUserRole sysUserRole:sysUserRoles){
            SysUser sysUser = sysUserService.getById(sysUserRole.getUserId());
            String title = "设备下次三保到期提醒!";
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
@@ -165,13 +165,14 @@
        mom_eam_equipment t1
        LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'equipment_status' ) t2 ON t1.equipment_status = t2.item_value
        WHERE t1.del_flag = '0'
        <if test="params.num != 'null' and params.num != ''">
            and t1.num like concat('%',#{params.num},'%')
        </if>
        <if test="params.name != 'null' and params.name != ''">
            and t1.name like concat('%',#{params.name},'%')
        </if>
    </select>
    <!--        <if test="params.num != 'null' and params.num != ''">-->
    <!--            and t1.num like concat('%',#{params.num},'%')-->
    <!--        </if>-->
    <!--        <if test="params.name != 'null' and params.name != ''">-->
    <!--            and t1.name like concat('%',#{params.name},'%')-->
    <!--        </if>-->
    <select id="getEquipmentList" resultType="org.jeecg.modules.eam.entity.Equipment">
    select
        t1.id id,
@@ -405,6 +406,9 @@
        t1.next_technology_status_qualification_time nextTechnologyStatusQualificationTime,
        t1.technology_status_qualification_time technologyStatusQualificationTime,
        t1.technology_status_verification_type technologyStatusVerificationType,
        t1.second_maintenance_time secondMaintenanceTime,
        t1.third_maintenance_time thirdMaintenanceTime,
        t1.next_third_maintenance_time nextThirdMaintenanceTime,
        t1.line_id lineId,
        t1.is_meta isMeta,
        t1.id showId,
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml
@@ -22,8 +22,12 @@
            and t1.equipment_importance_id =#{params.abc}
        </if>
        <if test="params.specificEquipment != null and params.specificEquipment != ''">
            and t1.specific_equipment in ('0','1','2')
            and t1.specific_equipment =#{params.specificEquipment}
        </if>
        <if test="params.equipmentNum != null and params.equipmentNum != ''">
            and t1.num =#{params.equipmentNum}
        </if>
        ORDER BY t2.name ASC
    </select>
    <select id="getWorkCenterList"  parameterType="Map" resultType="Map">
@@ -35,14 +39,17 @@
            mom_eam_equipment t1
        LEFT JOIN mom_base_area t2 ON t1.work_center_id = t2.id
        WHERE t2.type = '1' and t1.work_center_id IS NOT NULL
        <if test="params.abc != null and params.abc != ''">
            and t1.equipment_importance_id =#{params.abc}
        </if>
        <if test="params.useDepartName != null and params.useDepartName != ''">
            and t2.name =#{params.useDepartName}
        </if>
        GROUP BY t1.work_center_id,t2.name
    </select>
<!--    <if test="params.abc != null and params.abc != ''">-->
<!--        and t1.equipment_importance_id =#{params.abc}-->
<!--    </if>-->
<!--    <if test="params.specificEquipment != null and params.specificEquipment != ''">-->
<!--        and t1.specific_equipment =#{params.specificEquipment}-->
<!--    </if>-->
    <!--            <if test="params.useDepartName == ''">-->
    <!--                and t2.depart_name = '-1'-->
@@ -55,15 +62,17 @@
            SUM(tt.faultTime) AS faultTime,
            SUM(tt.repairTime) AS repairTime,
            SUM(tt.noFaultTime) AS noFaultTime,
            SUM(tt.repairTime) /COUNT(tt.equipmentId) AS averageRepairTime,
            SUM(tt.noFaultTime) /COUNT(tt.equipmentId) AS averageFaultIntervalTime
            sum(tt.totalDay) as totalDay,
            sum(tt.repairDay) as repairDay
        FROM(
                SELECT
                    t1.equipment_id AS equipmentId,
                    datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime,
                    datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS faultTime,
                    datediff( HOUR, isnull( t2.actual_start_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairTime,
                    (datediff( HOUR, #{params.startTime}, #{params.endTime}) + 24) - datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS noFaultTime
                    (datediff( HOUR, #{params.startTime}, #{params.endTime}) + 24) - datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS noFaultTime,
                    datediff( DAY, #{params.startTime}, #{params.endTime} )+1 AS totalDay,
                    datediff( DAY, isnull( t1.fault_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairDay
                FROM
                    mom_eam_equipment_report_repair t1
                LEFT JOIN mom_eam_repair_order t2 ON t2.report_repair_id = t1.id
@@ -75,39 +84,57 @@
        GROUP BY
            tt.equipmentId,tt.totalAvailableTime
    </select>
<!--    SUM(tt.repairTime) /COUNT(tt.equipmentId) AS averageRepairTime,-->
<!--    SUM(tt.noFaultTime) /(COUNT(tt.equipmentId) + 1) AS averageFaultIntervalTime,-->
<!--    (sum(tt.totalDay) - sum(tt.repairDay))/sum(tt.totalDay) as serviceabilityRate,-->
<!--    (tt.totalAvailableTime - SUM(tt.repairTime))/tt.totalAvailableTime as startRate-->
    <select id="getMTBFTotalAvailableTime"  parameterType="Map" resultType="Map">
        select  datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime
    </select>
    <select id="getCenterEquipmentMTBF"  parameterType="Map" resultType="Map">
        SELECT
            COUNT(tt.workCenterId) AS faultNumber,
            tt.totalAvailableTime * COUNT(tt.workCenterId) as totalAvailableTime,
            SUM(tt.faultTime) * COUNT(tt.workCenterId) AS faultTime,
            SUM(tt.repairTime) * COUNT(tt.workCenterId) AS repairTime,
            SUM(tt.noFaultTime) * COUNT(tt.workCenterId) AS noFaultTime,
            SUM(tt.repairTime) /COUNT(tt.workCenterId) * COUNT(tt.workCenterId) AS averageRepairTime,
            SUM(tt.noFaultTime) /COUNT(tt.workCenterId) * COUNT(tt.workCenterId) AS averageFaultIntervalTime
            COUNT(tt.equipmentNum) AS equipmentNumer,
            sum(tt.equipmentNum) as faultNumber,
            tt.totalAvailableTime * COUNT(tt.equipmentNum) as totalAvailableTime,
            SUM(tt.faultTime) AS faultTime,
            SUM(tt.repairTime) AS repairTime,
            tt.totalAvailableTime * COUNT(tt.equipmentNum) - SUM(tt.faultTime) AS noFaultTime,
            tt.totalDay,
            tt.repairDay
        FROM(
                SELECT
                    t3.work_center_id as workCenterId,
                    datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime,
                    datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS faultTime,
                    datediff( HOUR, isnull( t2.actual_start_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairTime,
                    (datediff( HOUR, #{params.startTime}, #{params.endTime}) + 24) - datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS noFaultTime
                FROM
                    mom_eam_equipment_report_repair t1
                LEFT JOIN mom_eam_repair_order t2 ON t2.report_repair_id = t1.id
                left join mom_eam_equipment t3 on t1.equipment_id = t3.id
                WHERE 1=1
                  AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) &gt;= #{params.startTime}
                  AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) &lt;= #{params.endTime}
                  AND t3.work_center_id  = #{params.workCenterId}
                select COUNT(ss.equipmentNum) as equipmentNum,ss.totalAvailableTime,ss.faultTime,ss.repairTime,ss.noFaultTime,ss.totalDay,ss.repairDay from (
                    SELECT
                        t3.num as equipmentNum,
                        datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime,
                        datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS faultTime,
                        datediff( HOUR, isnull( t2.actual_start_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairTime,
                        (datediff( HOUR, #{params.startTime}, #{params.endTime}) + 24) - datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS noFaultTime,
                        datediff( DAY, #{params.startTime}, #{params.endTime} )+1 AS totalDay,
                        datediff( DAY, isnull( t1.fault_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairDay
                    FROM
                        mom_eam_equipment_report_repair t1
                    LEFT JOIN mom_eam_repair_order t2 ON t2.report_repair_id = t1.id
                    left join mom_eam_equipment t3 on t1.equipment_id = t3.id
                    WHERE 1=1
                      AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) &gt;= #{params.startTime}
                      AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) &lt;= #{params.endTime}
                      AND t3.work_center_id  = #{params.workCenterId}
                      <if test="params.abc != null and params.abc != ''">
                         and t3.equipment_importance_id =#{params.abc}
                      </if>
                      <if test="params.specificEquipment != null and params.specificEquipment != ''">
                         and t3.specific_equipment =#{params.specificEquipment}
                      </if>
                ) ss group by ss.totalAvailableTime,ss.faultTime,ss.repairTime,ss.noFaultTime,ss.totalDay,ss.repairDay
            ) AS tt
        GROUP BY
            tt.workCenterId,tt.totalAvailableTime
            tt.equipmentNum,tt.totalAvailableTime,tt.totalDay,tt.repairDay
    </select>
<!--    SUM(tt.repairTime) /sum(tt.equipmentNum) AS averageRepairTime,-->
<!--    (tt.totalAvailableTime * COUNT(tt.equipmentNum) - SUM(tt.faultTime))/sum(tt.equipmentNum) AS averageFaultIntervalTime,-->
<!--    (tt.totalDay * COUNT(tt.equipmentNum) -tt.repairDay)/ (tt.totalDay * COUNT(tt.equipmentNum)) as serviceabilityRate,-->
<!--    (tt.totalAvailableTime * COUNT(tt.equipmentNum) - SUM(tt.repairTime))/(tt.totalAvailableTime * COUNT(tt.equipmentNum)) as startRate-->
    <select id="getCenterMTBFTotalAvailableTime"  parameterType="Map" resultType="Map">
        select  datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/InspectionCycleMapper.xml
@@ -6,7 +6,7 @@
        select
        t1.id id,
        t1.code code,
        concat(t1.cycle,t2.item_text) name,
        t1.cycle name,
        t1.version version,
        t1.create_by createBy,
        t1.create_time createTime,
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml
@@ -6,7 +6,7 @@
        select
        t1.id id,
        t1.code code,
        concat(t1.cycle,t2.item_text) name,
        t1.cycle name,
        t1.version version,
        t1.create_by createBy,
        t1.create_time createTime,