环境监测后端

This commit is contained in:
fl 2025-07-23 21:36:27 +08:00
parent f70ff5f5a6
commit ed9a85816c
6 changed files with 252 additions and 0 deletions

View File

@ -0,0 +1,65 @@
package com.securitycontrol.entity.screen.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 环境监测分析
* @author fly
*/
@Data
public class EnvironmentDto extends ScreenParamDto {
@ApiModelProperty(value = "日期")
private String currentDay;
@ApiModelProperty(value = "时辰")
private String hours;
@ApiModelProperty(value = "工程名称")
private String proName;
@ApiModelProperty(value = "边坡位移")
private String slopeDisplacement;
@ApiModelProperty(value = "温度")
private String temperature;
@ApiModelProperty(value = "湿度")
private String humidity;
@ApiModelProperty(value = "空气质量")
private String airQualityIndex;
@ApiModelProperty(value = "噪音")
private String noiseLevel;
@ApiModelProperty(value = "光照度")
private String illumination;
@ApiModelProperty(value = "GIS安装环境温度")
private String gisInstallationTemp;
@ApiModelProperty(value = "GIS安装环境湿度")
private String gisInstallationHumidity;
@ApiModelProperty(value = "GIS安装环境粉尘")
private String gisInstallationDustConcentration;
@ApiModelProperty(value = "有限空间氧气浓度(单位:%")
private String confinedSpaceOxygen;
@ApiModelProperty(value = "有限空间一氧化碳气体浓度单位ppm")
private String confinedSpaceCarbonMonoxide;
@ApiModelProperty(value = "有限空间硫化氢气体浓度单位ppm")
private String confinedSpaceHydrogenSulfide;
@ApiModelProperty(value = "有限空间可燃气体浓度(单位:%LEL")
private String confinedSpaceCombustibleGas;
private List<EnvironmentDto> list;
}

View File

@ -0,0 +1,34 @@
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.log.annotation.Log;
import com.securitycontrol.common.log.enums.OperationType;
import com.securitycontrol.entity.screen.dto.EnvironmentDto;
import com.securitycontrol.screen.service.EnvironmentService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 环境监测分析
* @author fly
*/
@RestController
@RequestMapping("/largeScreen/environment/")
@Slf4j
public class EnvironmentController extends BaseController {
@Resource(name = "EnvironmentService")
private EnvironmentService service;
@ApiOperation(value = "环境监测分析")
@GetMapping("getEnvironmentList")
@Log(title = "环境监测分析", menu = "数据分析->环境监测分析", grade = OperationType.QUERY_BUSINESS, details = "环境监测分析", type = "业务日志")
public AjaxResult getEnvironmentList(EnvironmentDto dto) {
return service.getEnvironmentList(dto);
}
}

View File

@ -0,0 +1,21 @@
package com.securitycontrol.screen.mapper;
import com.securitycontrol.entity.screen.dto.AlarmMgeDto;
import com.securitycontrol.entity.screen.dto.EnvironmentDto;
import com.securitycontrol.entity.screen.vo.AlarmMgeVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 环境监测分析
* @author fly
*/
@Repository(value = "EnvironmentMapper")
public interface EnvironmentMapper {
EnvironmentDto getEnvironmentList(EnvironmentDto dto);
List<EnvironmentDto> getEnvironmentListByDate(@Param("startDate") String s,@Param("endDate") String today);
}

View File

@ -0,0 +1,22 @@
package com.securitycontrol.screen.service;
import com.securitycontrol.common.core.domain.Result;
import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.entity.screen.dto.AlarmMgeDto;
import com.securitycontrol.entity.screen.dto.EnvironmentDto;
import com.securitycontrol.entity.screen.vo.AlarmMgeVo;
import java.util.List;
/**
* 环境监测分析
* @author fly
*/
public interface EnvironmentService {
/**
* 告警管理 -列表
* @param dto
* @return
*/
AjaxResult getEnvironmentList(EnvironmentDto dto);
}

View File

@ -0,0 +1,54 @@
package com.securitycontrol.screen.service.impl;
import cn.hutool.core.date.DateUtil;
import com.securitycontrol.common.core.domain.Result;
import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.common.security.utils.SecurityUtils;
import com.securitycontrol.entity.screen.dto.AlarmMgeDto;
import com.securitycontrol.entity.screen.dto.EnvironmentDto;
import com.securitycontrol.entity.screen.vo.AlarmMgeVo;
import com.securitycontrol.entity.screen.vo.TowerAssInspectVo;
import com.securitycontrol.entity.system.SystemGlobal;
import com.securitycontrol.screen.mapper.AlarmMgeMapper;
import com.securitycontrol.screen.mapper.EnvironmentMapper;
import com.securitycontrol.screen.service.AlarmMgeService;
import com.securitycontrol.screen.service.EnvironmentService;
import com.securitycontrol.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 环境监测分析
* @author fly
*/
@Slf4j
@Service(value = "EnvironmentService")
public class EnvironmentServiceImpl implements EnvironmentService {
@Resource(name = "EnvironmentMapper")
private EnvironmentMapper mapper;
@Override
public AjaxResult getEnvironmentList(EnvironmentDto dto) {
EnvironmentDto vo = null;
try {
//先查固定时间-- currentDay:2021-05-01 hours:9
vo = mapper.getEnvironmentList(dto);
//在查最近七天每天的平均值
String today = DateUtil.today();
// 获取七天前的日期subtract方法可以用来减去指定的时间间隔
Date sevenDaysAgo = DateUtil.offsetDay(DateUtil.date(), -7);
List<EnvironmentDto> list = mapper.getEnvironmentListByDate(DateUtil.format(sevenDaysAgo, "yyyy-MM-dd"),today);
vo.setList(list);
} catch (Exception e) {
log.error("环境监测分析-查询失败", e);
}
return AjaxResult.success(vo);
}
}

View File

@ -0,0 +1,56 @@
<?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.EnvironmentMapper">
<select id="getEnvironmentList" resultType="com.securitycontrol.entity.screen.dto.EnvironmentDto">
SELECT
id,
pro_id,
current_day,
`hour`,
slope_displacement,
temperature,
humidity,
air_quality_index,
noise_level,
illumination,
gis_installation_temp,
gis_installation_humidity,
gis_installation_dust_concentration,
confined_space_oxygen,
confined_space_carbon_monoxide,
confined_space_hydrogen_sulfide,
confined_space_combustible_gas
FROM
wide_sensor_data
WHERE
pro_id = #{proId}
AND current_day = #{currentDay}
AND `hour` = #{hour}
</select>
<select id="getEnvironmentListByDate" resultType="com.securitycontrol.entity.screen.dto.EnvironmentDto">
SELECT
current_day,
AVG(slope_displacement) AS avg_slope_displacement,
AVG(temperature) AS avg_temperature,
AVG(humidity) AS avg_humidity,
AVG(air_quality_index) AS avg_air_quality_index,
AVG(noise_level) AS avg_noise_level,
AVG(illumination) AS avg_illumination,
AVG(gis_installation_temp) AS avg_gis_installation_temp,
AVG(gis_installation_humidity) AS avg_gis_installation_humidity,
AVG(gis_installation_dust_concentration) AS avg_gis_installation_dust_concentration,
AVG(confined_space_oxygen) AS avg_confined_space_oxygen,
AVG(confined_space_carbon_monoxide) AS avg_confined_space_carbon_monoxide,
AVG(confined_space_hydrogen_sulfide) AS avg_confined_space_hydrogen_sulfide,
AVG(confined_space_combustible_gas) AS avg_confined_space_combustible_gas
FROM
wide_sensor_data
WHERE
current_day between #{startDate} AND #{endDate}
GROUP BY
current_day
ORDER BY
current_day ASC
</select>
</mapper>