| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.system.mapper.DeviceUsageMapper; |
| | | import com.ruoyi.system.mapper.EvalResultMapper; |
| | | import com.ruoyi.system.model.DeviceUsage; |
| | | import com.ruoyi.system.model.EvalResult; |
| | | import com.ruoyi.system.mapper.*; |
| | | import com.ruoyi.system.model.*; |
| | | import com.ruoyi.system.model.Record; |
| | | import com.ruoyi.system.query.*; |
| | | import com.ruoyi.system.service.ClientParamService; |
| | | import com.ruoyi.system.service.DeviceUsageService; |
| | | import com.ruoyi.system.vo.*; |
| | | import com.ruoyi.system.vo.DeviceCountVo; |
| | |
| | | import java.time.LocalDateTime; |
| | | import java.time.YearMonth; |
| | | import java.util.ArrayList; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | |
| | | |
| | | @Autowired |
| | | private EvalResultMapper evalResultMapper; |
| | | @Autowired |
| | | private ProjectMapper projectMapper; |
| | | @Autowired |
| | | private ClientParamMapper clientParamMapper; |
| | | @Autowired |
| | | private TaskMapper taskMapper; |
| | | @Autowired |
| | | private RecordMapper recordMapper; |
| | | |
| | | @Override |
| | | public List<String> getDeviceUsageList(Integer id) { |
| | |
| | | .ge(EvalResult::getCreateTime, startTime) |
| | | .le(EvalResult::getCreateTime, LocalDateTime.now()) |
| | | ).stream().collect(Collectors.groupingBy(EvalResult::getProjectId)); |
| | | Map<Integer, Integer> projectMap = projectMapper.selectList(new LambdaQueryWrapper<Project>() |
| | | .eq(Project::getDeleted, false)).stream().collect(Collectors.toMap(Project::getId, Project::getClientId)); |
| | | Map<Integer, String> clientParamMap = clientParamMapper.selectList(new LambdaQueryWrapper<ClientParam>()) |
| | | .stream().collect(Collectors.toMap(ClientParam::getClientId, ClientParam::getUnderConstructionProject)); |
| | | Map<Integer, List<Task>> taskMap = taskMapper.selectList(new LambdaQueryWrapper<Task>()) |
| | | .stream().collect(Collectors.groupingBy(Task::getProjectId)); |
| | | List<Record> records = recordMapper.selectList(new LambdaQueryWrapper<Record>() |
| | | .eq(Record::getDeleted, false)); |
| | | // 获取本月第一天凌晨 |
| | | List<EntrustProjectVo> deviceList = this.baseMapper.projectList(page,query); |
| | | for (EntrustProjectVo deviceListVo : deviceList) { |
| | |
| | | .orElse(0.0); |
| | | temp = (avgSafetyScore + avgDeviceScore)/2; |
| | | } |
| | | // todo 查询项目所属委托人风险等级参数设置 |
| | | Integer clientId = projectMap.get(deviceListVo.getId()); |
| | | String s = clientParamMap.get(clientId); |
| | | JSONObject jsonObject = JSON.parseObject(s); |
| | | String a = jsonObject.getString("a"); |
| | | String b = jsonObject.getString("b"); |
| | | String c = jsonObject.getString("c"); |
| | | if (temp>=Float.parseFloat( a)){ |
| | | deviceListVo.setRisk("A类"); |
| | | |
| | | }else{ |
| | | }else if (temp>=Float.parseFloat( b)){ |
| | | deviceListVo.setRisk("B类"); |
| | | }else if (temp>=Float.parseFloat( c)){ |
| | | deviceListVo.setRisk("C类"); |
| | | } |
| | | LocalDateTime checkTime = deviceListVo.getCheckTime(); |
| | | // 判断checkTime是否是本月的时间 |
| | | if (checkTime != null && YearMonth.from(checkTime).equals(YearMonth.now())) { |
| | | }else{ |
| | | deviceListVo.setRisk(null); |
| | | } |
| | | List<Task> tasks = taskMap.get(deviceListVo.getId()); |
| | | 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())).collect(Collectors.toList()); |
| | | Record record = recordList.stream().max(Comparator.comparing(Record::getCreateTime)).orElse(null); |
| | | if (record!=null){ |
| | | deviceListVo.setCheckTime(record.getCreateTime()); |
| | | deviceListVo.setCheckResult("已检查"); |
| | | }else { |
| | | deviceListVo.setCheckTime(null); |
| | | deviceListVo.setCheckResult("未检查"); |
| | | deviceListVo.setRisk(null); |
| | | } |
| | | }else{ |
| | | deviceListVo.setCheckTime(null); |
| | | deviceListVo.setCheckResult("未检查"); |
| | | deviceListVo.setRisk(null); |
| | | } |
| | | } |
| | | return deviceList; |
| | |
| | | |
| | | @Override |
| | | public List<ErrorListVo> errorList(Page<ErrorListVo> page, ErrorListQuery query) { |
| | | // 查询在建工程项目(usage_type 表示项目用途类型,假设 0 表示在建工程) |
| | | LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<>(); |
| | | 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()){ |
| | | 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) |
| | | .in(Record::getCheckTaskId, checkTaskIds) |
| | | .eq(Record::getLevel, 0); // 重大隐患等级 |
| | | List<Integer> recordIds = recordMapper.selectList(recordWrapper).stream().map(Record::getId).toList(); |
| | | query.setRecordIds(recordIds); |
| | | List<ErrorListVo> errorList = this.baseMapper.errorList(page, query); |
| | | return errorList; |
| | | } |
| | | |
| | | @Override |
| | | public List<ErrorListVo> deviceErrorList(Page<ErrorListVo> page, ErrorListQuery query) { |
| | | // 查询在建工程项目(usage_type 表示项目用途类型,假设 0 表示在建工程) |
| | | LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<>(); |
| | | 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()){ |
| | | 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) |
| | | .in(Record::getCheckTaskId, checkTaskIds) |
| | | .eq(Record::getLevel, 0); // 重大隐患等级 |
| | | List<Integer> recordIds = recordMapper.selectList(recordWrapper).stream().map(Record::getId).toList(); |
| | | query.setRecordIds(recordIds); |
| | | List<ErrorListVo> errorList = this.baseMapper.deviceErrorList(page, query); |
| | | return errorList; } |
| | | |
| | | @Override |
| | | public List<ErrorListVo> safetyErrorList(Page<ErrorListVo> page, ErrorListQuery query) { |
| | | // 查询在建工程项目(usage_type 表示项目用途类型,假设 0 表示在建工程) |
| | | LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<>(); |
| | | 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()){ |
| | | 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) |
| | | .in(Record::getCheckTaskId, checkTaskIds) |
| | | .eq(Record::getLevel, 0); // 重大隐患等级 |
| | | List<Integer> recordIds = recordMapper.selectList(recordWrapper).stream().map(Record::getId).toList(); |
| | | query.setRecordIds(recordIds); |
| | | List<ErrorListVo> errorList = this.baseMapper.safetyErrorList(page, query); |
| | | return errorList; } |
| | | |