fix: 优化逻辑
This commit is contained in:
parent
b03837f201
commit
be14b5aaf2
@ -1738,7 +1738,7 @@ public class VpConstructionServiceImpl implements VpConstructionService {
|
|||||||
columnMap.put("runState", "vp.RUN_STATE");
|
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("runStateName", "CASE NVL(vp.RUN_STATE, -1) WHEN 1 THEN '运行' WHEN 0 THEN '未运行' ELSE NULL END");
|
||||||
columnMap.put("baseStepSort", "hb.ORDER_INDEX");
|
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("rstcdStepSort", "eng.ORDER_INDEX");
|
||||||
columnMap.put("siteStepSort", "vp.ORDER_INDEX");
|
columnMap.put("siteStepSort", "vp.ORDER_INDEX");
|
||||||
return columnMap.get(field);
|
return columnMap.get(field);
|
||||||
|
|||||||
@ -51,9 +51,15 @@ public class StcdWarnStateVo {
|
|||||||
@Schema(description = "基础排序")
|
@Schema(description = "基础排序")
|
||||||
private Integer baseStepSort;
|
private Integer baseStepSort;
|
||||||
|
|
||||||
|
@Schema(description = "流域排序")
|
||||||
|
private Integer rvcdStepSort;
|
||||||
|
|
||||||
@Schema(description = "电站排序")
|
@Schema(description = "电站排序")
|
||||||
private Integer rstcdStepSort;
|
private Integer rstcdStepSort;
|
||||||
|
|
||||||
|
@Schema(description = "站点排序")
|
||||||
|
private Integer siteStepSort;
|
||||||
|
|
||||||
@Schema(description = "数据接入类型")
|
@Schema(description = "数据接入类型")
|
||||||
private Integer dtinType;
|
private Integer dtinType;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -325,7 +325,9 @@ public class WarnDataServiceImpl implements WarnDataService {
|
|||||||
.append("r.rvcd AS rvcd, ")
|
.append("r.rvcd AS rvcd, ")
|
||||||
.append("r.warnState AS warnState, ")
|
.append("r.warnState AS warnState, ")
|
||||||
.append("r.baseStepSort AS baseStepSort, ")
|
.append("r.baseStepSort AS baseStepSort, ")
|
||||||
|
.append("r.rvcdStepSort AS rvcdStepSort, ")
|
||||||
.append("r.rstcdStepSort AS rstcdStepSort, ")
|
.append("r.rstcdStepSort AS rstcdStepSort, ")
|
||||||
|
.append("r.siteStepSort AS siteStepSort, ")
|
||||||
.append("r.dtinType AS dtinType ")
|
.append("r.dtinType AS dtinType ")
|
||||||
.append("FROM (")
|
.append("FROM (")
|
||||||
.append(buildWarnStcdDetailSql(warnType))
|
.append(buildWarnStcdDetailSql(warnType))
|
||||||
@ -369,18 +371,16 @@ public class WarnDataServiceImpl implements WarnDataService {
|
|||||||
String normalizedWarnStateExpr = "CASE " +
|
String normalizedWarnStateExpr = "CASE " +
|
||||||
"WHEN eng.WARN_STATE = '0' OR eng.WARN_STATE IS NULL OR eng.WARN_STATE = '' THEN '00' " +
|
"WHEN eng.WARN_STATE = '0' OR eng.WARN_STATE IS NULL OR eng.WARN_STATE = '' THEN '00' " +
|
||||||
"ELSE eng.WARN_STATE END";
|
"ELSE eng.WARN_STATE END";
|
||||||
String nonEngWarnStateExpr = "CASE state.STD_SSTATE " +
|
String wqWarnStateExpr = "TO_NUMBER(NULLIF(wq.WARN_STATE, ''))";
|
||||||
"WHEN 2 THEN 0 " +
|
String wtWarnStateExpr = "TO_NUMBER(NULLIF(wt.WARN_STATE, ''))";
|
||||||
"WHEN 3 THEN 2 " +
|
|
||||||
"ELSE state.STD_SSTATE END";
|
|
||||||
|
|
||||||
List<String> parts = new ArrayList<>();
|
List<String> parts = new ArrayList<>();
|
||||||
if ("QEC".equalsIgnoreCase(warnType)) {
|
if ("QEC".equalsIgnoreCase(warnType)) {
|
||||||
parts.add(buildWarnStcdEngSql(normalizedWarnStateExpr, warnType));
|
parts.add(buildWarnStcdEngSql(normalizedWarnStateExpr, warnType));
|
||||||
} else {
|
} else {
|
||||||
parts.add(buildWarnStcdEngSql(normalizedWarnStateExpr, warnType));
|
parts.add(buildWarnStcdEngSql(normalizedWarnStateExpr, warnType));
|
||||||
parts.add(buildWarnStcdWqSql(nonEngWarnStateExpr));
|
parts.add(buildWarnStcdWqSql(wqWarnStateExpr));
|
||||||
parts.add(buildWarnStcdWtSql(nonEngWarnStateExpr));
|
parts.add(buildWarnStcdWtSql(wtWarnStateExpr));
|
||||||
}
|
}
|
||||||
return String.join(" UNION ALL ", parts);
|
return String.join(" UNION ALL ", parts);
|
||||||
}
|
}
|
||||||
@ -409,11 +409,14 @@ public class WarnDataServiceImpl implements WarnDataService {
|
|||||||
.append("eng.HBRVCD AS rvcd, ")
|
.append("eng.HBRVCD AS rvcd, ")
|
||||||
.append(warnStateExpr).append(" AS warnState, ")
|
.append(warnStateExpr).append(" AS warnState, ")
|
||||||
.append("hb.ORDER_INDEX AS baseStepSort, ")
|
.append("hb.ORDER_INDEX AS baseStepSort, ")
|
||||||
|
.append("along.ORDER_INDEX AS rvcdStepSort, ")
|
||||||
.append("eng.ORDER_INDEX AS rstcdStepSort, ")
|
.append("eng.ORDER_INDEX AS rstcdStepSort, ")
|
||||||
|
.append("eng.ORDER_INDEX AS siteStepSort, ")
|
||||||
.append("CAST(NULL AS NUMBER) AS dtinType ")
|
.append("CAST(NULL AS NUMBER) AS dtinType ")
|
||||||
.append("FROM SD_ENGINFO_B_H eng ")
|
.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_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 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 ");
|
.append("WHERE NVL(eng.IS_DELETED, 0) = 0 ");
|
||||||
if ("QEC".equalsIgnoreCase(warnType)) {
|
if ("QEC".equalsIgnoreCase(warnType)) {
|
||||||
sql.append("AND NVL(eng.BLDSTT_CODE, -1) = 2 ")
|
sql.append("AND NVL(eng.BLDSTT_CODE, -1) = 2 ")
|
||||||
@ -439,12 +442,15 @@ public class WarnDataServiceImpl implements WarnDataService {
|
|||||||
"eng.HBRVCD AS rvcd, " +
|
"eng.HBRVCD AS rvcd, " +
|
||||||
warnStateExpr + " AS warnState, " +
|
warnStateExpr + " AS warnState, " +
|
||||||
"hb.ORDER_INDEX AS baseStepSort, " +
|
"hb.ORDER_INDEX AS baseStepSort, " +
|
||||||
|
"along.ORDER_INDEX AS rvcdStepSort, " +
|
||||||
"eng.ORDER_INDEX AS rstcdStepSort, " +
|
"eng.ORDER_INDEX AS rstcdStepSort, " +
|
||||||
|
"siteAlong.SORT AS siteStepSort, " +
|
||||||
"wq.DTIN_TYPE AS dtinType " +
|
"wq.DTIN_TYPE AS dtinType " +
|
||||||
"FROM SD_WQ_B_H wq " +
|
"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_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 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 " +
|
"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 " +
|
"WHERE NVL(wq.IS_DELETED, 0) = 0 " +
|
||||||
"AND NVL(wq.USFL, 0) = 1 " +
|
"AND NVL(wq.USFL, 0) = 1 " +
|
||||||
@ -465,30 +471,21 @@ public class WarnDataServiceImpl implements WarnDataService {
|
|||||||
"eng.HBRVCD AS rvcd, " +
|
"eng.HBRVCD AS rvcd, " +
|
||||||
warnStateExpr + " AS warnState, " +
|
warnStateExpr + " AS warnState, " +
|
||||||
"hb.ORDER_INDEX AS baseStepSort, " +
|
"hb.ORDER_INDEX AS baseStepSort, " +
|
||||||
|
"along.ORDER_INDEX AS rvcdStepSort, " +
|
||||||
"eng.ORDER_INDEX AS rstcdStepSort, " +
|
"eng.ORDER_INDEX AS rstcdStepSort, " +
|
||||||
|
"siteAlong.SORT AS siteStepSort, " +
|
||||||
"wt.DTIN_TYPE AS dtinType " +
|
"wt.DTIN_TYPE AS dtinType " +
|
||||||
"FROM SD_WT_B_H wt " +
|
"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_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 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 " +
|
"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 " +
|
"WHERE NVL(wt.IS_DELETED, 0) = 0 " +
|
||||||
"AND NVL(wt.USFL, 0) = 1 " +
|
"AND NVL(wt.USFL, 0) = 1 " +
|
||||||
"AND wt.STTP = 'WTRV' ";
|
"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,
|
private String buildWarnStcdFilterCondition(DataSourceRequest.FilterDescriptor filter,
|
||||||
Map<String, Object> paramMap,
|
Map<String, Object> paramMap,
|
||||||
int[] indexHolder) {
|
int[] indexHolder) {
|
||||||
@ -595,6 +592,10 @@ public class WarnDataServiceImpl implements WarnDataService {
|
|||||||
case "baseName" -> "r.baseName";
|
case "baseName" -> "r.baseName";
|
||||||
case "rvcd" -> "r.rvcd";
|
case "rvcd" -> "r.rvcd";
|
||||||
case "warnState" -> "r.warnState";
|
case "warnState" -> "r.warnState";
|
||||||
|
case "baseStepSort" -> "r.baseStepSort";
|
||||||
|
case "rvcdStepSort" -> "r.rvcdStepSort";
|
||||||
|
case "rstcdStepSort" -> "r.rstcdStepSort";
|
||||||
|
case "siteStepSort" -> "r.siteStepSort";
|
||||||
case "dtinType" -> "r.dtinType";
|
case "dtinType" -> "r.dtinType";
|
||||||
default -> null;
|
default -> null;
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user