package org.jeecg.modules.eam.controller;
|
|
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.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.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.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.time.LocalDate;
|
import java.util.*;
|
|
@Slf4j
|
@Api(tags = "设备管理-首页看板接口")
|
@RestController
|
@RequestMapping("/eam/dashboard")
|
public class EamDashboardController {
|
@Autowired
|
private IEamEquipmentService eamEquipmentService;
|
@Autowired
|
private IEamReportRepairService reportRepairService;
|
@Autowired
|
private IEamInspectionOrderService inspectionOrderService;
|
@Autowired
|
private IEamWeekMaintenanceOrderService weekMaintenanceOrderService;
|
|
@ApiOperation(value = "看板接口-维保状态统计", notes = "看板接口-维保状态统计")
|
@GetMapping(value = "/equipmentStatusStatistics")
|
public Result<?> equipmentStatusStatistics(@RequestParam(required = false, value = "productionId") String productionId) {
|
List<EamEquipment> list = eamEquipmentService.queryByProductionId(productionId);
|
//初始化返回
|
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())) {
|
//正常状态
|
statisticsMap.get(EquipmentMaintenanceStatus.NORMAL.name()).increase();
|
} 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())) {
|
//保养状态
|
statisticsMap.get(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name()).increase();
|
} else {
|
statisticsMap.get(EquipmentMaintenanceStatus.UNDER_INSPECTION.name()).increase();
|
}
|
}
|
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);
|
}
|
|
@ApiOperation(value = "看板接口-点检统计", notes = "看板接口-点检统计")
|
@GetMapping(value = "/equipmentInspectionStatistics")
|
public Result<?> equipmentInspectionStatistics(@RequestParam(required = false, value = "productionId") String productionId) {
|
//统计结束日期
|
LocalDate today = LocalDate.now();
|
LocalDate localDate = today.minusMonths(5);
|
//统计开始日期
|
LocalDate firstOfMonth = DateUtils.getFirstOfMonth(localDate);
|
|
//初始化返回值
|
Map<String, EquipmentInspectionStatistics> statisticsMap = new HashMap<>();
|
List<String> monthsBetween = DateUtils.getMonthsBetween(firstOfMonth, today);
|
monthsBetween.forEach(month -> {
|
statisticsMap.put(month, new EquipmentInspectionStatistics(month));
|
});
|
|
List<EquipmentInspectionStatistics> list = inspectionOrderService.equipmentInspectionStatistics(productionId, firstOfMonth, today);
|
for (EquipmentInspectionStatistics statistics : list) {
|
if (statisticsMap.containsKey(statistics.getMonthStr())) {
|
statisticsMap.put(statistics.getMonthStr(), statistics);
|
}
|
}
|
List<EquipmentInspectionStatistics> resultList = new ArrayList<>(statisticsMap.values());
|
//排序
|
resultList.sort(Comparator.comparing(EquipmentInspectionStatistics::getMonthStr));
|
return Result.ok(resultList);
|
}
|
|
@ApiOperation(value = "看板接口-周保统计", notes = "看板接口-周保统计")
|
@GetMapping(value = "/equipmentMaintenanceStatistics")
|
public Result<?> equipmentMaintenanceStatistics(@RequestParam(required = false, value = "productionId") String productionId) {
|
//统计结束日期
|
LocalDate today = LocalDate.now();
|
LocalDate localDate = today.minusMonths(5);
|
//统计开始日期
|
LocalDate firstOfMonth = DateUtils.getFirstOfMonth(localDate);
|
|
//初始化返回值
|
Map<String, EquipmentMaintenanceStatistics> statisticsMap = new HashMap<>();
|
List<String> monthsBetween = DateUtils.getMonthsBetween(firstOfMonth, today);
|
monthsBetween.forEach(month -> {
|
statisticsMap.put(month, new EquipmentMaintenanceStatistics(month));
|
});
|
|
List<EquipmentMaintenanceStatistics> list = weekMaintenanceOrderService.equipmentMaintenanceStatistics(productionId, firstOfMonth, today);
|
for (EquipmentMaintenanceStatistics statistics : list) {
|
if (statisticsMap.containsKey(statistics.getMonthStr())) {
|
statisticsMap.put(statistics.getMonthStr(), statistics);
|
}
|
}
|
List<EquipmentMaintenanceStatistics> resultList = new ArrayList<>(statisticsMap.values());
|
//排序
|
resultList.sort(Comparator.comparing(EquipmentMaintenanceStatistics::getMonthStr));
|
return Result.ok(resultList);
|
}
|
}
|