| | |
| | | Client client = clientService.getById(project.getClientId()); |
| | | ClientParam param = clientParamService.getOne(new LambdaQueryWrapper<ClientParam>().eq(ClientParam::getClientId, client.getId())); |
| | | if(param!=null){ |
| | | screenUserVo.setLogo(param.getLogo()); |
| | | screenUserVo.setName(param.getName()); |
| | | screenUserVo.setCommentType(param.getCommentType()); |
| | | screenUserVo.setSafetyId(param.getSafetyId()); |
| | | String name = clientParamService.getTemplateName(param.getSafetyId()); |
| | |
| | | screenUserVo.setBigHiddenDanger(param.getBigHiddenDanger()); |
| | | screenUserVo.setGeneralHiddenDanger(param.getGeneralHiddenDanger()); |
| | | } |
| | | screenUserVo.setName(project.getName()); |
| | | screenUserVo.setProjectName(project.getName()); |
| | | screenUserVo.setPermissionProject(project.getPermission()); |
| | | } |
| | | |
| | |
| | | @ApiModelProperty("隐患类型 1=安全 2=设备") |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty("隐患等级") |
| | | private Integer level; |
| | | |
| | | @ApiModelProperty("隐患类型 1=重大 2=其他") |
| | | private Integer category; |
| | | |
| | | @ApiModelProperty("整改情况 0未整改 1部分整改 2已整改") |
| | | private Integer reformed; |
| | | |
| | | @ApiModelProperty("整改情况 0未整改 1部分整改 2已整改 3未复查") |
| | | private Integer state; |
| | | |
| | | @ApiModelProperty("开始时间") |
| | | private String startTime; |
| | | |
| | |
| | | // 解析 address_info JSON 字符串 |
| | | JSONObject addressJson = JSON.parseObject(p.getAddressInfo()); |
| | | JSONArray gps = addressJson.getJSONArray("gps"); |
| | | String lonLat = addressJson.getString("lonLat"); |
| | | |
| | | if (gps != null && gps.size() >= 2) { |
| | | ProjectMapPointVO vo = new ProjectMapPointVO(); |
| | |
| | | vo.setCategory(categoryMap.get(p.getId())); |
| | | |
| | | result.add(vo); |
| | | }else if(org.apache.commons.lang3.StringUtils.isNotBlank(lonLat)){ |
| | | String[] split = lonLat.split(","); |
| | | ProjectMapPointVO vo = new ProjectMapPointVO(); |
| | | vo.setProjectId(p.getId()); |
| | | vo.setProjectName(p.getName()); |
| | | vo.setProjectType(p.getType()); |
| | | |
| | | // gps 数组格式:[经度, 纬度] |
| | | vo.setLongitude(split[0]); |
| | | vo.setLatitude(split[1]); |
| | | //位置信息 |
| | | vo.setAddressInfo(addressJson); |
| | | // 设置项目类别 |
| | | vo.setCategory(categoryMap.get(p.getId())); |
| | | |
| | | result.add(vo); |
| | | } |
| | | } catch (Exception e) { |
| | | // 解析失败则跳过该项目 |
| | |
| | | .isNotNull(ClientParam::getUnderConstructionProject)) |
| | | .stream().collect(Collectors.toMap(ClientParam::getClientId, ClientParam::getUnderConstructionProject)); |
| | | Map<Integer, String> assetParamMap = clientParamMapper.selectList(new LambdaQueryWrapper<ClientParam>() |
| | | .isNotNull(ClientParam::getAssetProject)) |
| | | .isNotNull(ClientParam::getAssetProject)) |
| | | .stream().collect(Collectors.toMap(ClientParam::getClientId, ClientParam::getAssetProject)); |
| | | Map<Integer, List<Task>> taskMap = taskMapper.selectList(new LambdaQueryWrapper<Task>() |
| | | .ge(Task::getCreateTime, startTime) |
| | |
| | | |
| | | // 查询重大隐患记录(level 表示隐患等级,0 表示重大隐患) |
| | | LambdaQueryWrapper<Record> recordWrapperPro = new LambdaQueryWrapper<>(); |
| | | recordWrapperPro.eq(Record::getDeleted, false) |
| | | .in(Record::getCheckTaskId, checkTaskIdsPro) |
| | | if(checkTaskIdsPro.size()>0){ |
| | | recordWrapperPro.eq(Record::getDeleted, false) |
| | | .in(Record::getCheckTaskId, checkTaskIdsPro); |
| | | } |
| | | ; // 重大隐患等级 |
| | | List<Record> records1 = recordMapper.selectList(recordWrapperPro); |
| | | // long c1 = records1.stream().filter(e -> e.getLevel() != null && e.getLevel() == 0).count(); |
| | |
| | | |
| | | // List<Record> recordList = records.stream().filter(e -> taskIds.contains(e.getCheckTaskId())).toList(); |
| | | // Record record = recordList.stream().max(Comparator.comparing(Record::getCreateTime)).orElse(null); |
| | | if (task1 != null && task1.getState()==3) { |
| | | if (task1 != null && task1.getState() == 3) { |
| | | deviceListVo.setCheckTime(task1.getDate().atStartOfDay()); |
| | | deviceListVo.setCheckResult("已检查"); |
| | | } else { |
| | |
| | | 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) // 已完成项目 |
| | | if(query.getCategory()!=null) { |
| | | 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; |
| | | .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()); |
| | |
| | | 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) // 已完成项目 |
| | | if (query.getCategory() != null) { |
| | | |
| | | .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; |
| | | |
| | | 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()); |
| | |
| | | startTime = ""; |
| | | } |
| | | LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<>(); |
| | | switch (query.getCategory()) { |
| | | case 1: |
| | | // 查询在建资产项目 |
| | | projectWrapper |
| | | if(query.getCategory()!=null) { |
| | | 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 |
| | | .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) // 已完成项目 |
| | | .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; |
| | | ) |
| | | ); |
| | | break; |
| | | } |
| | | } |
| | | if (query.getClientId() != null) { |
| | | projectWrapper.eq(Project::getClientId, query.getClientId()); |
| | |
| | | @ApiModelProperty("检查时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private LocalDateTime checkTime; |
| | | |
| | | //0未整改 1部分整改 2已整改 3未复查 |
| | | @ApiModelProperty("整改情况0未复查1-未整改 2-部分整改 3-已整改") |
| | | private Integer state; |
| | | @ApiModelProperty("责任人") |
| | |
| | | |
| | | @ApiModelProperty(value = "1开启 2关闭 一般隐患") |
| | | private Integer generalHiddenDanger; |
| | | |
| | | @ApiModelProperty(value = "项目名称") |
| | | private String projectName; |
| | | } |
| | |
| | | <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.description as problemName,IF(t1.device_id is null ,1,2) as type,t2.create_time as checkTime |
| | | ,IF(t6.state is null,0,t6.state+1) as state |
| | | , |
| | | case |
| | | when t6.id is null then 3 |
| | | else t6.state |
| | | end 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 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"> |
| | | <if test="query.recordIds != null and query.recordIds.size()>0 "> |
| | | and t1.id in |
| | | <foreach item="item" index="index" collection="query.recordIds" open="(" separator="," close=")"> |
| | | #{item} |
| | |
| | | <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 t2.create_time >= #{query.startTime} |
| | | </if> |
| | | <if test="query.endTime != null and query.endTime !='' "> |
| | | and #{query.endTime} >= t2.create_time |
| | | </if> |
| | | |
| | | <if test="query.content!= null and query.content!=''"> |
| | | and (t3.name like CONCAT('%', #{query.content}, '%') |
| | | or |
| | | t5.name like CONCAT('%', #{query.content}, '%') |
| | | or |
| | | t5.description like CONCAT('%', #{query.content}, '%') |
| | | or |
| | | t1.hierarchy_name like CONCAT('%', #{query.content}, '%') |
| | | or |
| | | t1.remark like CONCAT('%', #{query.content}, '%') |
| | | ) |
| | |
| | | <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.description as problemName,IF(t1.device_id is null ,1,2) as type,t1.create_time as checkTime |
| | | ,IF(t6.state is null,0,t6.state+1) as state |
| | | , case |
| | | when t6.id is null then 3 |
| | | else t6.state |
| | | end 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 |
| | |
| | | <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.description as problemName,IF(t1.device_id is null ,1,2) as type,t1.create_time as checkTime |
| | | ,IF(t6.state is null,0,t6.state+1) as state |
| | | , case |
| | | when t6.id is null then 3 |
| | | else t6.state |
| | | end 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 |
| | |
| | | <result column="permission" property="permission" /> |
| | | </resultMap> |
| | | <select id="getDeviceDetailCheckList" resultType="com.ruoyi.system.vo.DeviceDetailCheckListVo"> |
| | | select t1.id,t2.name planName,t2.type planType,t1.date checkTime,t1.system_fuzzy fuzzyScore,t1.system_score score,t3.risk_level riskLevel, |
| | | t3.contain_device_res ,t3.contain_system_res,t2.id planId |
| | | from task t1 |
| | | left join plan t2 on t1.plan_id = t2.id |
| | | left join eval_result t3 on t1.id = t3.check_task_id |
| | | where t1.project_id = #{query.projectId} |
| | | <if test="query.planName != null and query.planName != ''"> |
| | | and t2.name like concat('%',#{query.planName},'%') |
| | | </if> |
| | | <if test="query.planType != null"> |
| | | and t2.type = #{query.planType} |
| | | </if> |
| | | <if test="query.startTime != null and query.startTime != ''"> |
| | | and t1.date >= #{query.startTime} |
| | | </if> |
| | | <if test="query.endTime != null and query.endTime != ''"> |
| | | and #{query.endTime} >=t1.date |
| | | </if> |
| | | GROUP BY t2.id |
| | | order by t1.date desc |
| | | SELECT |
| | | t1.id AS id, |
| | | t2.id AS planId, |
| | | t2.name AS planName, |
| | | t2.type AS planType, |
| | | MAX(t1.date) AS checkTime, |
| | | -- 从eval_result表获取风险等级(取fuzzy类型的) |
| | | MAX(CASE WHEN t3.type = 'fuzzy' THEN t3.risk_level END) AS riskLevel, |
| | | -- 从eval_result表获取设备资源(取fuzzy类型的) |
| | | MAX(CASE WHEN t3.type = 'fuzzy' THEN t3.contain_device_res END) AS contain_device_res, |
| | | -- 从eval_result表获取系统资源(取fuzzy类型的) |
| | | MAX(CASE WHEN t3.type = 'fuzzy' THEN t3.contain_system_res END) AS contain_system_res, |
| | | -- 将fuzzy类型的分数放到fuzzyScore字段,保留4位小数 |
| | | ROUND(MAX(CASE WHEN t3.type = 'fuzzy' THEN t3.score END), 4) AS fuzzyScore, |
| | | -- 将score类型的分数放到score字段,保留4位小数 |
| | | ROUND(MAX(CASE WHEN t3.type = 'score' THEN t3.score END), 4) AS score, |
| | | -- 也可以获取score类型的风险等级(如果需要) |
| | | MAX(CASE WHEN t3.type = 'score' THEN t3.risk_level END) AS scoreRiskLevel |
| | | FROM task t1 |
| | | LEFT JOIN plan t2 ON t1.plan_id = t2.id |
| | | LEFT JOIN eval_result t3 ON t1.id = t3.check_task_id |
| | | WHERE t1.project_id = #{query.projectId} |
| | | <if test="query.planName != null and query.planName != ''"> |
| | | AND t2.name LIKE CONCAT('%', #{query.planName}, '%') |
| | | </if> |
| | | <if test="query.planType != null"> |
| | | AND t2.type = #{query.planType} |
| | | </if> |
| | | <if test="query.startTime != null and query.startTime != ''"> |
| | | AND t1.date >= #{query.startTime} |
| | | </if> |
| | | <if test="query.endTime != null and query.endTime != ''"> |
| | | AND t1.date <= #{query.endTime} |
| | | </if> |
| | | GROUP BY t2.id, t2.name, t2.type |
| | | HAVING t2.id IS NOT NULL |
| | | ORDER BY MAX(t1.date) DESC |
| | | |
| | | |
| | | </select> |
| | |
| | | #{item} |
| | | </foreach> |
| | | |
| | | <if test="query.type == null"> |
| | | <if test="query.category==1"> |
| | | and t1.level = 0 |
| | | </if> |
| | | <if test="query.content != null"> |
| | | and t1.hierarchy_name like concat('%',#{query.content},'%') |
| | | and (t1.hierarchy_name like concat('%',#{query.content},'%') or t2.description like concat('%',#{query.content},'%')) |
| | | </if> |
| | | <if test="query.startTime != null and query.startTime !='' and query.endTime!=null and query.endTime !=''"> |
| | | and t1.create_time between #{query.startTime} and #{query.endTime} |
| | | </if> |
| | | |
| | | ) as o where 1=1 |
| | | <if test="query.reformed != null"> |
| | | and o.state = #{query.reformed} |
| | | <if test="query.state != null"> |
| | | and o.state = #{query.state} |
| | | </if> |
| | | <if test="query.type != null"> |
| | | and o.type = #{query.type} |
| | | </if> |
| | | <if test="query.level != null"> |
| | | and o.level = #{query.level} |
| | | </if> |
| | | order by o.create_time desc |
| | | </select> |
| | | |