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;
|
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.*;
|
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.*;
|
|
@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;
|
@Resource
|
private ObjectMapper objectMapper;
|
|
@Resource
|
private TranslateDictTextUtils translateDictTextUtils;
|
|
@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);
|
}
|
|
@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;
|
}
|
}
|