From 6f908be29e3b3fc2d07925db2a648ce548504c73 Mon Sep 17 00:00:00 2001 From: hxh <762326930@qq.com> Date: Wed, 17 Apr 2024 18:07:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B0=B4=E9=9B=A8=E6=83=85=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../df/controller/DfYqStatisticsController.java | 8 ++++++++ .../kms/yxgh/df/dto/DfYqExceedIndexQueDto.java | 2 ++ .../com/kms/yxgh/df/dto/DfYqYearRainFallDto.java | 15 +++++++++++++++ .../kms/yxgh/df/mapper/DfWaterRegimeMapper.java | 3 +++ .../yxgh/df/service/DfYqStatisticsService.java | 16 ++++++++++++++++ .../sz/controller/SzYqStatisticsController.java | 8 ++++++++ .../kms/yxgh/sz/dto/SzYqExceedIndexQueDto.java | 3 +++ .../com/kms/yxgh/sz/dto/SzYqYearRainFallDto.java | 15 +++++++++++++++ .../kms/yxgh/sz/mapper/SzWaterRegimeMapper.java | 4 ++++ .../yxgh/sz/service/SzYqStatisticsService.java | 15 +++++++++++++++ 10 files changed, 89 insertions(+) create mode 100644 shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqYearRainFallDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqYearRainFallDto.java diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYqStatisticsController.java b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYqStatisticsController.java index 8600953c..8631a23e 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYqStatisticsController.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYqStatisticsController.java @@ -4,6 +4,7 @@ import com.kms.yxgh.base.Response; import com.kms.yxgh.df.dto.DfYqDailyWaterLevelDto; import com.kms.yxgh.df.dto.DfYqExceedIndexDto; import com.kms.yxgh.df.dto.DfYqExceedIndexQueDto; +import com.kms.yxgh.df.dto.DfYqYearRainFallDto; import com.kms.yxgh.df.service.DfYqStatisticsService; import com.shuili.common.core.controller.BaseController; import io.swagger.annotations.Api; @@ -51,4 +52,11 @@ public class DfYqStatisticsController extends BaseController { public Response getTenDaysRainfall(@RequestBody DfYqExceedIndexQueDto dto) { return Response.ok(dfYqStatisticsService.getTenDaysRainfall(dto)); } + + //按年份获取堤防雨量统计数据 + @PostMapping("/get-year-rainfall") + @ApiOperation("按年份获取堤防雨量统计数据") + public Response getYearRainfall(@RequestBody DfYqExceedIndexQueDto dto) { + return Response.ok(dfYqStatisticsService.getYearRainfall(dto)); + } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqExceedIndexQueDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqExceedIndexQueDto.java index 6c5bb2c9..51ac0c8e 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqExceedIndexQueDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqExceedIndexQueDto.java @@ -19,4 +19,6 @@ public class DfYqExceedIndexQueDto { @ApiModelProperty("堤防代码") private String dikeCode; + @ApiModelProperty("年份") + private String year; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqYearRainFallDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqYearRainFallDto.java new file mode 100644 index 00000000..2970a387 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqYearRainFallDto.java @@ -0,0 +1,15 @@ +package com.kms.yxgh.df.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Map; + +@ApiModel("堤防雨量年统计数据") +@Data +public class DfYqYearRainFallDto { + + @ApiModelProperty(value = "月份-雨量:1-1000") + private Map yearRainFall; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfWaterRegimeMapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfWaterRegimeMapper.java index 76ec21d8..4f3096b0 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfWaterRegimeMapper.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfWaterRegimeMapper.java @@ -76,4 +76,7 @@ public interface DfWaterRegimeMapper extends BaseMapper { @Select("SELECT rain_fall FROM bs_sgc_df_syq WHERE dike_code = #{dikeCode} AND DATE(create_time) = CURDATE() ORDER BY create_time DESC LIMIT 1") Double getTodayRainfall(@Param("dikeCode") String dikeCode); + //查询某年按月份份获取堤防雨量统计数据 + @Select("SELECT DATE_FORMAT(create_time, '%m') AS date, SUM(rain_fall) AS sum FROM bs_sgc_df_syq WHERE dike_code = #{dikeCode} AND YEAR(create_time) = #{year} GROUP BY DATE_FORMAT(create_time, '%m')") + List getYearRainfall(@Param("year") String year, @Param("dikeCode") String dikeCode); } \ No newline at end of file diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYqStatisticsService.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYqStatisticsService.java index 51d65c2f..0c1cc1dd 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYqStatisticsService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYqStatisticsService.java @@ -4,6 +4,7 @@ import com.kms.yxgh.common.dto.DailySumDto; import com.kms.yxgh.df.dto.DfYqDailyWaterLevelDto; import com.kms.yxgh.df.dto.DfYqExceedIndexDto; import com.kms.yxgh.df.dto.DfYqExceedIndexQueDto; +import com.kms.yxgh.df.dto.DfYqYearRainFallDto; import com.kms.yxgh.df.mapper.DfWaterRegimeMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -136,4 +137,19 @@ public class DfYqStatisticsService { private Map convertListToMap(List dailyData) { return dailyData.stream().collect(Collectors.toMap(DailySumDto::getDate, dailySumDto -> dailySumDto)); } + + + public DfYqYearRainFallDto getYearRainfall(DfYqExceedIndexQueDto dto) { + List dailyRainfall = dfWaterRegimeMapper.getYearRainfall(dto.getYear(), dto.getDikeCode()); + DfYqYearRainFallDto result = new DfYqYearRainFallDto(); + Map dailyRainfallMap = convertListToMap(dailyRainfall); + result.setYearRainFall( + IntStream.range(1, 13) + .mapToObj(i -> i + "-" + dailyRainfallMap.getOrDefault(i + "", new DailySumDto()).getSum()) + .collect(Collectors.toMap( + s -> s.split("-")[0], + s -> Double.parseDouble(s.split("-")[1]) + ))); + return result; + } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYqStatisticsController.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYqStatisticsController.java index 28f86099..bd978972 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYqStatisticsController.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYqStatisticsController.java @@ -4,6 +4,7 @@ import com.kms.yxgh.base.Response; import com.kms.yxgh.sz.dto.SzYqDailyWaterLevelDto; import com.kms.yxgh.sz.dto.SzYqExceedIndexDto; import com.kms.yxgh.sz.dto.SzYqExceedIndexQueDto; +import com.kms.yxgh.sz.dto.SzYqYearRainFallDto; import com.kms.yxgh.sz.service.SzYqStatisticsService; import com.shuili.common.core.controller.BaseController; import io.swagger.annotations.Api; @@ -51,4 +52,11 @@ public class SzYqStatisticsController extends BaseController { public Response getTenDaysRainfall(@RequestBody SzYqExceedIndexQueDto dto) { return Response.ok(dfYqStatisticsService.getTenDaysRainfall(dto)); } + + //按年份获取堤防雨量统计数据 + @PostMapping("/get-year-rainfall") + @ApiOperation("按年份获取堤防雨量统计数据") + public Response getYearRainfall(@RequestBody SzYqExceedIndexQueDto dto) { + return Response.ok(dfYqStatisticsService.getYearRainfall(dto)); + } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqExceedIndexQueDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqExceedIndexQueDto.java index 053ccd05..d7d99807 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqExceedIndexQueDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqExceedIndexQueDto.java @@ -19,4 +19,7 @@ public class SzYqExceedIndexQueDto { @ApiModelProperty("水闸代码") private String wagaCode; + + @ApiModelProperty("年份") + private String year; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqYearRainFallDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqYearRainFallDto.java new file mode 100644 index 00000000..4ee13e5c --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqYearRainFallDto.java @@ -0,0 +1,15 @@ +package com.kms.yxgh.sz.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Map; + +@ApiModel("水闸雨量年统计数据") +@Data +public class SzYqYearRainFallDto { + + @ApiModelProperty(value = "月份-雨量:1-1000") + private Map yearRainFall; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzWaterRegimeMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzWaterRegimeMapper.java index 1e144e59..93fdbc47 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzWaterRegimeMapper.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzWaterRegimeMapper.java @@ -75,4 +75,8 @@ public interface SzWaterRegimeMapper extends BaseMapper { //获取当天最新的降雨量数据 @Select("SELECT rain_fall FROM bs_sgc_sz_syq WHERE waga_code = #{wagaCode} AND DATE(create_time) = CURDATE() ORDER BY create_time DESC LIMIT 1") Double getTodayRainfall(@Param(value = "wagaCode") String wagaCode); + + //查询某年按月份份获取水闸雨量统计数据 + @Select("SELECT DATE_FORMAT(create_time, '%m') AS date, SUM(rain_fall) AS sum FROM bs_sgc_sz_syq WHERE YEAR(create_time) = #{year} AND waga_code = #{wagaCode} GROUP BY DATE_FORMAT(create_time, '%m')") + List getYearRainfall(@Param("wagaCode") String wagaCode, @Param("year") String year); } \ No newline at end of file diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYqStatisticsService.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYqStatisticsService.java index 802181d2..2413b5a1 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYqStatisticsService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYqStatisticsService.java @@ -4,6 +4,7 @@ import com.kms.yxgh.common.dto.DailySumDto; import com.kms.yxgh.sz.dto.SzYqDailyWaterLevelDto; import com.kms.yxgh.sz.dto.SzYqExceedIndexDto; import com.kms.yxgh.sz.dto.SzYqExceedIndexQueDto; +import com.kms.yxgh.sz.dto.SzYqYearRainFallDto; import com.kms.yxgh.sz.mapper.SzWaterRegimeMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -136,4 +137,18 @@ public class SzYqStatisticsService { private Map convertListToMap(List dailyData) { return dailyData.stream().collect(Collectors.toMap(DailySumDto::getDate, dailySumDto -> dailySumDto)); } + + public SzYqYearRainFallDto getYearRainfall(SzYqExceedIndexQueDto dto) { + List yearRainFall = szWaterRegimeMapper.getYearRainfall(dto.getWagaCode(), dto.getYear()); + SzYqYearRainFallDto result = new SzYqYearRainFallDto(); + Map dailyRainfallMap = convertListToMap(yearRainFall); + result.setYearRainFall( + IntStream.range(1, 13) + .mapToObj(i -> i + "-" + dailyRainfallMap.getOrDefault(i + "", new DailySumDto()).getSum()) + .collect(Collectors.toMap( + s -> s.split("-")[0], + s -> Double.parseDouble(s.split("-")[1]) + ))); + return result; + } }