zhangherong
2025-05-09 a092e089316c05c6f7732d779e8fdff6060592c0
art: 设备管理-维修看板-维修状态统计,维修列表统计
已添加2个文件
已修改5个文件
197 ■■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairStatusStatistics.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java
@@ -1,10 +1,15 @@
package org.jeecg.modules.eam.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.modules.eam.constant.EquipmentMaintenanceStatus;
import org.jeecg.modules.eam.constant.EquipmentRepairStatus;
import org.jeecg.modules.eam.entity.EamEquipment;
@@ -12,16 +17,14 @@
import org.jeecg.modules.eam.service.IEamInspectionOrderService;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
import org.jeecg.modules.eam.vo.EquipmentInspectionStatistics;
import org.jeecg.modules.eam.vo.EquipmentMaintenanceStatistics;
import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
import org.jeecg.modules.eam.vo.EquipmentStatusStatistics;
import org.jeecg.modules.eam.vo.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.*;
@@ -38,6 +41,11 @@
    private IEamInspectionOrderService inspectionOrderService;
    @Autowired
    private IEamWeekMaintenanceOrderService weekMaintenanceOrderService;
    @Resource
    private ObjectMapper objectMapper;
    @Resource
    private TranslateDictTextUtils translateDictTextUtils;
    @ApiOperation(value = "看板接口-维保状态统计", notes = "看板接口-维保状态统计")
    @GetMapping(value = "/equipmentStatusStatistics")
@@ -151,4 +159,41 @@
        resultList.sort(Comparator.comparing(EquipmentMaintenanceStatistics::getMonthStr));
        return Result.ok(resultList);
    }
    @ApiOperation(value = "维修看板-维修状态统计", notes = "维修看板-维修状态统计")
    @GetMapping(value = "/repairStatusStatistics")
    public Result<?> repairStatusStatistics() {
        EquipmentRepairStatusStatistics statistics = reportRepairService.repairStatusStatistics();
        return Result.OK(statistics);
    }
    @ApiOperation(value = "维修看板-维修列表", notes = "维修看板-维修列表")
    @GetMapping(value = "/repairList")
    public Result<?> repairList() {
        List<EquipmentRepairListVO> list = reportRepairService.repairList();
        if(CollectionUtil.isEmpty(list)) {
            return Result.ok(Collections.emptyList());
        }
        List<JSONObject> items = new ArrayList<>();
        try {
            for(EquipmentRepairListVO vo : list) {
                String json = objectMapper.writeValueAsString(vo);
                JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
                translateDictTextUtils.translateField("reportOperator", vo.getReportOperator(), item, "sys_user,realname,username");
                translateDictTextUtils.translateField("repairOperator", vo.getRepairOperator(), item, "sys_user,realname,username");
                translateDictTextUtils.translateField("reportStatus", vo.getReportStatus(), item, "report_repair_status");
                translateDictTextUtils.translateField("orgId", vo.getOrgId(), item, "mdc_production,production_name,id");
                items.add(item);
            }
            return Result.OK(items);
        }catch (Exception e) {
            return Result.error("数据转译失败!");
        }
    }
    @ApiOperation(value = "维修看板-维修工排名", notes = "维修看板-维修工排名")
    @GetMapping(value = "/repairmanRanking")
    public Result<?> repairmanRanking() {
        return null;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java
@@ -6,7 +6,9 @@
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.vo.EquipmentRepairListVO;
import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
import org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics;
import java.util.List;
@@ -35,4 +37,16 @@
     * @return
     */
    List<EquipmentRepairStatistics> equipmentRepairStatistics(@Param("productionIds") List<String> productionIds, @Param("start") String start, @Param("end") String end);
    /**
     * ç»Ÿè®¡ç»´ä¿®çŠ¶æ€æ•°æ®
     * @return
     */
    EquipmentRepairStatusStatistics repairStatusStatistics();
    /**
     * ç»´ä¿® æœªå®Œæˆåˆ—表
     * @return
     */
    List<EquipmentRepairListVO> repairList();
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml
@@ -67,4 +67,33 @@
        and err.create_time &lt; #{end}
        group by FORMAT(err.create_time, 'yyyy-MM')
    </select>
    <select id="repairStatusStatistics" resultType="org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics">
        SELECT
            SUM(CASE WHEN t.report_status='WAIT_REPAIR' THEN 1 ELSE 0 END) AS waitRepair,
            SUM(CASE WHEN t.report_status='UNDER_REPAIR' THEN 1 ELSE 0 END) AS underRepair,
            SUM(CASE WHEN t.report_status='WAIT_SPARES' THEN 1 ELSE 0 END) AS waitSpares,
            SUM(CASE WHEN t.report_status='WAIT_CONFIRM' THEN 1 ELSE 0 END) AS waitConfirm
        from eam_report_repair t
        where t.report_status not in ('ABOLISH', 'COMPLETE') and t.del_flag = 0
    </select>
    <select id="repairList" resultType="org.jeecg.modules.eam.vo.EquipmentRepairListVO">
        select e.equipment_code,
               e.equipment_name,
               e.org_id,
               e.installation_position,
               err.create_by as reportOperator,
               err.fault_start_time,
               ero.repairer as repairOperator,
               ero.actual_start_time as repairStartTime,
               err.report_status
        from eam_report_repair err
                 left join eam_equipment e
                           on err.equipment_id = e.id
                 left join eam_repair_order ero
                           on ero.report_id = err.id
        where err.report_status not in ('ABOLISH', 'COMPLETE')
          and err.del_flag = 0
        order by e.org_id, err.fault_start_time
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java
@@ -7,7 +7,9 @@
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.vo.EquipmentRepairListVO;
import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
import org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics;
import java.time.LocalDate;
import java.util.List;
@@ -64,4 +66,16 @@
     * @return
     */
    List<EquipmentRepairStatistics> equipmentRepairStatistics(String productionId, LocalDate firstOfMonth, LocalDate today);
    /**
     * ç»´ä¿®çŠ¶æ€ç»Ÿè®¡
     * @return
     */
    EquipmentRepairStatusStatistics repairStatusStatistics();
    /**
     * ç»´ä¿®åˆ—表
     * @return
     */
    List<EquipmentRepairListVO> repairList();
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -19,7 +19,9 @@
import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamEquipmentFaultReasonService;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.eam.vo.EquipmentRepairListVO;
import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
import org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics;
import org.jeecg.modules.system.service.IMdcProductionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -190,4 +192,14 @@
        }
        return list;
    }
    @Override
    public EquipmentRepairStatusStatistics repairStatusStatistics() {
        return this.baseMapper.repairStatusStatistics();
    }
    @Override
    public List<EquipmentRepairListVO> repairList() {
        return this.baseMapper.repairList();
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package org.jeecg.modules.eam.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class EquipmentRepairListVO implements Serializable {
    /**
     * è®¾å¤‡ç¼–码
     */
    private String equipmentCode;
    /**
     * è®¾å¤‡åç§°
     */
    private String equipmentName;
    /**
     * ä½¿ç”¨è½¦é—´
     */
    private String orgId;
    /**
     * å®‰è£…位置
     */
    private String installationPosition;
    /**
     * æŠ¥ä¿®äºº
     */
    private String reportOperator;
    /**
     * æ•…障开始时间
     */
    private Date faultStartTime;
    /**
     * ç»´ä¿®äºº
     */
    private String repairOperator;
    /**
     * æŽ¥å•æ—¶é—´
     */
    private Date repairStartTime;
    /**
     * æ•…障持续时长(MIN)
     */
    private Integer faultDuration;
    /**
     * å·¥å•状态
     */
    private String reportStatus;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairStatusStatistics.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package org.jeecg.modules.eam.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class EquipmentRepairStatusStatistics implements Serializable {
    /**
     * å¾…接单
     */
    private Integer waitRepair;
    /**
     * ç»´ä¿®ä¸­
     */
    private Integer underRepair;
    /**
     * ç­‰å¤‡ä»¶
     */
    private Integer waitSpares;
    /**
     * å¾…确认
     */
    private Integer waitConfirm;
}