diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/vap/service/impl/VpConstructionServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/vap/service/impl/VpConstructionServiceImpl.java index 9a2ad153..fe46774a 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/vap/service/impl/VpConstructionServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/vap/service/impl/VpConstructionServiceImpl.java @@ -1738,7 +1738,7 @@ public class VpConstructionServiceImpl implements VpConstructionService { columnMap.put("runState", "vp.RUN_STATE"); columnMap.put("runStateName", "CASE NVL(vp.RUN_STATE, -1) WHEN 1 THEN '运行' WHEN 0 THEN '未运行' ELSE NULL END"); columnMap.put("baseStepSort", "hb.ORDER_INDEX"); - columnMap.put("rvcdStepSort", "hbrv.ORDER_INDEX"); +// columnMap.put("rvcdStepSort", "hbrv.ORDER_INDEX"); columnMap.put("rstcdStepSort", "eng.ORDER_INDEX"); columnMap.put("siteStepSort", "vp.ORDER_INDEX"); return columnMap.get(field); diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/warn/entity/vo/StcdWarnStateVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/warn/entity/vo/StcdWarnStateVo.java index 91edb18c..9843ffc3 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/warn/entity/vo/StcdWarnStateVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/warn/entity/vo/StcdWarnStateVo.java @@ -51,9 +51,15 @@ public class StcdWarnStateVo { @Schema(description = "基础排序") private Integer baseStepSort; + @Schema(description = "流域排序") + private Integer rvcdStepSort; + @Schema(description = "电站排序") private Integer rstcdStepSort; + @Schema(description = "站点排序") + private Integer siteStepSort; + @Schema(description = "数据接入类型") private Integer dtinType; } diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/warn/service/impl/WarnDataServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/warn/service/impl/WarnDataServiceImpl.java index d6b57df6..efd22964 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/warn/service/impl/WarnDataServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/warn/service/impl/WarnDataServiceImpl.java @@ -325,7 +325,9 @@ public class WarnDataServiceImpl implements WarnDataService { .append("r.rvcd AS rvcd, ") .append("r.warnState AS warnState, ") .append("r.baseStepSort AS baseStepSort, ") + .append("r.rvcdStepSort AS rvcdStepSort, ") .append("r.rstcdStepSort AS rstcdStepSort, ") + .append("r.siteStepSort AS siteStepSort, ") .append("r.dtinType AS dtinType ") .append("FROM (") .append(buildWarnStcdDetailSql(warnType)) @@ -369,18 +371,16 @@ public class WarnDataServiceImpl implements WarnDataService { String normalizedWarnStateExpr = "CASE " + "WHEN eng.WARN_STATE = '0' OR eng.WARN_STATE IS NULL OR eng.WARN_STATE = '' THEN '00' " + "ELSE eng.WARN_STATE END"; - String nonEngWarnStateExpr = "CASE state.STD_SSTATE " + - "WHEN 2 THEN 0 " + - "WHEN 3 THEN 2 " + - "ELSE state.STD_SSTATE END"; + String wqWarnStateExpr = "TO_NUMBER(NULLIF(wq.WARN_STATE, ''))"; + String wtWarnStateExpr = "TO_NUMBER(NULLIF(wt.WARN_STATE, ''))"; List parts = new ArrayList<>(); if ("QEC".equalsIgnoreCase(warnType)) { parts.add(buildWarnStcdEngSql(normalizedWarnStateExpr, warnType)); } else { parts.add(buildWarnStcdEngSql(normalizedWarnStateExpr, warnType)); - parts.add(buildWarnStcdWqSql(nonEngWarnStateExpr)); - parts.add(buildWarnStcdWtSql(nonEngWarnStateExpr)); + parts.add(buildWarnStcdWqSql(wqWarnStateExpr)); + parts.add(buildWarnStcdWtSql(wtWarnStateExpr)); } return String.join(" UNION ALL ", parts); } @@ -409,11 +409,14 @@ public class WarnDataServiceImpl implements WarnDataService { .append("eng.HBRVCD AS rvcd, ") .append(warnStateExpr).append(" AS warnState, ") .append("hb.ORDER_INDEX AS baseStepSort, ") + .append("along.ORDER_INDEX AS rvcdStepSort, ") .append("eng.ORDER_INDEX AS rstcdStepSort, ") + .append("eng.ORDER_INDEX AS siteStepSort, ") .append("CAST(NULL AS NUMBER) AS dtinType ") .append("FROM SD_ENGINFO_B_H eng ") .append("LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = 'ENG' AND NVL(sttp.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ") + .append("LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ") .append("WHERE NVL(eng.IS_DELETED, 0) = 0 "); if ("QEC".equalsIgnoreCase(warnType)) { sql.append("AND NVL(eng.BLDSTT_CODE, -1) = 2 ") @@ -439,12 +442,15 @@ public class WarnDataServiceImpl implements WarnDataService { "eng.HBRVCD AS rvcd, " + warnStateExpr + " AS warnState, " + "hb.ORDER_INDEX AS baseStepSort, " + + "along.ORDER_INDEX AS rvcdStepSort, " + "eng.ORDER_INDEX AS rstcdStepSort, " + + "siteAlong.SORT AS siteStepSort, " + "wq.DTIN_TYPE AS dtinType " + "FROM SD_WQ_B_H wq " + - "LEFT JOIN (" + buildWarnStcdLatestStateSql() + ") state ON state.STCD = wq.STCD AND state.STTP_CODE = wq.STTP " + "LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wq.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " + + "LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + + "LEFT JOIN MS_ALONGDET_B siteAlong ON siteAlong.ALONG_ID = along.ID AND siteAlong.STCD = wq.STCD AND NVL(siteAlong.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = wq.STTP AND NVL(sttp.IS_DELETED, 0) = 0 " + "WHERE NVL(wq.IS_DELETED, 0) = 0 " + "AND NVL(wq.USFL, 0) = 1 " + @@ -465,30 +471,21 @@ public class WarnDataServiceImpl implements WarnDataService { "eng.HBRVCD AS rvcd, " + warnStateExpr + " AS warnState, " + "hb.ORDER_INDEX AS baseStepSort, " + + "along.ORDER_INDEX AS rvcdStepSort, " + "eng.ORDER_INDEX AS rstcdStepSort, " + + "siteAlong.SORT AS siteStepSort, " + "wt.DTIN_TYPE AS dtinType " + "FROM SD_WT_B_H wt " + - "LEFT JOIN (" + buildWarnStcdLatestStateSql() + ") state ON state.STCD = wt.STCD AND state.STTP_CODE = wt.STTP " + "LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " + + "LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + + "LEFT JOIN MS_ALONGDET_B siteAlong ON siteAlong.ALONG_ID = along.ID AND siteAlong.STCD = wt.STCD AND NVL(siteAlong.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = wt.STTP AND NVL(sttp.IS_DELETED, 0) = 0 " + "WHERE NVL(wt.IS_DELETED, 0) = 0 " + "AND NVL(wt.USFL, 0) = 1 " + "AND wt.STTP = 'WTRV' "; } - private String buildWarnStcdLatestStateSql() { - return "SELECT s.STCD, s.STTP_CODE, s.STD_SSTATE " + - "FROM MS_STSTATE_T s " + - "INNER JOIN (" + - "SELECT STCD, MAX(YR) AS MAX_YR " + - "FROM MS_STSTATE_T " + - "WHERE NVL(IS_DELETED, 0) = 0 " + - "GROUP BY STCD" + - ") mx ON mx.STCD = s.STCD AND mx.MAX_YR = s.YR " + - "WHERE NVL(s.IS_DELETED, 0) = 0"; - } - private String buildWarnStcdFilterCondition(DataSourceRequest.FilterDescriptor filter, Map paramMap, int[] indexHolder) { @@ -595,6 +592,10 @@ public class WarnDataServiceImpl implements WarnDataService { case "baseName" -> "r.baseName"; case "rvcd" -> "r.rvcd"; case "warnState" -> "r.warnState"; + case "baseStepSort" -> "r.baseStepSort"; + case "rvcdStepSort" -> "r.rvcdStepSort"; + case "rstcdStepSort" -> "r.rstcdStepSort"; + case "siteStepSort" -> "r.siteStepSort"; case "dtinType" -> "r.dtinType"; default -> null; };