diff --git a/sk-module-datafill/src/main/java/com/skua/modules/report/service/impl/OperationReportServiceImpl.java b/sk-module-datafill/src/main/java/com/skua/modules/report/service/impl/OperationReportServiceImpl.java index 994c921..dd74096 100644 --- a/sk-module-datafill/src/main/java/com/skua/modules/report/service/impl/OperationReportServiceImpl.java +++ b/sk-module-datafill/src/main/java/com/skua/modules/report/service/impl/OperationReportServiceImpl.java @@ -1,5 +1,6 @@ package com.skua.modules.report.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.skua.common.constant.BusinessConstant; import com.skua.common.constant.ReportConstant; @@ -175,34 +176,46 @@ public class OperationReportServiceImpl implements IOperationReportService { // 翻译 Map<String, String> sysDepartDictMap = businessService.dictMap("sys_depart", null); + Map<String, String> sysUserDictMap = businessService.dictMap("sys_user", null); // 1. 重点工作事项:取重点事项推进情况里面,当月完成的重点事项记录 QueryWrapper<?> queryWrapper1 = new QueryWrapper<>(); queryWrapper1.eq("status", "2") .ge("end_time", startDate) .le("end_time", endDate); List<Map<String, Object>> queryMapList1 = baseService.queryForList("select * from f_major_issues_process", queryWrapper1); - for (Map<String, Object> item: queryMapList1) { - List<Map<String, Object>> priorityWorkItemList = new ArrayList<>(); - priorityWorkItemList.add(new HashMap<String, Object>(){{ - put("key0", item.get("depart_id")); - put("value0", sysDepartDictMap.get(item.get("depart_id"))); - }}); - productDataVO.setPriorityWorkItemList(priorityWorkItemList); - } + List<Map<String, Object>> priorityWorkItemList = queryMapList1.stream().map(item -> { + Map<String, Object> entityMap = item.keySet().stream().collect(Collectors.toMap(StrUtil::toCamelCase, key -> (item.get(key) == null ? "" : item.get(key)))); + entityMap.put("departName", sysDepartDictMap.get(item.get("depart_id"))); + return entityMap; + }).collect(Collectors.toList()); + productDataVO.setPriorityWorkItemList(priorityWorkItemList); // 2: 隐患排查巡检:取风险点巡检记录里面巡检类型是生产巡检的数据 QueryWrapper<?> queryWrapper2 = new QueryWrapper<>(); queryWrapper2.eq("inspection_type", "1") + .eq("status", "2") .ge("end_date", startDate + BusinessConstant.startTimeSuffix) .le("end_date", endDate + BusinessConstant.endTimeSuffix); List<Map<String, Object>> queryMapList2 = baseService.queryForList("select * from danger_inspection_record", queryWrapper2); - for (Map<String, Object> item: queryMapList2) { - List<Map<String, Object>> hiddenDangerInspectionList = new ArrayList<>(); - hiddenDangerInspectionList.add(new HashMap<String, Object>(){{ - put("key0", item.get("depart_id")); - put("value0", sysDepartDictMap.get(item.get("depart_id"))); - }}); - productDataVO.setHiddenDangerInspectionList(hiddenDangerInspectionList); + Map<String, String> recordId2CountMap; + if (!queryMapList2.isEmpty()) { + List<String> recordIdList = queryMapList2.stream().map(item -> ConvertUtils.getString(item.get("id"))).collect(Collectors.toList()); + QueryWrapper<?> tmpQueryWrapper = new QueryWrapper<>(); + tmpQueryWrapper.in("danger_inspection_record.id", recordIdList) + .eq("danger_inspection_item.status", "0") + .groupBy("danger_inspection_record.id"); + List<Map<String, Object>> tmpQueryMapList = baseService.queryForList("select danger_inspection_record.id as id, count(*) as total from danger_inspection_item left join danger_inspection_info on danger_inspection_item.inspection_info_id = danger_inspection_info.id left join danger_inspection_record on danger_inspection_info.inspection_record_id = danger_inspection_record.id", tmpQueryWrapper); + recordId2CountMap = tmpQueryMapList.stream().collect(Collectors.toMap(item -> ConvertUtils.getString(item.get("id")), item -> ConvertUtils.getString(item.get("total")))); + } else { + recordId2CountMap = new HashMap<>(); } + List<Map<String, Object>> hiddenDangerInspectionList = queryMapList2.stream().map(item -> { + Map<String, Object> entityMap = item.keySet().stream().collect(Collectors.toMap(StrUtil::toCamelCase, key -> (item.get(key) == null ? "" : item.get(key)))); + entityMap.put("departName", sysDepartDictMap.get(item.get("depart_id"))); + entityMap.put("realname", sysUserDictMap.get(item.get("report_user"))); + entityMap.put("exceptionCount", recordId2CountMap.getOrDefault(item.get("id"), "0")); + return entityMap; + }).collect(Collectors.toList()); + productDataVO.setHiddenDangerInspectionList(hiddenDangerInspectionList); return productDataVO; }