From 3587197e4469c3930503da1e0fe258ecc52f4b3c Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Sat, 29 Jun 2024 16:13:03 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=A8=E9=87=8F=E5=A4=A7=E5=B1=8F=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/RainBigScreenController.java | 109 ++++++++++++++++++ .../modules/environment/entity/RainAlarm.java | 92 +++++++-------- .../environment/entity/RainRecord.java | 23 ++-- .../entity/vo/RainAlarmCountTotalVo.java | 63 ++++++++++ .../environment/mapper/RainAlarmMapper.java | 4 + .../environment/mapper/RainRecordMapper.java | 3 + .../mapper/xml/RainAlarmMapper.xml | 20 ++++ .../mapper/xml/RainRecordMapper.xml | 27 +++++ .../service/IRainAlarmService.java | 3 + .../service/IRainRecordService.java | 4 + .../service/impl/RainAlarmServiceImpl.java | 7 ++ .../service/impl/RainRecordServiceImpl.java | 48 ++++++++ 12 files changed, 347 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/environment/controller/RainBigScreenController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/environment/entity/vo/RainAlarmCountTotalVo.java diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/controller/RainBigScreenController.java b/src/main/java/com/zhgd/xmgl/modules/environment/controller/RainBigScreenController.java new file mode 100644 index 000000000..64a572a60 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/environment/controller/RainBigScreenController.java @@ -0,0 +1,109 @@ +package com.zhgd.xmgl.modules.environment.controller; + +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.modules.environment.entity.AirQualityAnalysis; +import com.zhgd.xmgl.modules.environment.entity.RainRecord; +import com.zhgd.xmgl.modules.environment.entity.vo.AirQualityStatisticsVo; +import com.zhgd.xmgl.modules.environment.entity.vo.RainAlarmCountTotalVo; +import com.zhgd.xmgl.modules.environment.service.IAirQualityAnalysisService; +import com.zhgd.xmgl.modules.environment.service.IRainAlarmService; +import com.zhgd.xmgl.modules.environment.service.IRainDevService; +import com.zhgd.xmgl.modules.environment.service.IRainRecordService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/xmgl/rainBigScreen") +@Slf4j +@Api(tags = "雨量监测大屏相关Api") +public class RainBigScreenController { + @Autowired + private IRainRecordService rainRecordService; + @Autowired + private IRainDevService rainDevService; + @Autowired + private IRainAlarmService rainAlarmService; + @Autowired + private IAirQualityAnalysisService airQualityAnalysisService; + + /** + * 通过id查询 + * + * @param + * @return + */ + @ApiOperation(value = "查询当天空气质量", notes = "查询当天空气质量", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/getCurrentDayAirQuality") + public Result getCurrentDayAirQuality(@RequestBody Map map) { + AirQualityAnalysis airQualityAnalysis = airQualityAnalysisService.getCurrentDayAirQuality(map); + return Result.success(airQualityAnalysis); + } + + + @ApiOperation(value = "当天空气质量统计", notes = "当天空气质量统计", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "type", value = "类型,1最近30天,2最近一年", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/getAirQualityStatistics") + public Result> getAirQualityStatistics(@RequestBody Map map) { + List list = airQualityAnalysisService.getAirQualityStatistics(map); + return Result.success(list); + } + + @ApiOperation(value = "查询天气-周", notes = "查询天气-周", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "cityid", value = "市区编码", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "areaId", value = "行政区域县区Id", paramType = "body", required = false, dataType = "String"), + }) + @PostMapping(value = "/getWeatherData") + public Result getWeatherData(@RequestBody Map map) { + return Result.success(airQualityAnalysisService.getWeatherData(map)); + } + + @ApiOperation(value = "查询今日每小时趋势图", notes = "查询今日每小时趋势图", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "devSn", value = "设备sn", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/queryTodayTrendGroupByHour") + public Result> queryTodayTrendGroupByHour(@ApiIgnore @RequestBody Map param) { + return Result.success(rainRecordService.queryTodayTrendGroupByHour(param)); + } + + @ApiOperation(value = "查询最新一条实时数据", notes = "查询最新一条实时数据", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "devSn", value = "设备sn", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/getRealTimeRainRecord") + public Result getRealTimeRainRecord(@RequestBody Map map) { + return Result.success(rainRecordService.getRealTimeRainRecord(map)); + } + + @ApiOperation(value = "报警汇总统计", notes = "报警汇总统计") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "selectType", value = "查询条件,1查询当天", paramType = "body", required = false, dataType = "String"), + }) + @PostMapping("/selectRainAlarmCountTotal") + public Result selectRainAlarmCountTotal(@RequestBody Map map) { + return Result.success(rainAlarmService.selectRainAlarmCountTotal(map)); + } + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainAlarm.java b/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainAlarm.java index 523d5e9d0..a008a2148 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainAlarm.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainAlarm.java @@ -1,18 +1,17 @@ package com.zhgd.xmgl.modules.environment.entity; -import java.io.Serializable; -import java.util.Date; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; /** * @Description: 雨量监测报警记录 @@ -24,46 +23,46 @@ import io.swagger.annotations.ApiModelProperty; @TableName("rain_alarm") @ApiModel(value = "RainAlarm实体类", description = "RainAlarm") public class RainAlarm implements Serializable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - /** - * id - */ - @TableId(type = IdType.ASSIGN_ID) - @ApiModelProperty(value = "id") - private java.lang.Long id; - /** - * 报警内容 - */ - @Excel(name = "报警内容", width = 15) - @ApiModelProperty(value = "报警内容") - private java.lang.String alarmContent; - /** - * 报警值 - */ - @Excel(name = "报警值", width = 15) - @ApiModelProperty(value = "报警值") - private java.lang.Double alarmVal; - /** - * 所属项目SN - */ - @Excel(name = "所属项目SN", width = 15) - @ApiModelProperty(value = "所属项目SN") - private java.lang.String projectSn; - /** - * 设备SN - */ - @Excel(name = "设备SN", width = 15) - @ApiModelProperty(value = "设备SN") - private java.lang.String devSn; - @ApiModelProperty(value = "报警时间") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private java.util.Date alarmTime; - /** - * 创建时间 - */ - @ApiModelProperty(value = "创建时间") + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.Long id; + /** + * 报警内容 + */ + @Excel(name = "报警内容", width = 15) + @ApiModelProperty(value = "报警内容") + private java.lang.String alarmContent; + /** + * 报警值 + */ + @Excel(name = "报警值", width = 15) + @ApiModelProperty(value = "报警值") + private java.lang.Double alarmVal; + /** + * 所属项目SN + */ + @Excel(name = "所属项目SN", width = 15) + @ApiModelProperty(value = "所属项目SN") + private java.lang.String projectSn; + /** + * 设备SN + */ + @Excel(name = "设备SN", width = 15) + @ApiModelProperty(value = "设备SN") + private java.lang.String devSn; + @ApiModelProperty(value = "报警时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private java.util.Date alarmTime; + /** + * 创建时间 + */ + @ApiModelProperty(value = "创建时间") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private java.util.Date createDate; @@ -74,7 +73,8 @@ public class RainAlarm implements Serializable { @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private java.util.Date updateDate; - + @ApiModelProperty(value = "报警类型:ParamEnum.RainAlarmTypeEnum") + private Integer alarmType; @TableField(exist = false) @ApiModelProperty(value = "设备名字") private java.lang.String devName; diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainRecord.java b/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainRecord.java index 52fc74661..e7bddbd98 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainRecord.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainRecord.java @@ -115,14 +115,17 @@ public class RainRecord implements Serializable { @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private java.util.Date createDate; - /** - * 更新时间 - */ - @ApiModelProperty(value = "更新时间") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private java.util.Date updateDate; - @TableField(exist = false) - @ApiModelProperty(value = "设备名字") - private java.lang.String devName; + /** + * 更新时间 + */ + @ApiModelProperty(value = "更新时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private java.util.Date updateDate; + @TableField(exist = false) + @ApiModelProperty(value = "设备名字") + private java.lang.String devName; + @TableField(exist = false) + @ApiModelProperty(value = "时间") + private java.lang.String time; } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/entity/vo/RainAlarmCountTotalVo.java b/src/main/java/com/zhgd/xmgl/modules/environment/entity/vo/RainAlarmCountTotalVo.java new file mode 100644 index 000000000..21180f971 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/environment/entity/vo/RainAlarmCountTotalVo.java @@ -0,0 +1,63 @@ +package com.zhgd.xmgl.modules.environment.entity.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class RainAlarmCountTotalVo { + /** + * 总数 + */ + @ApiModelProperty(value = "总数") + private java.lang.Integer totalAlarm; + /** + * 风力/级数量 + */ + @ApiModelProperty(value = "风力/级数量") + private java.lang.Integer windForceNum; + /** + * 风速m/s数量 + */ + @ApiModelProperty(value = "风速m/s数量") + private java.lang.Integer windSpeedNum; + /** + * 风向数量 + */ + @ApiModelProperty(value = "风向数量") + private java.lang.Integer windDirectionNum; + /** + * 累计雨量mm数量 + */ + @ApiModelProperty(value = "累计雨量mm数量") + private java.lang.Integer accumulatedRainfallNum; + /** + * 瞬时雨量mm数量 + */ + @ApiModelProperty(value = "瞬时雨量mm数量") + private java.lang.Integer instantaneousRainfallNum; + /** + * 当前雨量(今日雨量)mm数量 + */ + @ApiModelProperty(value = "当前雨量(今日雨量)mm数量") + private java.lang.Integer currentRainfallNum; + /** + * 日雨量(昨日雨量)mm数量 + */ + @ApiModelProperty(value = "日雨量(昨日雨量)mm数量") + private java.lang.Integer dailyRainfallNum; + /** + * 空气温度℃数量 + */ + @ApiModelProperty(value = "空气温度℃数量") + private java.lang.Integer airTemperatureNum; + /** + * 空气湿度%数量 + */ + @ApiModelProperty(value = "空气湿度%数量") + private java.lang.Integer airHumidityNum; + /** + * 大气压Kpa数量 + */ + @ApiModelProperty(value = "大气压Kpa数量") + private java.lang.Integer atmosphericPressureNum; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainAlarmMapper.java b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainAlarmMapper.java index 40b4dd02a..a2dd9f76d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainAlarmMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainAlarmMapper.java @@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhgd.xmgl.modules.environment.entity.vo.RainAlarmCountTotalVo; import org.apache.ibatis.annotations.Mapper; import com.zhgd.xmgl.modules.environment.entity.RainAlarm; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * @Description: 雨量监测报警记录 @@ -23,4 +25,6 @@ public interface RainAlarmMapper extends BaseMapper { IPage queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); List queryList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + RainAlarmCountTotalVo selectRainAlarmCountTotal(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainRecordMapper.java b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainRecordMapper.java index 69573e910..380263253 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainRecordMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainRecordMapper.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * @Description: 雨量监测记录 @@ -23,4 +24,6 @@ public interface RainRecordMapper extends BaseMapper { IPage queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); List queryList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + List queryTodayTrendGroupByHour(Map param); } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainAlarmMapper.xml b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainAlarmMapper.xml index f9d9b5020..9016f53c0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainAlarmMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainAlarmMapper.xml @@ -7,4 +7,24 @@ join rain_dev rd on rd.dev_sn = t.dev_sn ${ew.customSqlSegment} + + diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainRecordMapper.xml index 6bed67c9a..580556532 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainRecordMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainRecordMapper.xml @@ -7,4 +7,31 @@ join rain_dev rd on rd.dev_sn = t.dev_sn ${ew.customSqlSegment} + + diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/service/IRainAlarmService.java b/src/main/java/com/zhgd/xmgl/modules/environment/service/IRainAlarmService.java index c803a3859..c88817498 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/service/IRainAlarmService.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/service/IRainAlarmService.java @@ -3,9 +3,11 @@ package com.zhgd.xmgl.modules.environment.service; import com.zhgd.xmgl.modules.environment.entity.RainAlarm; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhgd.xmgl.modules.environment.entity.vo.RainAlarmCountTotalVo; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Description: 雨量监测报警记录 @@ -27,4 +29,5 @@ public interface IRainAlarmService extends IService { RainAlarm queryById(String id); + RainAlarmCountTotalVo selectRainAlarmCountTotal(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/service/IRainRecordService.java b/src/main/java/com/zhgd/xmgl/modules/environment/service/IRainRecordService.java index 3535da695..0cb881aa5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/service/IRainRecordService.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/service/IRainRecordService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Description: 雨量监测记录 @@ -27,4 +28,7 @@ public interface IRainRecordService extends IService { RainRecord queryById(String id); + List queryTodayTrendGroupByHour(Map param); + + RainRecord getRealTimeRainRecord(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainAlarmServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainAlarmServiceImpl.java index cd79c2a0f..c76243492 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainAlarmServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainAlarmServiceImpl.java @@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.environment.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.xmgl.modules.environment.entity.RainDev; +import com.zhgd.xmgl.modules.environment.entity.vo.RainAlarmCountTotalVo; import com.zhgd.xmgl.modules.environment.mapper.RainAlarmMapper; import com.zhgd.xmgl.modules.environment.mapper.RainDevMapper; import com.zhgd.xmgl.modules.environment.service.IRainAlarmService; @@ -17,6 +18,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.HashMap; import java.util.List; +import java.util.Map; import com.zhgd.xmgl.util.RefUtil; import org.springframework.transaction.annotation.Transactional; @@ -101,4 +103,9 @@ public class RainAlarmServiceImpl extends ServiceImpl map) { + return baseMapper.selectRainAlarmCountTotal(map); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainRecordServiceImpl.java index d2d10b96f..2a5db72a5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainRecordServiceImpl.java @@ -1,12 +1,17 @@ package com.zhgd.xmgl.modules.environment.service.impl; +import java.util.Date; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.xmgl.modules.environment.entity.RainRecord; import com.zhgd.xmgl.modules.environment.entity.RainDev; import com.zhgd.xmgl.modules.environment.entity.RainRecord; import com.zhgd.xmgl.modules.environment.mapper.RainDevMapper; import com.zhgd.xmgl.modules.environment.mapper.RainRecordMapper; import com.zhgd.xmgl.modules.environment.service.IRainRecordService; +import com.zhgd.xmgl.util.DateUtils; +import org.apache.commons.collections.MapUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -17,6 +22,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; import com.zhgd.xmgl.util.RefUtil; import org.springframework.transaction.annotation.Transactional; @@ -101,4 +109,44 @@ public class RainRecordServiceImpl extends ServiceImpl queryTodayTrendGroupByHour(Map param) { + List list = baseMapper.queryTodayTrendGroupByHour(param); + fillData(list); + return list; + } + + @Override + public RainRecord getRealTimeRainRecord(Map map) { + String devSn = MapUtils.getString(map, "devSn"); + String projectSn = MapUtils.getString(map, "projectSn"); + return rainRecordMapper.selectOne(new LambdaQueryWrapper() + .eq(StrUtil.isNotBlank(devSn), RainRecord::getDevSn, devSn) + .eq(StrUtil.isNotBlank(projectSn), RainRecord::getProjectSn, projectSn) + .last("order by record_time desc limit 1") + ); + } + + private void fillData(List list) { + Map dataMap = list.stream().collect(Collectors.toMap(RainRecord::getTime, Function.identity())); + list.clear(); + for (String hour : DateUtils.getDateTimeStrList(100, "HH:mm")) { + RainRecord dnd = dataMap.get(hour); + if (dnd == null) { + dnd = new RainRecord(); + dnd.setWindForce(0.0D); + dnd.setWindSpeed(0.0D); + dnd.setAccumulatedRainfall(0.0D); + dnd.setInstantaneousRainfall(0.0D); + dnd.setCurrentRainfall(0.0D); + dnd.setDailyRainfall(0.0D); + dnd.setAirTemperature(0.0D); + dnd.setAirHumidity(0.0D); + dnd.setAtmosphericPressure(0.0D); + dnd.setTime(hour); + } + list.add(dnd); + } + } + }