| | |
| | | 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.vo.EquipmentRepairStatistics; |
| | | import org.jeecg.modules.eam.vo.EquipmentStatusStatistics; |
| | | 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.*; |
| | | |
| | |
| | | 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") |
| | |
| | | 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; |
| | | } |
| | | } |