Browse Source

fix: 修复水闸水雨情工程统计逻辑

master_tdsql
hxh 1 year ago
parent
commit
7c29af2398
  1. 21
      shuili-system/src/main/java/com/kms/yg/df/mapper/BsSgcDfJbxxMapper.java
  2. 19
      shuili-system/src/main/java/com/kms/yg/sz/mapper/BsSgcSzGcdaMapper.java
  3. 9
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfWaterRegimeMapper.java
  4. 4
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqStatisticsProjectListDto.java
  5. 7
      shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzWaterRegimeMapper.java

21
shuili-system/src/main/java/com/kms/yg/df/mapper/BsSgcDfJbxxMapper.java

@ -141,25 +141,22 @@ public interface BsSgcDfJbxxMapper extends BaseMapper<BsSgcDfJbxx> {
@Select({
"<script>",
"SELECT df.dike_code AS dikeCode, df.dike_name AS dikeName, wr.water_level AS waterLevel, wr.rain_fall AS rainfall ",
"FROM bs_sgc_df_gcda df ",
"LEFT JOIN bs_sgc_df_syq wr ON wr.dike_code = df.dike_code and df.expr_date is null ",
"INNER JOIN (",
" SELECT dike_code, MAX(create_time) AS max_time ",
" FROM bs_sgc_df_syq ",
" WHERE DATE(create_time) = CURDATE() ",
" GROUP BY dike_code",
") wr_max ON wr.dike_code = wr_max.dike_code AND wr.create_time = wr_max.max_time ",
"WHERE 1=1 ",
"and df.expr_date is null ",
"SELECT dike_code , dike_name ",
"FROM bs_sgc_df_gcda where expr_date is null ",
"<if test='dfProject.riverLocation != null and dfProject.riverLocation != \"\"'>",
"AND df.river_location = #{dfProject.riverLocation} ",
"</if>",
"<if test='dfProject.adcd != null and dfProject.adcd != \"\"'>",
"AND df.adcd = #{dfProject.adcd} ",
"</if>",
"GROUP BY df.dike_code ",
"order by dike_name ",
"</script>"
})
@Results({
@Result(property = "dikeCode", column = "dike_code"),
@Result(property = "dikeName", column = "dike_name"),
@Result(property = "waterLevel", column = "dike_code", javaType = Integer.class, one = @One(select = "com.kms.yxgh.df.mapper.DfWaterRegimeMapper.getTodayWaterLevel")),
@Result(property = "rainfall", column = "dike_code", javaType = Integer.class, one = @One(select = "com.kms.yxgh.df.mapper.DfWaterRegimeMapper.getTodayRainfall"))
})
IPage<DfYqStatisticsProjectListDto> getDfYqStatisticsProjectListWithPage(Page<DfYqStatisticsProjectListDto> page, @Param("dfProject") DfYqStatisticsProjectQueDto dfProject);
}

19
shuili-system/src/main/java/com/kms/yg/sz/mapper/BsSgcSzGcdaMapper.java

@ -105,17 +105,8 @@ public interface BsSgcSzGcdaMapper extends BaseMapper<BsSgcSzGcda> {
IPage<SzYqProjectListDto> getSzYqProjectListWithPage(Page<SzYqProjectListDto> page, @Param("szProject") SzYqProjectQueDto szProject);
@Select("<script>" +
"SELECT df.waga_code as wagaCode, df.waga_name as wagaName, df.water_level AS waterLevel, df.rain_fall AS rainfall " +
"FROM bs_sgc_sz_jbxx df " +
"LEFT JOIN bs_sgc_sz_syq pj ON pj.waga_code = df.waga_code and df.expr_date is null " +
"INNER JOIN (" +
" SELECT waga_code, MAX(create_time) AS max_time " +
" FROM bs_sgc_sz_syq " +
" WHERE DATE(create_time) = CURDATE() " +
" GROUP BY waga_code" +
") wr_max ON df.waga_code = wr_max.waga_code AND df.create_time = wr_max.max_time " +
"WHERE 1=1 " +
"and df.expr_date is null " +
"SELECT waga_code , waga_name " +
"FROM bs_sgc_sz_jbxx where expr_date is null " +
"<if test='szProject.riverLocation != null and szProject.riverLocation != \"\"'>" +
"AND df.river_location = #{szProject.riverLocation} " +
"</if>" +
@ -123,5 +114,11 @@ public interface BsSgcSzGcdaMapper extends BaseMapper<BsSgcSzGcda> {
"AND df.adcd = #{szProject.adcd} " +
"</if>" +
"</script>")
@Results({
@Result(property = "wagaCode", column = "waga_code"),
@Result(property = "wagaName", column = "waga_name"),
@Result(property = "rainfall", column = "waga_code", javaType = Date.class, one = @One(select = "com.kms.yxgh.sz.mapper.SzWaterRegimeMapper.getTodayRainfall")),
@Result(property = "waterLevel", column = "waga_code", javaType = Date.class, one = @One(select = "com.kms.yxgh.sz.mapper.SzWaterRegimeMapper.getTodayWaterLevel")),
})
IPage<SzYqStatisticsProjectListDto> getSzYqProjectStatisticsWithPage(Page<SzYqStatisticsProjectListDto> page, @Param("szProject") SzYqStatisticsProjectQueDto szProject);
}

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

@ -67,4 +67,13 @@ public interface DfWaterRegimeMapper extends BaseMapper<DfWaterRegime> {
//获取指定日期内某堤防过闸流量,数据按天分组,数据获取当天过闸流量的总和
@Select("SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS date, SUM(GATE_FLOW) AS sum FROM bs_sgc_df_syq WHERE create_time >= #{date} AND dike_code = #{dto.dikeCode} GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')")
List<DailySumDto> getTenDaysTotalGateFlow(@Param("dto") DfYqExceedIndexQueDto dto, @Param("date") Date date);
//获取当天最新的水位数据
@Select("SELECT water_level FROM bs_sgc_df_syq WHERE dike_code = #{dikeCode} AND DATE(create_time) = CURDATE() ORDER BY create_time DESC LIMIT 1")
int getTodayWaterLevel(@Param("dikeCode") String dikeCode);
//获取当天最新的降雨量数据
@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")
int getTodayRainfall(@Param("dikeCode") String dikeCode);
}

4
shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzYqStatisticsProjectListDto.java

@ -18,9 +18,9 @@ import lombok.Data;
public class SzYqStatisticsProjectListDto {
@ApiModelProperty(value = "水闸编号")
private String dikeCode;
private String wagaCode;
@ApiModelProperty(value = "水闸名称")
private String dikeName;
private String wagaName;
//水位
@ApiModelProperty(value = "水位")
private Double waterLevel;

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

@ -68,4 +68,11 @@ public interface SzWaterRegimeMapper extends BaseMapper<SzWaterRegime> {
@Select("SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS date, MAX(gate_flow) AS sum FROM bs_sgc_sz_syq WHERE waga_code = #{dto.wagaCode} AND create_time >= #{tenDaysAgo} GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')")
List<DailySumDto> getTenDaysTotalGateFlow(@Param(value = "dto") SzYqExceedIndexQueDto dto, @Param(value = "tenDaysAgo") Date tenDaysAgo);
//获取当天最新的水位数据
@Select("SELECT water_level FROM bs_sgc_sz_syq WHERE waga_code = #{wagaCode} AND DATE(create_time) = CURDATE() ORDER BY create_time DESC LIMIT 1")
Double getTodayWaterLevel(@Param(value = "wagaCode") String wagaCode);
//获取当天最新的降雨量数据
@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);
}
Loading…
Cancel
Save