1.环境分析

This commit is contained in:
方亮 2025-10-17 11:26:19 +08:00
parent 6fc9618152
commit 245643b277
6 changed files with 204 additions and 0 deletions

View File

@ -0,0 +1,51 @@
package com.securitycontrol.screen.controller;
import com.securitycontrol.common.core.web.controller.BaseController;
import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.common.core.web.page.TableDataInfo;
import com.securitycontrol.screen.domain.SjProjectEnvironment;
import com.securitycontrol.screen.domain.SjProjectSafety;
import com.securitycontrol.screen.service.SjProjectEnvironmentService;
import com.securitycontrol.screen.service.SjProjectSafetyService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* 工程环境监测分析-控制层
*
* @author fly
*/
@RestController
@RequestMapping("/proEnvironment")
@Slf4j
public class SjProjectEnvironmentController extends BaseController {
/**
* 服务对象
*/
@Resource
private SjProjectEnvironmentService service;
/**
* 工程安全分析-球机列表
*
* @param o 传参
* @return 查询工程质量验收项
*/
@GetMapping("selectProEnvironment")
public AjaxResult selectBallSelect(SjProjectEnvironment o) {
try {
return service.selectProEnvironment(o);
} catch (Exception e) {
log.error(e.toString(),e);
return error("请求出错了");
}
}
}

View File

@ -0,0 +1,37 @@
package com.securitycontrol.screen.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 工程环境分析
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SjProjectEnvironment {
/**
* 主键
*/
private Long id;
private String bdName;
private String currentDay;
private String deviceId;
private String deviceName;
private String hour;
private String modeId;
private String modeName;
private String val;
private String startDate;
private String endDate;
private String bidCode;
private String deviceCode;
private String isWarn;
}

View File

@ -0,0 +1,13 @@
package com.securitycontrol.screen.mapper;
import com.securitycontrol.screen.domain.SjProjectEnvironment;
import com.securitycontrol.screen.domain.SjProjectSafety;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface SjProjectEnvironmentMapper {
List<SjProjectEnvironment> selectProEnvironment(SjProjectEnvironment o);
}

View File

@ -0,0 +1,13 @@
package com.securitycontrol.screen.service;
import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.screen.domain.SjProjectEnvironment;
import com.securitycontrol.screen.domain.SjProjectSafety;
import java.util.List;
public interface SjProjectEnvironmentService {
AjaxResult selectProEnvironment(SjProjectEnvironment o);
}

View File

@ -0,0 +1,43 @@
package com.securitycontrol.screen.service.impl;
import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.screen.domain.SjProjectEnvironment;
import com.securitycontrol.screen.domain.SjProjectQuality;
import com.securitycontrol.screen.domain.SjProjectSafety;
import com.securitycontrol.screen.mapper.SjProjectEnvironmentMapper;
import com.securitycontrol.screen.mapper.SjProjectSafetyMapper;
import com.securitycontrol.screen.service.SjProjectEnvironmentService;
import com.securitycontrol.screen.service.SjProjectSafetyService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class SjProjectEnvironmentServiceImpl implements SjProjectEnvironmentService {
@Resource
private SjProjectEnvironmentMapper mapper;
@Override
public AjaxResult selectProEnvironment(SjProjectEnvironment o) {
o.setDeviceCode("1902001");
List<SjProjectEnvironment> list = mapper.selectProEnvironment(o);
//按照pro_type,分割成若干个List
Map<String, List<SjProjectEnvironment>> groupedByModeName = list.stream()
.collect(Collectors.groupingBy(SjProjectEnvironment::getModeName));
Map<String, Object> result = new HashMap<>();
result.put("温度", groupedByModeName.get("温度"));
result.put("湿度", groupedByModeName.get("湿度"));
result.put("风速", groupedByModeName.get("风速"));
result.put("噪声", groupedByModeName.get("噪声"));
result.put("PM2.5", groupedByModeName.get("PM2.5"));
result.put("PM10", groupedByModeName.get("PM10"));
List<SjProjectEnvironment> collect = list.stream().filter(item -> "1".equals(item.getIsWarn())).collect(Collectors.toList());
result.put("预警", collect);
return AjaxResult.success(result);
}
}

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.securitycontrol.screen.mapper.SjProjectEnvironmentMapper">
<resultMap id="BaseResultMap" type="com.securitycontrol.screen.domain.SjProjectEnvironment">
<!--@mbg.generated-->
<!--@Table sj_project_safety-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="bd_name" property="bdName"/>
<result column="currentDay" property="currentDay"/>
<result column="device_id" property="deviceId"/>
<result column="device_name" property="deviceName"/>
<result column="hour" property="hour"/>
<result column="mode_id" property="modeId"/>
<result column="mode_name" property="modeName"/>
<result column="val" property="val"/>
<result column="is_warn" property="isWarn"/>
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, risk_code, risk_site, risk_level, controller, risk_controller, start_time, is_xh
</sql>
<select id="selectProEnvironment" resultMap="BaseResultMap">
SELECT
tpd.bd_name,
tbd.device_name,
tbd.device_id,
tdd.id AS mode_id,
tdd.mode_name,
DATE(thdv.create_time) AS `currentDay`,
HOUR(thdv.create_time) AS `hour`,
thdv.val,
thdv.is_warn
FROM
tb_pro_bd tpd
LEFT JOIN tb_bd_device tbd ON tpd.bd_code = tbd.bd_code
LEFT JOIN tb_device_detail tdd ON tdd.device_id = tbd.device_id
LEFT JOIN tb_his_device_value thdv ON thdv.attribute_id = tdd.id
AND thdv.bid_code = tpd.bid_code
WHERE
tpd.bid_code = #{bidCode}
AND tbd.device_code = #{deviceCode}
AND thdv.create_time IS NOT NULL
AND DATE(thdv.create_time) BETWEEN #{startDate} AND #{startDate}
ORDER BY currentDay,`hour`
</select>
</mapper>