fix: 优化环保部查询出入库水温接口

This commit is contained in:
tangwei 2026-05-19 10:30:07 +08:00
parent cb59b3835e
commit 67bed1d3e7
2 changed files with 25 additions and 23 deletions

View File

@ -21,11 +21,11 @@ import java.util.Map;
public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> { public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
@Select("SELECT wt.STCD AS stcd, wt.STNM AS stnm, wt.RSTCD AS rstcd, eng.ENNM AS ennm, " + @Select("SELECT wt.STCD AS stcd, wt.STNM AS stnm, wt.RSTCD AS rstcd, eng.ENNM AS ennm, " +
"CASE WHEN wt.STCD = rel.ENG_IWT_CODE THEN 1 WHEN wt.STCD = rel.ENG_DWT_CODE THEN 2 ELSE 3 END AS type, " + "CASE WHEN rel.ENG_IWT_CODE = wt.RSTCD THEN 1 WHEN rel.ENG_DWT_CODE = wt.RSTCD THEN 2 ELSE 3 END AS type, " +
"wt.STTP AS sttpCode " + "wt.STTP AS sttpCode " +
"FROM SD_WT_B_H wt " + "FROM SD_WT_B_H wt " +
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD " + "LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD " +
"LEFT JOIN SD_PRWTRLTN_B rel ON rel.STCD = wt.RSTCD AND rel.IS_DELETED = 0 " + "LEFT JOIN SD_WTENGRLTN_B rel ON rel.STCD = wt.STCD AND rel.IS_DELETED = 0 " +
"WHERE wt.IS_DELETED = 0 AND wt.STTP = 'WTRV' AND wt.STCD = #{stcd}") "WHERE wt.IS_DELETED = 0 AND wt.STTP = 'WTRV' AND wt.STCD = #{stcd}")
WtrvInfo getWtrvInfoByStcd(@Param("stcd") String stcd); WtrvInfo getWtrvInfoByStcd(@Param("stcd") String stcd);
//电站数据 //电站数据
@ -53,14 +53,15 @@ public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
//入库水温 //入库水温
@Select("<script>" + @Select("<script>" +
"SELECT 1 AS TYPE, AVG(b.WT) AS WT, b.TM " + "SELECT 1 AS TYPE, AVG(b.WT) AS WT, b.TM " +
"FROM SD_PRWTRLTN_B rel " + "FROM SD_WT_B_H a " +
"INNER JOIN SD_WTRV_R b ON b.STCD = rel.ENG_IWT_CODE " + "INNER JOIN SD_WTENGRLTN_B rel ON rel.STCD = a.STCD " +
"WHERE rel.IS_DELETED = 0 AND b.IS_DELETED = 0 " + "INNER JOIN SD_WTRV_R b ON b.STCD = a.STCD " +
"WHERE a.STTP = 'WTRV' AND a.IS_DELETED = 0 AND rel.IS_DELETED = 0 AND b.IS_DELETED = 0 " +
"<if test='stcd != null and stcd != \"\"'>" + "<if test='stcd != null and stcd != \"\"'>" +
"AND rel.STCD = (SELECT RSTCD FROM SD_WT_B_H WHERE STCD = #{stcd} AND IS_DELETED = 0) " + "AND rel.ENG_IWT_CODE = (SELECT RSTCD FROM SD_WT_B_H WHERE STCD = #{stcd} AND IS_DELETED = 0) " +
"</if>" + "</if>" +
"<if test='rstcd != null and rstcd != \"\"'>" + "<if test='rstcd != null and rstcd != \"\"'>" +
"AND rel.STCD = #{rstcd} " + "AND rel.ENG_IWT_CODE = #{rstcd} " +
"</if>" + "</if>" +
"AND b.TM BETWEEN #{startTime} AND #{endTime} " + "AND b.TM BETWEEN #{startTime} AND #{endTime} " +
"GROUP BY b.TM" + "GROUP BY b.TM" +
@ -69,14 +70,15 @@ public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
//出库水温 //出库水温
@Select("<script>" + @Select("<script>" +
"SELECT 2 AS TYPE, AVG(b.WT) AS WT, b.TM " + "SELECT 2 AS TYPE, AVG(b.WT) AS WT, b.TM " +
"FROM SD_PRWTRLTN_B rel " + "FROM SD_WT_B_H a " +
"INNER JOIN SD_WTRV_R b ON b.STCD = rel.ENG_DWT_CODE " + "INNER JOIN SD_WTENGRLTN_B rel ON rel.STCD = a.STCD " +
"WHERE rel.IS_DELETED = 0 AND b.IS_DELETED = 0 " + "INNER JOIN SD_WTRV_R b ON b.STCD = a.STCD " +
"WHERE a.STTP = 'WTRV' AND a.IS_DELETED = 0 AND rel.IS_DELETED = 0 AND b.IS_DELETED = 0 " +
"<if test='stcd != null and stcd != \"\"'>" + "<if test='stcd != null and stcd != \"\"'>" +
"AND rel.STCD = (SELECT RSTCD FROM SD_WT_B_H WHERE STCD = #{stcd} AND IS_DELETED = 0) " + "AND rel.ENG_DWT_CODE = (SELECT RSTCD FROM SD_WT_B_H WHERE STCD = #{stcd} AND IS_DELETED = 0) " +
"</if>" + "</if>" +
"<if test='rstcd != null and rstcd != \"\"'>" + "<if test='rstcd != null and rstcd != \"\"'>" +
"AND rel.STCD = #{rstcd} " + "AND rel.ENG_DWT_CODE = #{rstcd} " +
"</if>" + "</if>" +
"AND b.TM BETWEEN #{startTime} AND #{endTime} " + "AND b.TM BETWEEN #{startTime} AND #{endTime} " +
"GROUP BY b.TM" + "GROUP BY b.TM" +
@ -139,13 +141,13 @@ public interface AlongDetailMapper extends BaseMapper<SdAlongDetailVO> {
"REGEXP_REPLACE(LISTAGG(DISTINCT TO_CHAR(vt.STCD), ',') WITHIN GROUP (ORDER BY vt.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS vtStcd, " + "REGEXP_REPLACE(LISTAGG(DISTINCT TO_CHAR(vt.STCD), ',') WITHIN GROUP (ORDER BY vt.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS vtStcd, " +
"REGEXP_REPLACE(LISTAGG(DISTINCT TO_CHAR(vt.STNM), ',') WITHIN GROUP (ORDER BY vt.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS vtStnm " + "REGEXP_REPLACE(LISTAGG(DISTINCT TO_CHAR(vt.STNM), ',') WITHIN GROUP (ORDER BY vt.STCD), '([^,]+)(,\\1)*(,|$)', '\\1\\3') AS vtStnm " +
"FROM SD_ENGINFO_B_H eng " + "FROM SD_ENGINFO_B_H eng " +
"LEFT JOIN SD_PRWTRLTN_B rel ON rel.STCD = eng.STCD AND rel.IS_DELETED = 0 " + "LEFT JOIN SD_WT_B_H wtrv ON wtrv.RSTCD = eng.STCD AND wtrv.STTP = 'WTRV' AND wtrv.IS_DELETED = 0 AND wtrv.MWAY = 2 " +
"LEFT JOIN SD_WT_B_H wtrv ON wtrv.RSTCD = eng.STCD AND wtrv.STCD IN (rel.ENG_IWT_CODE, rel.ENG_DWT_CODE) " + "LEFT JOIN SD_WTENGRLTN_B rel ON rel.STCD = wtrv.STCD AND rel.IS_DELETED = 0 " +
" AND wtrv.STTP = 'WTRV' AND wtrv.IS_DELETED = 0 AND wtrv.MWAY = 2 " +
"LEFT JOIN SD_WT_B_H vt ON vt.RSTCD = eng.STCD AND vt.STTP = 'WTVT' AND vt.IS_DELETED = 0 AND vt.MWAY = 2 " + "LEFT JOIN SD_WT_B_H vt ON vt.RSTCD = eng.STCD AND vt.STTP = 'WTVT' AND vt.IS_DELETED = 0 AND vt.MWAY = 2 " +
"WHERE eng.USFL = 1 " + "WHERE eng.USFL = 1 " +
"AND wtrv.STCD IS NOT NULL AND vt.STCD IS NOT NULL AND rel.ENG_DWT_CODE IS NOT NULL " + "AND wtrv.STCD IS NOT NULL AND vt.STCD IS NOT NULL AND rel.ENG_DWT_CODE IS NOT NULL " +
"AND (wtrv.STCD = #{stcd} OR vt.STCD = #{stcd} OR eng.STCD = #{stcd}) " + "AND (wtrv.STCD = #{stcd} OR vt.STCD = #{stcd} OR eng.STCD = #{stcd}) " +
"AND rel.ENG_DWT_CODE = eng.STCD " +
"GROUP BY eng.STCD, eng.ENNM") "GROUP BY eng.STCD, eng.ENNM")
WtrvInfo getWtrvInfoByStcd3(@Param("stcd") String stcd); WtrvInfo getWtrvInfoByStcd3(@Param("stcd") String stcd);
} }

View File

@ -232,13 +232,13 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
// Map<Date, Map<String, Object>> hydropwDataMap = hydropwDataVoList.stream() // Map<Date, Map<String, Object>> hydropwDataMap = hydropwDataVoList.stream()
// .collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity())); // .collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity()));
pptnDataVoList.addAll(this.alongDetailMapper.getPptnDataList(wtrvInfo.getStcd(), startTime, endTime)); // pptnDataVoList.addAll(this.alongDetailMapper.getPptnDataList(wtrvInfo.getStcd(), startTime, endTime));
Map<Date, Map<String, Object>> pptnDataMap = pptnDataVoList.stream() // Map<Date, Map<String, Object>> pptnDataMap = pptnDataVoList.stream()
.collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity())); // .collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity()));
tmpDataVoList.addAll(this.alongDetailMapper.getTmpDataList(wtrvInfo.getStcd(), startTime, endTime)); // tmpDataVoList.addAll(this.alongDetailMapper.getTmpDataList(wtrvInfo.getStcd(), startTime, endTime));
Map<Date, Map<String, Object>> tmpDataMap = tmpDataVoList.stream() // Map<Date, Map<String, Object>> tmpDataMap = tmpDataVoList.stream()
.collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity())); // .collect(Collectors.toMap(it -> (Date) it.get("tm"), Function.identity()));
Map<Integer, BigDecimal> wtnpDataMap = new HashMap<>(); Map<Integer, BigDecimal> wtnpDataMap = new HashMap<>();
if (StrUtil.isNotBlank(wtrvInfo.getRstcd())) { if (StrUtil.isNotBlank(wtrvInfo.getRstcd())) {
@ -263,8 +263,8 @@ public class AlongDetailServiceImpl extends ServiceImpl<AlongDetailMapper, SdAlo
vo.put("type", wtrvInfo.getType()); vo.put("type", wtrvInfo.getType());
vo.put("natureTmp", wtnpDataMap.get(it.getMon())); vo.put("natureTmp", wtnpDataMap.get(it.getMon()));
// vo.put("hydropwDataVo", hydropwDataMap.get(it.getTm())); // vo.put("hydropwDataVo", hydropwDataMap.get(it.getTm()));
vo.put("pptnDataVo", pptnDataMap.get(it.getTm())); // vo.put("pptnDataVo", pptnDataMap.get(it.getTm()));
vo.put("tmpDataVo", tmpDataMap.get(it.getTm())); // vo.put("tmpDataVo", tmpDataMap.get(it.getTm()));
if (wtrvInfo.getType() == 1) { if (wtrvInfo.getType() == 1) {
Map<String, Object> iwtVo = new HashMap<>(); Map<String, Object> iwtVo = new HashMap<>();