fix: 优化过鱼设施页面排序问题

This commit is contained in:
tangwei 2026-06-11 16:04:54 +08:00
parent 24abcffd67
commit 1da4ca420e

View File

@ -309,21 +309,78 @@ public class FpBuildServiceImpl implements FpBuildService {
} }
Map<String, String> columnMap = new HashMap<>(); Map<String, String> columnMap = new HashMap<>();
columnMap.put("stcd", "fp.STCD"); columnMap.put("stcd", "fp.STCD");
columnMap.put("logo", "fp.LOGO");
columnMap.put("stnm", "fp.STNM"); columnMap.put("stnm", "fp.STNM");
columnMap.put("sttpCode", "fp.STTP"); columnMap.put("sttpCode", "fp.STTP");
columnMap.put("sttpName", "sttp.STTP_NAME"); columnMap.put("sttpName", "sttp.STTP_NAME");
columnMap.put("sttpFullPath", "sttp.FULL_PATH"); columnMap.put("sttpFullPath", "sttp.FULL_PATH");
columnMap.put("sttpTreeLevel", "sttp.TREE_LEVEL");
columnMap.put("rstcd", "fp.RSTCD"); columnMap.put("rstcd", "fp.RSTCD");
columnMap.put("logo", "fp.LOGO");
columnMap.put("ennm", "eng.ENNM"); columnMap.put("ennm", "eng.ENNM");
columnMap.put("baseId", "eng.BASE_ID"); columnMap.put("baseId", "eng.BASE_ID");
columnMap.put("baseName", "hb.BASENAME"); columnMap.put("baseName", "hb.BASENAME");
columnMap.put("hbrvcd", "eng.HBRVCD"); columnMap.put("hbrvcd", "eng.HBRVCD");
columnMap.put("hbrvcdName", "hbrv.HBRVNM");
columnMap.put("lgtd", "fp.LGTD");
columnMap.put("lttd", "fp.LTTD");
columnMap.put("elev", "fp.ELEV");
columnMap.put("stlc", "fp.STLC");
columnMap.put("dtin", "fp.DTIN"); columnMap.put("dtin", "fp.DTIN");
columnMap.put("dtinName", "CASE WHEN NVL(fp.DTIN, 0) = 1 THEN '已接入' ELSE '未接入' END"); columnMap.put("dtinName", "CASE WHEN NVL(fp.DTIN, 0) = 1 THEN '已接入' ELSE '未接入' END");
columnMap.put("dtinTm", "fp.DTIN_TM");
columnMap.put("bldsttCcode", "fp.BLDSTT_CODE"); columnMap.put("bldsttCcode", "fp.BLDSTT_CODE");
columnMap.put("bldsttCcodeName", "CASE WHEN fp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN fp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END"); columnMap.put("bldsttCcodeName", "CASE WHEN fp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN fp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
columnMap.put("stdsdt", "fp.STDSDT");
columnMap.put("pststdt", "fp.PSTSTDT");
columnMap.put("pesstdt", "fp.PESSTDT");
columnMap.put("swdt", "fp.SWDT");
columnMap.put("jcdt", "fp.JCDT");
columnMap.put("wddt", "fp.WDDT");
columnMap.put("introduce", "fp.INTRODUCE");
columnMap.put("ydxs", "fp.YDXS"); columnMap.put("ydxs", "fp.YDXS");
columnMap.put("ydzcd", "fp.YDZCD");
columnMap.put("ydjkz", "fp.YDJKZ");
columnMap.put("ydjkcnt", "fp.YDJKCNT");
columnMap.put("jkhg", "fp.JKHG");
columnMap.put("ydyyxs", "fp.YDYYXS");
columnMap.put("ydckz", "fp.YDCKZ");
columnMap.put("ydckcnt", "fp.YDCKCNT");
columnMap.put("ckhg", "fp.CKHG");
columnMap.put("ydcsv", "fp.YDCSV");
columnMap.put("ydcscd", "fp.YDCSCD");
columnMap.put("ydcskd", "fp.YDCSKD");
columnMap.put("ydcspd", "fp.YDCSPD");
columnMap.put("ydcscnt", "fp.YDCSCNT");
columnMap.put("ydxxccnt", "fp.YDXXCCNT");
columnMap.put("v", "fp.V");
columnMap.put("fzrdmxz", "fp.FZRDMXZ");
columnMap.put("fzrtdsz", "fp.FZRTDSZ");
columnMap.put("fzryxwdp", "fp.FZRYXWDP");
columnMap.put("fzrpj", "fp.FZRPJ");
columnMap.put("symtlc", "fp.SYMTLC");
columnMap.put("symtxs", "fp.SYMTXS");
columnMap.put("xymtlc", "fp.XYMTLC");
columnMap.put("xymtxs", "fp.XYMTXS");
columnMap.put("jyfs", "fp.JYFS");
columnMap.put("yyfs", "fp.YYFS");
columnMap.put("syjcnt", "fp.SYJCNT");
columnMap.put("syjhg", "fp.SYJHG");
columnMap.put("syjq", "fp.SYJQ");
columnMap.put("syjsz", "fp.SYJSZ");
columnMap.put("syjwdp", "fp.SYJWDP");
columnMap.put("sjgycnt", "fp.SJGYCNT");
columnMap.put("zygydxms", "fp.ZYGYDXMS");
columnMap.put("jggydxms", "fp.JGGYDXMS");
columnMap.put("gytm", "fp.GYTM");
columnMap.put("yxtm", "fp.YXTM");
columnMap.put("fpssmn", "fp.FPSSMN");
columnMap.put("dtfrqcy", "fp.DTFRQCY");
columnMap.put("jbtxcs", "fp.JBTXCS");
columnMap.put("isUp", "fp.IS_UP");
columnMap.put("isDown", "fp.IS_DOWN");
columnMap.put("remark", "fp.REMARK");
columnMap.put("vlsr", "fp.VLSR");
columnMap.put("vlsrTm", "fp.VLSR_TM");
columnMap.put("siteStepSort", "fp.ORDER_INDEX"); columnMap.put("siteStepSort", "fp.ORDER_INDEX");
columnMap.put("rstcdStepSort", "eng.ORDER_INDEX"); columnMap.put("rstcdStepSort", "eng.ORDER_INDEX");
columnMap.put("baseStepSort", "hb.ORDER_INDEX"); columnMap.put("baseStepSort", "hb.ORDER_INDEX");
@ -336,34 +393,17 @@ public class FpBuildServiceImpl implements FpBuildService {
return " ORDER BY NVL(hb.ORDER_INDEX, 999999) ASC, NVL(hbrv.ORDER_INDEX, 999999) ASC, " + return " ORDER BY NVL(hb.ORDER_INDEX, 999999) ASC, NVL(hbrv.ORDER_INDEX, 999999) ASC, " +
"NVL(eng.ORDER_INDEX, 999999) ASC, NVL(fp.ORDER_INDEX, 999999) ASC, fp.STCD ASC"; "NVL(eng.ORDER_INDEX, 999999) ASC, NVL(fp.ORDER_INDEX, 999999) ASC, fp.STCD ASC";
} }
Map<String, String> sortMap = new HashMap<>();
sortMap.put("stcd", "fp.STCD");
sortMap.put("stnm", "fp.STNM");
sortMap.put("sttpCode", "fp.STTP");
sortMap.put("sttpName", "sttp.STTP_NAME");
sortMap.put("rstcd", "fp.RSTCD");
sortMap.put("ennm", "eng.ENNM");
sortMap.put("baseId", "eng.BASE_ID");
sortMap.put("baseName", "hb.BASENAME");
sortMap.put("hbrvcd", "eng.HBRVCD");
sortMap.put("dtin", "fp.DTIN");
sortMap.put("bldsttCcode", "fp.BLDSTT_CODE");
sortMap.put("baseStepSort", "hb.ORDER_INDEX");
sortMap.put("rvcdStepSort", "hbrv.ORDER_INDEX");
sortMap.put("rstcdStepSort", "eng.ORDER_INDEX");
sortMap.put("siteStepSort", "fp.ORDER_INDEX");
List<String> orderItems = new ArrayList<>(); List<String> orderItems = new ArrayList<>();
for (DataSourceRequest.SortDescriptor sort : sorts) { for (DataSourceRequest.SortDescriptor sort : sorts) {
if (sort == null || sort.getField() == null || sort.getField().isBlank()) { if (sort == null || sort.getField() == null || sort.getField().isBlank()) {
continue; continue;
} }
String column = sortMap.get(sort.getField()); String column = mapVmsstbprptColumn(sort.getField());
if (column == null) { if (column == null) {
continue; continue;
} }
String direction = "desc".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC"; String direction = "desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction); orderItems.add(column + " " + direction + " NULLS LAST");
} }
if (orderItems.isEmpty()) { if (orderItems.isEmpty()) {
return " ORDER BY NVL(hb.ORDER_INDEX, 999999) ASC, NVL(hbrv.ORDER_INDEX, 999999) ASC, " + return " ORDER BY NVL(hb.ORDER_INDEX, 999999) ASC, NVL(hbrv.ORDER_INDEX, 999999) ASC, " +