ruoyi-system/src/main/java/com/ruoyi/system/query/ErrorListQuery.java
@@ -19,8 +19,8 @@ private List<Integer> projectIds; @ApiModelProperty("检查ids") private List<Integer> recordIds; @ApiModelProperty("整改情况 true已整改 false未整改") private Boolean reformed; @ApiModelProperty("整改情况0未复查1-未整改 2-部分整改 3-已整改") private Integer state; @ApiModelProperty("隐患类型 1安全 2设备") private Integer type; @ApiModelProperty("clientId") ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java
@@ -224,6 +224,7 @@ } return deviceList; } private static Float calculateDeviceScore(String deviceResMapJson) { try { // 1. 解析 JSON 字符串 @@ -293,6 +294,7 @@ return null; } } @Override public List<EntrustProjectReportVo> projectReport(Page<EntrustProjectReportVo> page, ProjectReportListQuery query) { List<EntrustProjectReportVo> entrustProjectReportVoList = this.baseMapper.projectReport(page,query); @@ -376,9 +378,16 @@ @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()){ case 1: @@ -389,7 +398,8 @@ .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; @@ -401,7 +411,7 @@ .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; @@ -434,8 +444,44 @@ @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()); } @@ -458,12 +504,58 @@ 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()); } @@ -475,18 +567,20 @@ // 查询检查任务 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; } } ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml
@@ -57,7 +57,7 @@ group by device_id ) latest on t2.id = latest.device_id left join project t3 on t1.project_id = t3.id where 1=1 where t1.deleted = 0 <if test="query.projectId != null"> and t1.project_id = #{query.projectId} </if> @@ -73,12 +73,7 @@ <if test="query.content!= null and query.content!=''"> and t2.name like CONCAT('%', #{query.content}, '%') </if> <if test="query.startTime != null and query.startTime != ''"> and latest.record_time >= #{query.startTime} </if> <if test="query.endTime != null and query.endTime != ''"> and #{query.endTime} >=latest.record_time </if> order by latest.record_time desc </select> <select id="projectList" resultType="com.ruoyi.system.vo.EntrustProjectVo"> @@ -129,11 +124,13 @@ <select id="errorList" resultType="com.ruoyi.system.vo.ErrorListVo"> select t1.*,t2.project_id,t2.plan_id,t3.`name` as projectName,t4.`name` as planName ,t5.`name` as problemName,IF(t1.device_id is null ,1,2) as type,t1.create_time as checkTime ,t6.state as state from record t1 LEFT JOIN task t2 on t1.check_task_id = t2.id LEFT JOIN project t3 on t2.project_id = t3.id LEFT JOIN plan t4 on t2.plan_id = t4.id LEFT JOIN problem t5 ON t1.problem_id = t5.id left join error_review t6 on t1.error_review_id = t6.id where t1.deleted = 0 and t2.deleted = 0 and t1.`level` =0 <if test="query.recordIds != null"> and t1.id in @@ -145,8 +142,17 @@ <if test="query.projectId != null"> and t2.project_id = #{query.projectId} </if> <if test="query.reformed != null"> and t1.reformed = #{query.reformed} <if test="query.state ==0 "> and t6.state is null </if> <if test="query.state ==1 "> and t6.state = #{query.state} </if> <if test="query.state ==2 "> and t6.state = #{query.state} </if> <if test="query.state ==3 "> and t6.state = #{query.state} </if> <if test="query.type != null and query.type == 1"> and t1.device_id is null @@ -154,12 +160,7 @@ <if test="query.type != null and query.type == 2"> and t1.device_id is not null </if> <if test="query.startTime != null and query.startTime != ''"> and t1.create_time >= #{query.startTime} </if> <if test="query.endTime != null and query.endTime != ''"> and #{query.endTime} >=t1.create_time </if> <if test="query.content!= null and query.content!=''"> and (t3.name like CONCAT('%', #{query.content}, '%') or @@ -173,11 +174,14 @@ <select id="deviceErrorList" resultType="com.ruoyi.system.vo.ErrorListVo"> select t1.*,t2.project_id,t2.plan_id,t3.`name` as projectName,t4.`name` as planName ,t5.`name` as problemName,IF(t1.device_id is null ,1,2) as type,t1.create_time as checkTime ,t6.state as state from record t1 LEFT JOIN task t2 on t1.check_task_id = t2.id LEFT JOIN project t3 on t2.project_id = t3.id LEFT JOIN plan t4 on t2.plan_id = t4.id LEFT JOIN problem t5 ON t1.problem_id = t5.id left join error_review t6 on t1.error_review_id = t6.id where t1.deleted = 0 and t2.deleted = 0 and t1.device_id is not null <if test="query.recordIds != null"> and t1.id in @@ -188,16 +192,19 @@ <if test="query.projectId != null"> and t2.project_id = #{query.projectId} </if> <if test="query.reformed != null"> and t1.reformed = #{query.reformed} <if test="query.state ==0 "> and t6.state is null </if> <if test="query.state ==1 "> and t6.state = #{query.state} </if> <if test="query.state ==2 "> and t6.state = #{query.state} </if> <if test="query.state ==3 "> and t6.state = #{query.state} </if> <if test="query.startTime != null and query.startTime != ''"> and t1.create_time >= #{query.startTime} </if> <if test="query.endTime != null and query.endTime != ''"> and #{query.endTime} >=t1.create_time </if> <if test="query.content!= null and query.content!=''"> and (t3.name like CONCAT('%', #{query.content}, '%') or @@ -211,12 +218,15 @@ <select id="safetyErrorList" resultType="com.ruoyi.system.vo.ErrorListVo"> select t1.*,t2.project_id,t2.plan_id,t3.`name` as projectName,t4.`name` as planName ,t5.`name` as problemName,IF(t1.device_id is null ,1,2) as type,t1.create_time as checkTime ,t6.state as state from record t1 LEFT JOIN task t2 on t1.check_task_id = t2.id LEFT JOIN project t3 on t2.project_id = t3.id LEFT JOIN plan t4 on t2.plan_id = t4.id LEFT JOIN problem t5 ON t1.problem_id = t5.id where t1.deleted = 0 and t2.deleted = 0 and t1.device_id is null left join error_review t6 on t1.error_review_id = t6.id where t1.deleted = 0 and t1.device_id is null <if test="query.recordIds != null"> and t1.id in <foreach item="item" index="index" collection="query.recordIds" open="(" separator="," close=")"> @@ -226,16 +236,19 @@ <if test="query.projectId != null"> and t2.project_id = #{query.projectId} </if> <if test="query.reformed != null"> and t1.reformed = #{query.reformed} <if test="query.state ==0 "> and t6.state is null </if> <if test="query.state ==1 "> and t6.state = #{query.state} </if> <if test="query.state ==2 "> and t6.state = #{query.state} </if> <if test="query.state ==3 "> and t6.state = #{query.state} </if> <if test="query.startTime != null and query.startTime != ''"> and t1.create_time >= #{query.startTime} </if> <if test="query.endTime != null and query.endTime != ''"> and #{query.endTime} >=t1.create_time </if> <if test="query.content!= null and query.content!=''"> and (t3.name like CONCAT('%', #{query.content}, '%') or