zhangherong
2025-05-06 665ffec07abac9fa14e7613fe1c73922a537ff77
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java
@@ -4,56 +4,87 @@
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.modules.eam.constant.EquipmentMaintenanceStatus;
import org.jeecg.modules.eam.constant.EquipmentRepairStatus;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.vo.EquipmentMaintenanceStatistics;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
import org.jeecg.modules.eam.vo.EquipmentStatusStatistics;
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 java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.time.LocalDate;
import java.util.*;
@Slf4j
@Api(tags="设备管理-首页看板接口")
@Api(tags = "设备管理-首页看板接口")
@RestController
@RequestMapping("/eam/dashboard")
public class EamDashboardController {
    @Autowired
    private IEamEquipmentService eamEquipmentService;
    @Autowired
    private IEamReportRepairService reportRepairService;
    @ApiOperation(value="看板接口-维保状态统计", notes="看板接口-维保状态统计")
    @ApiOperation(value = "看板接口-维保状态统计", notes = "看板接口-维保状态统计")
    @GetMapping(value = "/equipmentStatusStatistics")
    public Result<?> equipmentStatusStatistics(@RequestParam(required = false, value = "productionId") String productionId) {
        List<EamEquipment> list = eamEquipmentService.queryByProductionId(productionId);
        //初始化返回
        Map<String, EquipmentMaintenanceStatistics> statisticsMap = new HashMap<>();
        statisticsMap.put(EquipmentMaintenanceStatus.NORMAL.name(), new EquipmentMaintenanceStatistics(EquipmentMaintenanceStatus.NORMAL.name(), "正常"));
        statisticsMap.put(EquipmentMaintenanceStatus.UNDER_INSPECTION.name(), new EquipmentMaintenanceStatistics(EquipmentMaintenanceStatus.UNDER_INSPECTION.name(), "点检"));
        statisticsMap.put(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name(), new EquipmentMaintenanceStatistics(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name(), "保养"));
        statisticsMap.put(EquipmentRepairStatus.UNDER_REPAIR.name(), new EquipmentMaintenanceStatistics(EquipmentRepairStatus.UNDER_REPAIR.name(), "维修"));
        Map<String, EquipmentStatusStatistics> statisticsMap = new HashMap<>();
        statisticsMap.put(EquipmentMaintenanceStatus.NORMAL.name(), new EquipmentStatusStatistics(EquipmentMaintenanceStatus.NORMAL.name(), "正常"));
        statisticsMap.put(EquipmentMaintenanceStatus.UNDER_INSPECTION.name(), new EquipmentStatusStatistics(EquipmentMaintenanceStatus.UNDER_INSPECTION.name(), "点检"));
        statisticsMap.put(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name(), new EquipmentStatusStatistics(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name(), "保养"));
        statisticsMap.put(EquipmentRepairStatus.UNDER_REPAIR.name(), new EquipmentStatusStatistics(EquipmentRepairStatus.UNDER_REPAIR.name(), "维修"));
        for (EamEquipment entity : list) {
            if(EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getMaintenanceStatus()) && EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getRepairStatus())) {
            if (EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getMaintenanceStatus()) && EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getRepairStatus())) {
                //正常状态
                statisticsMap.get(EquipmentMaintenanceStatus.NORMAL.name()).increase();
            }else if(!EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getRepairStatus())) {
            } else if (!EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getRepairStatus())) {
                //维修状态
                statisticsMap.get(EquipmentRepairStatus.UNDER_REPAIR.name()).increase();
            } else if(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name().equals(entity.getMaintenanceStatus()) || EquipmentMaintenanceStatus.WAIT_CONFIRM.name().equals(entity.getMaintenanceStatus())) {
            } else if (EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name().equals(entity.getMaintenanceStatus()) || EquipmentMaintenanceStatus.WAIT_CONFIRM.name().equals(entity.getMaintenanceStatus())) {
                //保养状态
                statisticsMap.get(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name()).increase();
            } else {
                statisticsMap.get(EquipmentMaintenanceStatus.UNDER_INSPECTION.name()).increase();
            }
        }
        List<EquipmentMaintenanceStatistics> resultList = new ArrayList<>(statisticsMap.values());
        List<EquipmentStatusStatistics> resultList = new ArrayList<>(statisticsMap.values());
        return Result.ok(resultList);
    }
    @ApiOperation(value = "看板接口-维修统计", notes = "看板接口-维修统计")
    @GetMapping(value = "/equipmentRepairStatistics")
    public Result<?> equipmentRepairStatistics(@RequestParam(required = false, value = "productionId") String productionId) {
        //统计结束日期
        LocalDate today = LocalDate.now();
        LocalDate localDate = today.minusMonths(5);
        //统计开始日期
        LocalDate firstOfMonth = DateUtils.getFirstOfMonth(localDate);
        //初始化返回值
        Map<String, EquipmentRepairStatistics> statisticsMap = new HashMap<>();
        List<String> monthsBetween = DateUtils.getMonthsBetween(firstOfMonth, today);
        monthsBetween.forEach(month -> {
            statisticsMap.put(month, new EquipmentRepairStatistics(month));
        });
        List<EquipmentRepairStatistics> list = reportRepairService.equipmentRepairStatistics(productionId, firstOfMonth, today);
        for (EquipmentRepairStatistics statistics : list) {
            if (statisticsMap.containsKey(statistics.getMonthStr())) {
                statisticsMap.put(statistics.getMonthStr(), statistics);
            }
        }
        List<EquipmentRepairStatistics> resultList = new ArrayList<>(statisticsMap.values());
        //排序
        resultList.sort(Comparator.comparing(EquipmentRepairStatistics::getMonthStr));
        return Result.ok(resultList);
    }
}