Browse Source

feat: 水雨情统计接口

master_tdsql
hxh 1 year ago
parent
commit
6f908be29e
  1. 8
      shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYqStatisticsController.java
  2. 2
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqExceedIndexQueDto.java
  3. 15
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqYearRainFallDto.java
  4. 3
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfWaterRegimeMapper.java
  5. 16
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYqStatisticsService.java
  6. 8
      shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzYqStatisticsController.java
  7. 3
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqExceedIndexQueDto.java
  8. 15
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqYearRainFallDto.java
  9. 4
      shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzWaterRegimeMapper.java
  10. 15
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYqStatisticsService.java

8
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.DfYqDailyWaterLevelDto;
import com.kms.yxgh.df.dto.DfYqExceedIndexDto; import com.kms.yxgh.df.dto.DfYqExceedIndexDto;
import com.kms.yxgh.df.dto.DfYqExceedIndexQueDto; import com.kms.yxgh.df.dto.DfYqExceedIndexQueDto;
import com.kms.yxgh.df.dto.DfYqYearRainFallDto;
import com.kms.yxgh.df.service.DfYqStatisticsService; import com.kms.yxgh.df.service.DfYqStatisticsService;
import com.shuili.common.core.controller.BaseController; import com.shuili.common.core.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -51,4 +52,11 @@ public class DfYqStatisticsController extends BaseController {
public Response<DfYqDailyWaterLevelDto> getTenDaysRainfall(@RequestBody DfYqExceedIndexQueDto dto) { public Response<DfYqDailyWaterLevelDto> getTenDaysRainfall(@RequestBody DfYqExceedIndexQueDto dto) {
return Response.ok(dfYqStatisticsService.getTenDaysRainfall(dto)); return Response.ok(dfYqStatisticsService.getTenDaysRainfall(dto));
} }
//按年份获取堤防雨量统计数据
@PostMapping("/get-year-rainfall")
@ApiOperation("按年份获取堤防雨量统计数据")
public Response<DfYqYearRainFallDto> getYearRainfall(@RequestBody DfYqExceedIndexQueDto dto) {
return Response.ok(dfYqStatisticsService.getYearRainfall(dto));
}
} }

2
shuili-system/src/main/java/com/kms/yxgh/df/dto/DfYqExceedIndexQueDto.java

@ -19,4 +19,6 @@ public class DfYqExceedIndexQueDto {
@ApiModelProperty("堤防代码") @ApiModelProperty("堤防代码")
private String dikeCode; private String dikeCode;
@ApiModelProperty("年份")
private String year;
} }

15
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<String, Double> yearRainFall;
}

3
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfWaterRegimeMapper.java

@ -76,4 +76,7 @@ public interface DfWaterRegimeMapper extends BaseMapper<DfWaterRegime> {
@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") @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); 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<DailySumDto> getYearRainfall(@Param("year") String year, @Param("dikeCode") String dikeCode);
} }

16
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.DfYqDailyWaterLevelDto;
import com.kms.yxgh.df.dto.DfYqExceedIndexDto; import com.kms.yxgh.df.dto.DfYqExceedIndexDto;
import com.kms.yxgh.df.dto.DfYqExceedIndexQueDto; import com.kms.yxgh.df.dto.DfYqExceedIndexQueDto;
import com.kms.yxgh.df.dto.DfYqYearRainFallDto;
import com.kms.yxgh.df.mapper.DfWaterRegimeMapper; import com.kms.yxgh.df.mapper.DfWaterRegimeMapper;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -136,4 +137,19 @@ public class DfYqStatisticsService {
private Map<String, DailySumDto> convertListToMap(List<DailySumDto> dailyData) { private Map<String, DailySumDto> convertListToMap(List<DailySumDto> dailyData) {
return dailyData.stream().collect(Collectors.toMap(DailySumDto::getDate, dailySumDto -> dailySumDto)); return dailyData.stream().collect(Collectors.toMap(DailySumDto::getDate, dailySumDto -> dailySumDto));
} }
public DfYqYearRainFallDto getYearRainfall(DfYqExceedIndexQueDto dto) {
List<DailySumDto> dailyRainfall = dfWaterRegimeMapper.getYearRainfall(dto.getYear(), dto.getDikeCode());
DfYqYearRainFallDto result = new DfYqYearRainFallDto();
Map<String, DailySumDto> 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;
}
} }

8
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.SzYqDailyWaterLevelDto;
import com.kms.yxgh.sz.dto.SzYqExceedIndexDto; import com.kms.yxgh.sz.dto.SzYqExceedIndexDto;
import com.kms.yxgh.sz.dto.SzYqExceedIndexQueDto; import com.kms.yxgh.sz.dto.SzYqExceedIndexQueDto;
import com.kms.yxgh.sz.dto.SzYqYearRainFallDto;
import com.kms.yxgh.sz.service.SzYqStatisticsService; import com.kms.yxgh.sz.service.SzYqStatisticsService;
import com.shuili.common.core.controller.BaseController; import com.shuili.common.core.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -51,4 +52,11 @@ public class SzYqStatisticsController extends BaseController {
public Response<SzYqDailyWaterLevelDto> getTenDaysRainfall(@RequestBody SzYqExceedIndexQueDto dto) { public Response<SzYqDailyWaterLevelDto> getTenDaysRainfall(@RequestBody SzYqExceedIndexQueDto dto) {
return Response.ok(dfYqStatisticsService.getTenDaysRainfall(dto)); return Response.ok(dfYqStatisticsService.getTenDaysRainfall(dto));
} }
//按年份获取堤防雨量统计数据
@PostMapping("/get-year-rainfall")
@ApiOperation("按年份获取堤防雨量统计数据")
public Response<SzYqYearRainFallDto> getYearRainfall(@RequestBody SzYqExceedIndexQueDto dto) {
return Response.ok(dfYqStatisticsService.getYearRainfall(dto));
}
} }

3
shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqExceedIndexQueDto.java

@ -19,4 +19,7 @@ public class SzYqExceedIndexQueDto {
@ApiModelProperty("水闸代码") @ApiModelProperty("水闸代码")
private String wagaCode; private String wagaCode;
@ApiModelProperty("年份")
private String year;
} }

15
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<String, Double> yearRainFall;
}

4
shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzWaterRegimeMapper.java

@ -75,4 +75,8 @@ public interface SzWaterRegimeMapper extends BaseMapper<SzWaterRegime> {
//获取当天最新的降雨量数据 //获取当天最新的降雨量数据
@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") @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); 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<DailySumDto> getYearRainfall(@Param("wagaCode") String wagaCode, @Param("year") String year);
} }

15
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.SzYqDailyWaterLevelDto;
import com.kms.yxgh.sz.dto.SzYqExceedIndexDto; import com.kms.yxgh.sz.dto.SzYqExceedIndexDto;
import com.kms.yxgh.sz.dto.SzYqExceedIndexQueDto; import com.kms.yxgh.sz.dto.SzYqExceedIndexQueDto;
import com.kms.yxgh.sz.dto.SzYqYearRainFallDto;
import com.kms.yxgh.sz.mapper.SzWaterRegimeMapper; import com.kms.yxgh.sz.mapper.SzWaterRegimeMapper;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -136,4 +137,18 @@ public class SzYqStatisticsService {
private Map<String, DailySumDto> convertListToMap(List<DailySumDto> dailyData) { private Map<String, DailySumDto> convertListToMap(List<DailySumDto> dailyData) {
return dailyData.stream().collect(Collectors.toMap(DailySumDto::getDate, dailySumDto -> dailySumDto)); return dailyData.stream().collect(Collectors.toMap(DailySumDto::getDate, dailySumDto -> dailySumDto));
} }
public SzYqYearRainFallDto getYearRainfall(SzYqExceedIndexQueDto dto) {
List<DailySumDto> yearRainFall = szWaterRegimeMapper.getYearRainfall(dto.getWagaCode(), dto.getYear());
SzYqYearRainFallDto result = new SzYqYearRainFallDto();
Map<String, DailySumDto> 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;
}
} }

Loading…
Cancel
Save