| | |
| | | |
| | | /** |
| | | * <p> |
| | | * 服务实现类 |
| | | * 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | |
| | | // 判断checkTime是否是本月的时间 |
| | | if (checkTime != null && YearMonth.from(checkTime).equals(YearMonth.now())) { |
| | | deviceListVo.setCheckResult("已检查"); |
| | | }else { |
| | | } else { |
| | | deviceListVo.setCheckResult("未检查"); |
| | | } |
| | | } |
| | |
| | | |
| | | |
| | | @Override |
| | | public List<EntrustProjectVo> projectList( Page<EntrustProjectVo> page,EntrustListQuery query) { |
| | | public List<EntrustProjectVo> projectList(Page<EntrustProjectVo> page, EntrustListQuery query) { |
| | | Integer pageNum = query.getPageNum(); |
| | | Integer pageSize = query.getPageSize(); |
| | | |
| | |
| | | if (query.getClientId() != null) { |
| | | projectWrapper.eq(Project::getClientId, query.getClientId()); |
| | | } |
| | | if (StringUtils.hasLength(query.getName())){ |
| | | if (StringUtils.hasLength(query.getName())) { |
| | | projectWrapper.like(Project::getName, query.getName()); |
| | | } |
| | | switch (query.getCategory()){ |
| | | switch (query.getCategory()) { |
| | | case 1: |
| | | // 查询在建资产项目 |
| | | projectWrapper.eq(Project::getDeleted, false) |
| | |
| | | .eq(Project::getStatus, 1) // 在建项目 |
| | | .or(w -> w |
| | | .eq(Project::getStatus, 2) // 已完成项目 |
| | | .between(Project::getSuccessTime, startTime,endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | .between(Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | ); |
| | | break; |
| | |
| | | .eq(Project::getStatus, 1) // 在建项目 |
| | | .or(w -> w |
| | | .eq(Project::getStatus, 2) // 已完成项目 |
| | | .between(Project::getSuccessTime, startTime,endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | .between(Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | ); |
| | | break; |
| | |
| | | |
| | | List<Project> projects = projectMapper.selectList(projectWrapper); |
| | | List<Integer> projectIds = projects.stream().map(Project::getId).collect(Collectors.toList()); |
| | | if (projectIds.isEmpty()){ |
| | | if (projectIds.isEmpty()) { |
| | | projectIds.add(-1); |
| | | } |
| | | query.setProjectIds(projectIds); |
| | |
| | | .eq(Task::getDeleted, false); |
| | | List<Task> taskList = taskMapper.selectList(taskWrapper); |
| | | List<Integer> checkTaskIds = taskList.stream().map(Task::getId).collect(Collectors.toList()); |
| | | if (checkTaskIds.isEmpty()){ |
| | | if (checkTaskIds.isEmpty()) { |
| | | checkTaskIds.add(-1); |
| | | } |
| | | // 查询重大隐患记录(level 表示隐患等级,0 表示重大隐患) |
| | |
| | | .in(Record::getCheckTaskId, checkTaskIds) |
| | | .eq(Record::getLevel, 0); // 重大隐患等级 |
| | | List<Integer> recordIds = new ArrayList<>(recordMapper.selectList(recordWrapper).stream().map(Record::getId).toList()); |
| | | if (recordIds.isEmpty()){ |
| | | if (recordIds.isEmpty()) { |
| | | recordIds.add(-1); |
| | | } |
| | | |
| | |
| | | .in(EvalResult::getCheckTaskId, checkTaskIds) |
| | | ).stream().collect(Collectors.groupingBy(EvalResult::getProjectId)); |
| | | List<Record> records = recordMapper.selectList(new LambdaQueryWrapper<Record>() |
| | | .in(Record::getId, recordIds) |
| | | .in(Record::getId, recordIds) |
| | | .eq(Record::getDeleted, false)); |
| | | List<EntrustProjectVo> deviceList = this.baseMapper.projectList(page,query); |
| | | List<EntrustProjectVo> deviceList = this.baseMapper.projectList(page, query); |
| | | for (EntrustProjectVo deviceListVo : deviceList) { |
| | | List<EvalResult> evalResults = resultMap.get(deviceListVo.getId()); |
| | | if (evalResults!=null){ |
| | | float temp =0; |
| | | // 计算安全检查平均分 |
| | | float avgSafetyScore = (float)evalResults.stream() |
| | | .filter(e -> e.getScore() != null) |
| | | .mapToDouble(EvalResult::getScore) |
| | | .average() |
| | | .orElse(0.0); |
| | | if (evalResults != null) { |
| | | float temp = 0; |
| | | // 计算安全检查平均分 |
| | | float avgSafetyScore = (float) evalResults.stream() |
| | | .filter(e -> e.getScore() != null) |
| | | .mapToDouble(EvalResult::getScore) |
| | | .average() |
| | | .orElse(0.0); |
| | | // 计算设备检查平均分(需要解析 device_res_map) |
| | | List<Float> deviceScores = evalResults.stream() |
| | | .filter(e -> StringUtils.hasText(e.getDeviceResMap())) |
| | |
| | | .toList(); |
| | | |
| | | if (!deviceScores.isEmpty()) { |
| | | float avgDeviceScore =(float) deviceScores.stream() |
| | | float avgDeviceScore = (float) deviceScores.stream() |
| | | .mapToDouble(Float::doubleValue) |
| | | .average() |
| | | .orElse(0.0); |
| | | temp = (avgSafetyScore + avgDeviceScore)/2; |
| | | temp = (avgSafetyScore + avgDeviceScore) / 2; |
| | | } |
| | | Integer clientId = projectMap.get(deviceListVo.getId()); |
| | | String s = clientParamMap.get(clientId); |
| | |
| | | String a = jsonObject.getString("a"); |
| | | String b = jsonObject.getString("b"); |
| | | String c = jsonObject.getString("c"); |
| | | if (temp>=Float.parseFloat( a)){ |
| | | if (temp >= Float.parseFloat(a)) { |
| | | deviceListVo.setRisk("A类"); |
| | | }else if (temp>=Float.parseFloat( b)){ |
| | | } else if (temp >= Float.parseFloat(b)) { |
| | | deviceListVo.setRisk("B类"); |
| | | }else if (temp>=Float.parseFloat( c)){ |
| | | } else if (temp >= Float.parseFloat(c)) { |
| | | deviceListVo.setRisk("C类"); |
| | | } |
| | | }else{ |
| | | } else { |
| | | deviceListVo.setRisk(null); |
| | | } |
| | | List<Task> tasks = taskMap.get(deviceListVo.getId()); |
| | | if (tasks!=null&&!tasks.isEmpty()){ |
| | | if (tasks != null && !tasks.isEmpty()) { |
| | | List<Integer> taskIds = tasks.stream().map(Task::getId).toList(); |
| | | List<Record> recordList = records.stream().filter(e -> taskIds.contains(e.getCheckTaskId())).toList(); |
| | | Record record = recordList.stream().max(Comparator.comparing(Record::getCreateTime)).orElse(null); |
| | | if (record!=null){ |
| | | if (record != null) { |
| | | deviceListVo.setCheckTime(record.getCreateTime()); |
| | | deviceListVo.setCheckResult("已检查"); |
| | | }else{ |
| | | } else { |
| | | deviceListVo.setCheckTime(null); |
| | | deviceListVo.setCheckResult("未检查"); |
| | | deviceListVo.setRisk(null); |
| | | } |
| | | }else{ |
| | | } else { |
| | | deviceListVo.setCheckTime(null); |
| | | deviceListVo.setCheckResult("未检查"); |
| | | deviceListVo.setRisk(null); |
| | |
| | | } |
| | | return deviceList; |
| | | } |
| | | |
| | | private static Float calculateDeviceScore(String deviceResMapJson) { |
| | | try { |
| | | // 1. 解析 JSON 字符串 |
| | |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<EntrustProjectReportVo> projectReport(Page<EntrustProjectReportVo> page, ProjectReportListQuery query) { |
| | | List<EntrustProjectReportVo> entrustProjectReportVoList = this.baseMapper.projectReport(page,query); |
| | | List<EntrustProjectReportVo> entrustProjectReportVoList = this.baseMapper.projectReport(page, query); |
| | | return entrustProjectReportVoList; |
| | | } |
| | | |
| | | @Override |
| | | public List<EntrustDeviceListVo> deviceList(Page<EntrustDeviceListVo> page, EntrustDeviceListQuery query) { |
| | | String startTime = query.getStartTime().replace("年","-").replace("月","-").replace("日","-"); |
| | | String startTime = query.getStartTime().replace("年", "-").replace("月", "-").replace("日", "-"); |
| | | String endTime = query.getEndTime(); |
| | | |
| | | // 查询在建工程项目(usage_type 表示项目用途类型,假设 0 表示在建工程) |
| | |
| | | if (query.getClientId() != null) { |
| | | projectWrapper.eq(Project::getClientId, query.getClientId()); |
| | | } |
| | | switch (query.getCategory()){ |
| | | switch (query.getCategory()) { |
| | | case 1: |
| | | // 查询在建资产项目 |
| | | projectWrapper.eq(Project::getDeleted, false) |
| | |
| | | .eq(Project::getStatus, 1) // 在建项目 |
| | | .or(w -> w |
| | | .eq(Project::getStatus, 2) // 已完成项目 |
| | | .between(Project::getSuccessTime, startTime,endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | .between(Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | ); |
| | | break; |
| | |
| | | .eq(Project::getStatus, 1) // 在建项目 |
| | | .or(w -> w |
| | | .eq(Project::getStatus, 2) // 已完成项目 |
| | | .between(Project::getSuccessTime, startTime,endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | .between(Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | ); |
| | | break; |
| | |
| | | query.setProjectIds(projectIds); |
| | | List<EntrustDeviceListVo> deviceList = this.baseMapper.deviceList(page, query); |
| | | List<Integer> deviceIds = deviceList.stream().map(EntrustDeviceListVo::getId).collect(Collectors.toList()); |
| | | if (deviceIds.isEmpty()){ |
| | | if (deviceIds.isEmpty()) { |
| | | deviceIds.add(-1); |
| | | } |
| | | LambdaQueryWrapper<Record> recordWrapper = new LambdaQueryWrapper<>(); |
| | |
| | | List<Record> records = recordMapper.selectList(recordWrapper); |
| | | List<Integer> deviceIdsRecord = records.stream().map(Record::getDeviceId).distinct().collect(Collectors.toList()); |
| | | for (EntrustDeviceListVo deviceListVo : deviceList) { |
| | | if (deviceIdsRecord.contains(deviceListVo.getId())){ |
| | | if (deviceIdsRecord.contains(deviceListVo.getId())) { |
| | | Record record = records.stream().filter(e -> e.getDeviceId().equals(deviceListVo.getId())).findFirst() |
| | | .orElse(null); |
| | | if (record!=null){ |
| | | if (record != null) { |
| | | deviceListVo.setCheckResult("已检查"); |
| | | deviceListVo.setCheckTime(record.getCreateTime()); |
| | | } |
| | | }else{ |
| | | } else { |
| | | deviceListVo.setCheckResult("未检查"); |
| | | deviceListVo.setCheckTime(null); |
| | | |
| | |
| | | |
| | | @Override |
| | | public List<ErrorListVo> errorList(Page<ErrorListVo> page, ErrorListQuery query) throws ParseException { |
| | | String startTime; |
| | | String endTime; |
| | | // 查询在建工程项目(usage_type 表示项目用途类型,假设 0 表示在建工程) |
| | | String startTime = query.getStartTime().replace("年","-").replace("月","-").replace("日","-"); |
| | | String endTime = query.getEndTime(); |
| | | if (StringUtils.hasLength(query.getStartTime())) { |
| | | startTime = query.getStartTime().replace("年", "-").replace("月", "-").replace("日", "-"); |
| | | endTime = query.getEndTime(); |
| | | } else { |
| | | endTime = ""; |
| | | startTime = ""; |
| | | } |
| | | LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<>(); |
| | | switch (query.getCategory()){ |
| | | switch (query.getCategory()) { |
| | | case 1: |
| | | // 查询在建资产项目 |
| | | projectWrapper.eq(Project::getDeleted, false) |
| | |
| | | .eq(Project::getStatus, 1) // 在建项目 |
| | | .or(w -> w |
| | | .eq(Project::getStatus, 2) // 已完成项目 |
| | | .between(Project::getSuccessTime, startTime,endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | |
| | | .between(StringUtils.hasLength(startTime),Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | ); |
| | | break; |
| | |
| | | .eq(Project::getStatus, 1) // 在建项目 |
| | | .or(w -> w |
| | | .eq(Project::getStatus, 2) // 已完成项目 |
| | | .between(Project::getSuccessTime, startTime,endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | .between(StringUtils.hasLength(startTime),Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | ); |
| | | break; |
| | |
| | | } |
| | | List<Project> projects = projectMapper.selectList(projectWrapper); |
| | | List<Integer> projectIds = projects.stream().map(Project::getId).collect(Collectors.toList()); |
| | | if (projectIds.isEmpty()){ |
| | | if (projectIds.isEmpty()) { |
| | | projectIds.add(-1); |
| | | } |
| | | // 查询检查任务 |
| | |
| | | |
| | | @Override |
| | | public List<ErrorListVo> deviceErrorList(Page<ErrorListVo> page, ErrorListQuery query) { |
| | | String startTime; |
| | | String endTime; |
| | | // 查询在建工程项目(usage_type 表示项目用途类型,假设 0 表示在建工程) |
| | | if (StringUtils.hasLength(query.getStartTime())) { |
| | | startTime = query.getStartTime().replace("年", "-").replace("月", "-").replace("日", "-"); |
| | | endTime = query.getEndTime(); |
| | | } else { |
| | | endTime = ""; |
| | | startTime = ""; |
| | | } |
| | | LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<>(); |
| | | switch (query.getCategory()) { |
| | | case 1: |
| | | // 查询在建资产项目 |
| | | projectWrapper.eq(Project::getDeleted, false) |
| | | .ne(Project::getType, 2) // 在建工程 |
| | | .and(wrapper -> wrapper |
| | | .eq(Project::getStatus, 1) // 在建项目 |
| | | .or(w -> w |
| | | .eq(Project::getStatus, 2) // 已完成项目 |
| | | |
| | | .between(StringUtils.hasLength(startTime),Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | ); |
| | | break; |
| | | case 2: |
| | | // 查询固定资产项目 |
| | | projectWrapper.eq(Project::getDeleted, false) |
| | | .eq(Project::getType, 2) // 在建工程 |
| | | .and(wrapper -> wrapper |
| | | .eq(Project::getStatus, 1) // 在建项目 |
| | | .or(w -> w |
| | | .eq(Project::getStatus, 2) // 已完成项目 |
| | | .between(StringUtils.hasLength(startTime),Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | ); |
| | | break; |
| | | } |
| | | if (query.getClientId() != null) { |
| | | projectWrapper.eq(Project::getClientId, query.getClientId()); |
| | | } |
| | | List<Project> projects = projectMapper.selectList(projectWrapper); |
| | | List<Integer> projectIds = projects.stream().map(Project::getId).collect(Collectors.toList()); |
| | | if (projectIds.isEmpty()){ |
| | | if (projectIds.isEmpty()) { |
| | | projectIds.add(-1); |
| | | } |
| | | // 查询检查任务 |
| | |
| | | List<Integer> recordIds = recordMapper.selectList(recordWrapper).stream().map(Record::getId).toList(); |
| | | query.setRecordIds(recordIds); |
| | | List<ErrorListVo> errorList = this.baseMapper.deviceErrorList(page, query); |
| | | return errorList; } |
| | | return errorList; |
| | | } |
| | | |
| | | @Override |
| | | public List<ErrorListVo> safetyErrorList(Page<ErrorListVo> page, ErrorListQuery query) { |
| | | String startTime; |
| | | String endTime; |
| | | // 查询在建工程项目(usage_type 表示项目用途类型,假设 0 表示在建工程) |
| | | if (StringUtils.hasLength(query.getStartTime())) { |
| | | startTime = query.getStartTime().replace("年", "-").replace("月", "-").replace("日", "-"); |
| | | endTime = query.getEndTime(); |
| | | } else { |
| | | endTime = ""; |
| | | startTime = ""; |
| | | } |
| | | LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<>(); |
| | | switch (query.getCategory()) { |
| | | case 1: |
| | | // 查询在建资产项目 |
| | | projectWrapper |
| | | // .eq(Project::getDeleted, false) |
| | | .ne(Project::getType, 2) // 在建工程 |
| | | .and(wrapper -> wrapper |
| | | .eq(Project::getStatus, 1) // 在建项目 |
| | | .or(w -> w |
| | | .eq(Project::getStatus, 2) // 已完成项目 |
| | | .between(StringUtils.hasLength(startTime),Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | .or(w -> w |
| | | .isNull(Project::getStatus) // 已完成项目 |
| | | .between(StringUtils.hasLength(startTime),Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | ); |
| | | break; |
| | | case 2: |
| | | // 查询固定资产项目 |
| | | projectWrapper |
| | | // .eq(Project::getDeleted, false) |
| | | .eq(Project::getType, 2) // 在建工程 |
| | | .and(wrapper -> wrapper |
| | | .eq(Project::getStatus, 1) // 在建项目 |
| | | .or(w -> w |
| | | .eq(Project::getStatus, 2) // 已完成项目 |
| | | .between(StringUtils.hasLength(startTime),Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | .or(w -> w |
| | | .isNull(Project::getStatus) // 已完成项目 |
| | | // .between(StringUtils.hasLength(startTime),Project::getSuccessTime, startTime, endTime) // 完成时间 >= 开始日期// 完成时间 <= 结束日期 |
| | | ) |
| | | ); |
| | | break; |
| | | } |
| | | if (query.getClientId() != null) { |
| | | projectWrapper.eq(Project::getClientId, query.getClientId()); |
| | | } |
| | | List<Project> projects = projectMapper.selectList(projectWrapper); |
| | | List<Integer> projectIds = projects.stream().map(Project::getId).collect(Collectors.toList()); |
| | | if (projectIds.isEmpty()){ |
| | | if (projectIds.isEmpty()) { |
| | | projectIds.add(-1); |
| | | } |
| | | // 查询检查任务 |
| | | LambdaQueryWrapper<Task> taskWrapper = new LambdaQueryWrapper<>(); |
| | | taskWrapper.in(Task::getProjectId, projectIds) |
| | | .eq(Task::getDeleted, false); |
| | | ; |
| | | List<Task> tasks = taskMapper.selectList(taskWrapper); |
| | | List<Integer> checkTaskIds = tasks.stream().map(Task::getId).collect(Collectors.toList()); |
| | | |
| | | // 查询重大隐患记录(level 表示隐患等级,0 表示重大隐患) |
| | | LambdaQueryWrapper<Record> recordWrapper = new LambdaQueryWrapper<>(); |
| | | recordWrapper.eq(Record::getDeleted, false) |
| | | .eq(Record::getRecordType,"error") |
| | | .in(Record::getCheckTaskId, checkTaskIds); |
| | | List<Integer> recordIds = recordMapper.selectList(recordWrapper).stream().map(Record::getId).toList(); |
| | | query.setRecordIds(recordIds); |
| | | List<ErrorListVo> errorList = this.baseMapper.safetyErrorList(page, query); |
| | | return errorList; } |
| | | return errorList; |
| | | } |
| | | |
| | | |
| | | } |