fix: 优化列表排序

This commit is contained in:
tangwei 2026-06-11 16:23:24 +08:00
parent 1da4ca420e
commit 9ceb2899d0
9 changed files with 295 additions and 92 deletions

View File

@ -4083,10 +4083,17 @@ public class EngEqDataServiceImpl implements EngEqDataService {
}
return switch (field) {
case "id" -> "t.id";
case "recordUser" -> "t.recordUser";
case "wbsType" -> "t.wbsType";
case "recordTime" -> "t.recordTime";
case "modifyTime" -> "t.modifyTime";
case "displayRecordUser" -> "t.displayRecordUser";
case "isolateType" -> "t.isolateType";
case "wbsCode" -> "t.wbsCode";
case "wbsName" -> "t.wbsName";
case "wbsSname" -> "t.wbsSname";
case "wbsNameEn" -> "t.wbsNameEn";
case "wbsSnameEn" -> "t.wbsSnameEn";
case "enable" -> "t.enable";
case "description" -> "t.description";
case "parentId" -> "t.parentId";
@ -4097,10 +4104,28 @@ public class EngEqDataServiceImpl implements EngEqDataService {
case "topWbsType" -> "t.topWbsType";
case "fullPath" -> "t.fullPath";
case "internal" -> "t.internal";
case "lgtd" -> "t.lgtd";
case "lttd" -> "t.lttd";
case "area" -> "t.area";
case "perimeter" -> "t.perimeter";
case "synopsis" -> "t.synopsis";
case "introduce" -> "t.introduce";
case "logo" -> "t.logo";
case "inffile" -> "t.inffile";
case "orderIndex" -> "NVL(t.orderIndex, 999999)";
case "recordTime" -> "t.recordTime";
case "modifyTime" -> "t.modifyTime";
case "filterContent" -> "t.filterContent";
case "departmentId" -> "t.departmentId";
case "systemId" -> "t.systemId";
case "platformId" -> "t.platformId";
case "reachWwqtg" -> "t.reachWwqtg";
case "maxElev" -> "t.maxElev";
case "minElev" -> "t.minElev";
case "datTp" -> "t.datTp";
case "rvAg" -> "t.rvAg";
case "ifInnRv" -> "t.ifInnRv";
case "showControl" -> "t.showControl";
case "stcd" -> "t.stcd";
case "displayDepartment" -> "t.displayDepartment";
default -> null;
};
}
@ -4195,7 +4220,10 @@ public class EngEqDataServiceImpl implements EngEqDataService {
return null;
}
return switch (field) {
case "baseStepSort", "rvcdStepSort", "rstcdStepSort", "siteStepSort",
case "id", "baseId", "hbrvcd", "hycd", "rvcd", "bldsttCcode",
"sfdbName", "mwrSfdb", "mwrSfdbName", "avqSfdb", "avqSfdbName",
"qecC", "mwrC", "avqC", "qecRuleDid", "qecMwrruleDid", "beforeQec",
"baseStepSort", "rvcdStepSort", "rstcdStepSort", "siteStepSort",
"tm", "stcd", "stnm", "ennm", "qi", "qo", "qec", "sfdb",
"rz", "dz", "qecLimit", "mwrLimit", "avqLimit", "baseName",
"rvcdName", "hbrvcdName", "addvcdName", "qecAi" -> field;
@ -4208,7 +4236,10 @@ public class EngEqDataServiceImpl implements EngEqDataService {
return null;
}
return switch (field) {
case "baseStepSort", "rvcdStepSort", "rstcdStepSort", "siteStepSort",
case "id", "baseId", "hbrvcd", "rvcd", "qecC", "mwrC", "avqC",
"sfdbName", "qecSfdb", "mwrSfdb", "mwrSfdbName", "avqSfdb",
"avqSfdbName", "qecRuleDid", "qecMwrruleDid",
"baseStepSort", "rvcdStepSort", "rstcdStepSort", "siteStepSort",
"dt", "stcd", "stnm", "ennm", "qi", "qo", "qec", "sfdb",
"rz", "dz", "qecLimit", "mwrLimit", "avqLimit", "baseName",
"rvcdName", "hbrvcdName", "addvcdName", "beforeQec" -> field;

View File

@ -400,8 +400,11 @@ public class EngRiverServiceImpl implements EngRiverService {
case "hbrvcd" -> "t.HBRVCD";
case "hbrvcdName" -> "t.HBRVCDNAME";
case "bldsttCcode" -> "t.BLDSTTCCODE";
case "vdid" -> "t.VDID";
case "rzVideo" -> "t.RZVIDEO";
case "speedVideo" -> "t.SPEEDVIDEO";
case "rzVideoPath" -> "t.RZVIDEOPATH";
case "speedVideoPath" -> "t.SPEEDVIDEOPATH";
case "baseStepSort" -> "t.BASESTEPSORT";
case "rvcdStepSort" -> "t.RVCDSTEPSORT";
case "rstcdStepSort" -> "t.RSTCDSTEPSORT";

View File

@ -860,6 +860,16 @@ public class FhHabitatServiceImpl implements FhHabitatService {
sortMap.put("vlsr", "t.VLSR");
sortMap.put("dtinType", "t.DTIN_TYPE");
sortMap.put("enable", "t.ENABLE");
sortMap.put("qxdbhdx", "t.QXDBHDX");
sortMap.put("qxdbhfw", "t.QXDBHFW");
sortMap.put("qxdbhcd", "t.QXDBHCD");
sortMap.put("qxdbhmj", "t.QXDBHMJ");
sortMap.put("bhhl", "t.BHHL");
sortMap.put("bhhd", "t.BHHD");
sortMap.put("bhcs", "t.BHCS");
sortMap.put("qxdbhfs", "t.QXDBHFS");
sortMap.put("qxdbhhxcd", "t.QXDBHHXCD");
sortMap.put("qxdbhwwcd", "t.QXDBHWWCD");
sortMap.put("fhmonitor", "t.FHMONITOR");
sortMap.put("dtfrqcy", "t.DTFRQCY");
sortMap.put("qxdinv", "t.QXDINV");
@ -870,15 +880,15 @@ public class FhHabitatServiceImpl implements FhHabitatService {
sortMap.put("baseStepSort", "t.BASESTEPSORT");
List<String> orderItems = new ArrayList<>();
for (DataSourceRequest.SortDescriptor sort : sorts) {
if (sort == null || !Boolean.TRUE.equals(sort.getNeedSortFlag())) {
if (sort == null || StrUtil.isBlank(sort.getField())) {
continue;
}
String column = sortMap.get(sort.getField());
if (column == null) {
continue;
}
String direction = "desc".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction);
String direction = "desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction + " NULLS LAST");
}
if (orderItems.isEmpty()) {
return " ORDER BY t.BASESTEPSORT ASC, t.RVCDSTEPSORT ASC, t.RSTCDSTEPSORT ASC, t.SITESTEPSORT ASC, t.STCD ASC";
@ -1028,6 +1038,16 @@ public class FhHabitatServiceImpl implements FhHabitatService {
sortMap.put("esstdt", "fh.ATTM");
sortMap.put("dtin", "fh.DTIN");
sortMap.put("enable", "fh.USFL");
sortMap.put("qxdbhdx", "fh.BHDX");
sortMap.put("qxdbhfw", "fh.BHFW");
sortMap.put("qxdbhcd", "fh.BHCD");
sortMap.put("qxdbhmj", "fh.BHMJ");
sortMap.put("bhhl", "fh.BHHL");
sortMap.put("bhhd", "fh.BHHD");
sortMap.put("bhcs", "fh.BHCS");
sortMap.put("qxdbhfs", "fh.BHFS");
sortMap.put("qxdbhhxcd", "fh.BHHXCD");
sortMap.put("qxdbhwwcd", "fh.BHWWCD");
sortMap.put("dtfrqcy", "fh.DTFRQCY");
sortMap.put("qxdinv", "fh.INV");
sortMap.put("baseStepSort", "hb.ORDER_INDEX");
@ -1036,15 +1056,15 @@ public class FhHabitatServiceImpl implements FhHabitatService {
sortMap.put("rvcdStepSort", "along.ORDER_INDEX");
List<String> orderItems = new ArrayList<>();
for (DataSourceRequest.SortDescriptor sort : sorts) {
if (sort == null || !Boolean.TRUE.equals(sort.getNeedSortFlag())) {
if (sort == null || StrUtil.isBlank(sort.getField())) {
continue;
}
String column = sortMap.get(sort.getField());
if (column == null) {
continue;
}
String direction = "desc".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction);
String direction = "desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction + " NULLS LAST");
}
if (orderItems.isEmpty()) {
return " ORDER BY hb.ORDER_INDEX ASC, along.ORDER_INDEX ASC, rstAlong.SORT ASC, fh.ORDER_INDEX ASC, fh.STCD ASC";
@ -1355,6 +1375,8 @@ public class FhHabitatServiceImpl implements FhHabitatService {
case "bhhd" -> "t.bhhd";
case "bhcs" -> "t.bhcs";
case "qxdbhfs" -> "t.qxdbhfs";
case "qxdbhhxcd" -> "t.qxdbhhxcd";
case "qxdbhwwcd" -> "t.qxdbhwwcd";
case "ststdt" -> "t.ststdt";
case "usfl", "enable" -> "t.usfl";
case "baseStepSort" -> "t.baseStepSort";
@ -1379,7 +1401,7 @@ public class FhHabitatServiceImpl implements FhHabitatService {
continue;
}
String dir = ("desc".equalsIgnoreCase(sortDescriptor.getDir()) || "des".equalsIgnoreCase(sortDescriptor.getDir())) ? "DESC" : "ASC";
orders.add(column + " " + dir);
orders.add(column + " " + dir + " NULLS LAST");
}
if (orders.isEmpty()) {
return " ORDER BY t.baseStepSort ASC, t.rvcdStepSort ASC, t.rstcdStepSort ASC, t.siteStepSort ASC, t.stcd ASC";

View File

@ -675,6 +675,8 @@ public class FpRunServiceImpl implements FpRunService {
case "speed" -> "t.SPEED";
case "firstimgurl" -> "t.FIRSTIMGURL";
case "videourl" -> "t.VIDEOURL";
case "vdpth" -> "t.VDPTH";
case "picpth" -> "t.PICPTH";
case "fwet" -> "t.FWET";
case "fid" -> "t.FID";
case "upFcnt" -> "t.UPFCNT";
@ -1085,7 +1087,10 @@ public class FpRunServiceImpl implements FpRunService {
case "fcnt" -> "t.FCNT";
case "fsz" -> "t.FSZ";
case "fid" -> "t.FID";
case "picpth" -> "t.PICPTH";
case "vdpth" -> "t.VDPTH";
case "direction" -> "t.DIRECTION";
case "directionName" -> "t.DIRECTIONNAME";
case "mway" -> "t.MWAY";
case "strdt" -> "t.STRDT";
case "enddt" -> "t.ENDDT";

View File

@ -394,6 +394,10 @@ public class VpConstructionServiceImpl implements VpConstructionService {
columnMap.put("bldsttName", "CASE WHEN NVL(vp.BLDSTT_CODE, 0) = 2 THEN '已建' WHEN NVL(vp.BLDSTT_CODE, 0) = 1 THEN '在建' ELSE '未建/规划' END");
columnMap.put("ststdt", "vp.SWDT");
columnMap.put("jcdt", "vp.JCDT");
columnMap.put("esstdt", "vp.ESSTDT");
columnMap.put("logo", "vp.LOGO");
columnMap.put("introduce", "vp.INTRODUCE");
columnMap.put("inffile", "vp.INFFILE");
return columnMap.get(field);
}
@ -402,35 +406,25 @@ public class VpConstructionServiceImpl implements VpConstructionService {
return " ORDER BY NVL(hb.ORDER_INDEX, 999999) ASC, NVL(eng.ORDER_INDEX, 999999) ASC, "
+ "NVL(vp.ORDER_INDEX, 999999) ASC, vp.STCD ASC";
}
Map<String, String> sortMap = new HashMap<>();
sortMap.put("stcd", "vp.STCD");
sortMap.put("stnm", "vp.STNM");
sortMap.put("sttpCode", "vp.STTP");
sortMap.put("sttpName", "sttp.STTP_NAME");
sortMap.put("baseId", "vp.BASE_ID");
sortMap.put("baseName", "hb.BASENAME");
sortMap.put("ennm", "eng.ENNM");
sortMap.put("dtin", "vp.DTIN");
sortMap.put("dtinName", "CASE WHEN NVL(vp.DTIN, 0) = 1 THEN '已接入' ELSE '未接入' END");
sortMap.put("bldstt", "vp.BLDSTT_CODE");
sortMap.put("bldsttName", "CASE WHEN NVL(vp.BLDSTT_CODE, 0) = 2 THEN '已建' WHEN NVL(vp.BLDSTT_CODE, 0) = 1 THEN '在建' ELSE '未建/规划' END");
sortMap.put("ststdt", "vp.SWDT");
sortMap.put("jcdt", "vp.JCDT");
sortMap.put("baseStepSort", "hb.ORDER_INDEX");
sortMap.put("rstcdStepSort", "eng.ORDER_INDEX");
sortMap.put("siteStepSort", "vp.ORDER_INDEX");
List<String> orderItems = new ArrayList<>();
for (DataSourceRequest.SortDescriptor sort : sorts) {
if (sort == null || StrUtil.isBlank(sort.getField())) {
continue;
}
String column = sortMap.get(sort.getField());
String column = mapColumn(sort.getField());
if (StrUtil.isBlank(column)) {
column = switch (sort.getField()) {
case "baseStepSort" -> "hb.ORDER_INDEX";
case "rstcdStepSort" -> "eng.ORDER_INDEX";
case "siteStepSort" -> "vp.ORDER_INDEX";
default -> null;
};
}
if (StrUtil.isBlank(column)) {
continue;
}
String direction = "desc".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction);
String direction = "desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction + " NULLS LAST");
}
if (orderItems.isEmpty()) {
return " ORDER BY NVL(hb.ORDER_INDEX, 999999) ASC, NVL(eng.ORDER_INDEX, 999999) ASC, "
@ -770,15 +764,44 @@ public class VpConstructionServiceImpl implements VpConstructionService {
columnMap.put("sttp", "vp.STTP");
columnMap.put("sttpCode", "vp.STTP");
columnMap.put("sttpName", "sttp.STTP_NAME");
columnMap.put("sttpFullPath", "sttp.FULL_PATH");
columnMap.put("sttpTreeLevel", "sttp.TREE_LEVEL");
columnMap.put("baseId", "vp.BASE_ID");
columnMap.put("baseName", "hb.BASENAME");
columnMap.put("rstcd", "vp.RSTCD");
columnMap.put("ennm", "eng.ENNM");
columnMap.put("hbrvcd", "vp.HBRVCD");
columnMap.put("hbrvcdName", "hbrv.HBRVNM");
columnMap.put("rvcd", "eng.REACHCD");
columnMap.put("rvcdName", "rv.RVNM");
columnMap.put("lgtd", "vp.LGTD");
columnMap.put("lttd", "vp.LTTD");
columnMap.put("stlc", "vp.STLC");
columnMap.put("dtin", "vp.DTIN");
columnMap.put("dtinName", "CASE WHEN NVL(vp.DTIN, 0) = 1 THEN '已接入' ELSE '未接入' END");
columnMap.put("dtinTm", "vp.DTIN_TM");
columnMap.put("bldstt", "vp.BLPRD");
columnMap.put("bldsttCcode", "vp.BLDSTT_CODE");
columnMap.put("bldsttName", "CASE WHEN vp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN vp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
columnMap.put("bldsttCcodeName", "CASE WHEN vp.BLDSTT_CODE IN (1, 10, 11) THEN '已建' WHEN vp.BLDSTT_CODE IN (2, 7, 8) THEN '在建' ELSE '未建/规划' END");
columnMap.put("stdsdt", "vp.STDSDT");
columnMap.put("ststdt", "vp.STDSDT");
columnMap.put("pststdt", "vp.PSTSTDT");
columnMap.put("pesstdt", "vp.PESSTDT");
columnMap.put("esstdt", "vp.ESSTDT");
columnMap.put("jcdt", "vp.JCDT");
columnMap.put("logo", "vp.LOGO");
columnMap.put("introduce", "vp.INTRODUCE");
columnMap.put("inffile", "vp.INFFILE");
columnMap.put("inv", "vp.INV");
columnMap.put("aptl", "vp.APTL");
columnMap.put("area", "vp.AREA");
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("rstcdStepSort", "eng.ORDER_INDEX");
columnMap.put("siteStepSort", "vp.ORDER_INDEX");
return columnMap.get(field);
}
@ -834,35 +857,17 @@ public class VpConstructionServiceImpl implements VpConstructionService {
return " ORDER BY NVL(eng.ORDER_INDEX, 999999) ASC, NVL(eng.ORDER_INDEX, 999999) ASC, "
+ "NVL(vp.ORDER_INDEX, 999999) ASC, vp.STCD ASC";
}
Map<String, String> sortMap = new HashMap<>();
sortMap.put("stcd", "vp.STCD");
sortMap.put("stnm", "vp.STNM");
sortMap.put("sttp", "vp.STTP");
sortMap.put("sttpCode", "vp.STTP");
sortMap.put("sttpName", "sttp.STTP_NAME");
sortMap.put("baseId", "vp.BASE_ID");
sortMap.put("baseName", "hb.BASENAME");
sortMap.put("rstcd", "vp.RSTCD");
sortMap.put("ennm", "eng.ENNM");
sortMap.put("dtin", "vp.DTIN");
sortMap.put("bldstt", "vp.BLPRD");
sortMap.put("bldsttCcode", "vp.BLDSTT_CODE");
sortMap.put("rvcdStepSort", "eng.ORDER_INDEX");
sortMap.put("rstcdStepSort", "eng.ORDER_INDEX");
sortMap.put("siteStepSort", "vp.ORDER_INDEX");
sortMap.put("baseStepSort", "hb.ORDER_INDEX");
List<String> orderItems = new ArrayList<>();
for (DataSourceRequest.SortDescriptor sort : sorts) {
if (sort == null || StrUtil.isBlank(sort.getField())) {
continue;
}
String column = sortMap.get(sort.getField());
String column = mapVmsstbprptColumn(sort.getField());
if (StrUtil.isBlank(column)) {
continue;
}
String direction = "desc".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction);
String direction = "desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction + " NULLS LAST");
}
if (orderItems.isEmpty()) {
return " ORDER BY NVL(eng.ORDER_INDEX, 999999) ASC, NVL(eng.ORDER_INDEX, 999999) ASC, "

View File

@ -844,6 +844,13 @@ public class VdMonitorServiceImpl implements VdMonitorService {
case "sttpFullPath" -> "t.sttpFullPath";
case "stcd" -> "t.stcd";
case "stnm" -> "t.stnm";
case "mntp" -> "t.mntp";
case "stlc" -> "t.stlc";
case "lgtd" -> "t.lgtd";
case "lttd" -> "t.lttd";
case "elev" -> "t.elev";
case "jcdt" -> "t.jcdt";
case "wddt" -> "t.wddt";
case "rstcd" -> "t.rstcd";
case "ennm" -> "t.ennm";
case "fhstcd" -> "t.fhstcd";
@ -853,14 +860,28 @@ public class VdMonitorServiceImpl implements VdMonitorService {
case "baseId" -> "t.baseId";
case "baseName" -> "t.baseName";
case "hbrvcd" -> "t.hbrvcd";
case "hbrvcdName" -> "t.hbrvcdName";
case "dtinName" -> "t.dtinName";
case "bldsttCcode" -> "t.bldsttCcode";
case "bldsttCcodeName" -> "t.bldsttCcodeName";
case "stindx" -> "t.stindx";
case "introduce" -> "t.introduce";
case "logo" -> "t.logo";
case "inffile" -> "t.inffile";
case "dtfrqcy" -> "t.dtfrqcy";
case "remark" -> "t.remark";
case "vlsr" -> "t.vlsr";
case "vlsrTm" -> "t.vlsrTm";
case "rvcd" -> "t.rvcd";
case "addvcd" -> "t.addvcd";
case "dtin" -> "t.dtin";
case "usfl" -> "t.usfl";
case "bldsttCcode" -> "t.bldsttCcode";
case "url" -> "t.url";
case "playWay" -> "t.playWay";
case "sourceTable" -> "t.sourceTable";
case "baseStepSort" -> "t.baseStepSort";
case "rstcdStepSort" -> "t.rstcdStepSort";
case "siteStepSort" -> "t.siteStepSort";
default -> null;
};
}
@ -937,8 +958,8 @@ public class VdMonitorServiceImpl implements VdMonitorService {
if (StrUtil.isBlank(column)) {
continue;
}
String direction = "desc".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction);
String direction = "desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + direction + " NULLS LAST");
}
if (orderItems.isEmpty()) {
return " ORDER BY t.baseStepSort ASC, t.rstcdStepSort ASC, t.siteStepSort ASC, t.stcd ASC";

View File

@ -1034,6 +1034,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
case "stcd" -> "T.STCD";
case "tm" -> "T.TM";
case "wqgrd" -> "T.WQGRD";
case "wqgrdName" -> "T.WQGRD_NAME";
case "ph" -> "T.PH";
case "dox" -> "T.DOX";
case "codmn" -> "T.CODMN";
@ -1070,14 +1071,23 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
case "tu" -> "T.TU";
case "cyano" -> "T.CYANO";
case "sfdb" -> "T.SFDB";
case "sfdbName" -> "T.SFDB_NAME";
case "wtmp" -> "T.WTMP";
case "dtinType" -> "T.DTIN_TYPE";
case "tod" -> "T.TOD";
case "wqSfdbhnYs" -> "T.WQ_SFDBHN_YS";
case "wqSfdbhnYsName" -> "T.WQ_SFDBHN_YS_NAME";
case "rvcdName" -> "T.RVCD_NAME";
case "addvcdName" -> "T.ADDVCD_NAME";
case "qi" -> "T.QI";
case "qo" -> "T.QO";
case "siteStepSort" -> "T.SITESTEPSORT";
case "baseStepSort" -> "T.BASESTEPSORT";
case "rvcdStepSort" -> "T.RVCDSTEPSORT";
case "rstcdStepSort" -> "T.RSTCDSTEPSORT";
case "sttpCode" -> "T.STTP_CODE";
case "minVal" -> "T.MINVAL";
case "maxVal" -> "T.MAXVAL";
default -> null;
};
}
@ -2107,6 +2117,8 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
case "coenvwState", "dtin", "dtinType" -> "CASE WHEN NVL(eng.DTIN, 0) = 1 THEN 1 ELSE 0 END";
case "sttpCode" -> "'ENG'";
case "stcd", "rstcd" -> "eng.STCD";
case "stCode" -> "eng.STCD";
case "stName" -> "eng.ENNM";
case "dvtp" -> "eng.DVTP";
case "baseStepSort" -> "hb.ORDER_INDEX";
case "hbrvcd" -> "eng.HBRVCD";
@ -2125,6 +2137,8 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
case "sttpCode" -> "wq.STTP";
case "stcd" -> "wq.STCD";
case "rstcd" -> "wq.RSTCD";
case "stCode" -> "wq.STCD";
case "stName" -> "wq.STNM";
case "dvtp" -> "eng.DVTP";
case "baseStepSort" -> "hb.ORDER_INDEX";
case "hbrvcd" -> "eng.HBRVCD";
@ -2150,7 +2164,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
continue;
}
String dir = ("desc".equalsIgnoreCase(sortDescriptor.getDir()) || "des".equalsIgnoreCase(sortDescriptor.getDir())) ? "DESC" : "ASC";
orderColumns.add(column + " " + dir);
orderColumns.add(column + " " + dir + " NULLS LAST");
}
}
if (orderColumns.isEmpty()) {
@ -2287,6 +2301,45 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
case "fhstcd" -> "t.FHSTCD";
case "baseId" -> "t.BASE_ID";
case "dtin" -> "t.DTIN";
case "tm" -> "t.TM";
case "sttp" -> "t.STTP";
case "lgtd" -> "t.LGTD";
case "lttd" -> "t.LTTD";
case "elev" -> "t.ELEV";
case "stlc" -> "t.STLC";
case "wwqtg" -> "t.WWQTG";
case "wqtype" -> "t.WQTYPE";
case "jcdt" -> "t.JCDT";
case "wddt" -> "t.WDDT";
case "bldsttCode" -> "t.BLDSTT_CODE";
case "introduce" -> "t.INTRODUCE";
case "logo" -> "t.LOGO";
case "inffile" -> "t.INFFILE";
case "usfl" -> "t.USFL";
case "dtinSrc" -> "t.DTIN_SRC";
case "dtinTm" -> "t.DTIN_TM";
case "stindx" -> "t.STINDX";
case "orderIndex" -> "t.ORDER_INDEX";
case "rstcd" -> "t.RSTCD";
case "ennm" -> "eng.ENNM";
case "baseName" -> "hb.BASENAME";
case "hbrvcd" -> "eng.HBRVCD";
case "hbrvcdName" -> "hbrv.HBRVNM";
case "rvcd" -> "eng.RVCD";
case "rvcdName" -> "rv.RVNM";
case "addvcd" -> "eng.ADDVCD";
case "addvcdName" -> "addv.ADDVNM";
case "ispro" -> "t.ISPRO";
case "dtfrqcy" -> "t.DTFRQCY";
case "remark" -> "t.REMARK";
case "vlsr" -> "t.VLSR";
case "vlsrTm" -> "t.VLSR_TM";
case "recordUser" -> "t.RECORD_USER";
case "recordTime" -> "t.RECORD_TIME";
case "modifyUser" -> "t.MODIFY_USER";
case "modifyTime" -> "t.MODIFY_TIME";
case "deleteUser" -> "t.DELETE_USER";
case "deleteTime" -> "t.DELETE_TIME";
default -> null;
};
}
@ -2441,25 +2494,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
if (sortDescriptor == null || StrUtil.isBlank(sortDescriptor.getField())) {
continue;
}
String column = switch (sortDescriptor.getField()) {
case "stcd" -> "t.STCD";
case "stnm" -> "t.STNM";
case "tm" -> "t.TM";
case "sttp" -> "t.STTP";
case "jcdt" -> "t.JCDT";
case "rstcd" -> "t.RSTCD";
case "ennm" -> "eng.ENNM";
case "baseId" -> "eng.BASE_ID";
case "baseName" -> "hb.BASENAME";
case "hbrvcd" -> "eng.HBRVCD";
case "rvcd" -> "eng.RVCD";
case "fhstcd" -> "t.FHSTCD";
case "mway" -> "t.MWAY";
case "dtin" -> "t.DTIN";
case "dtinType" -> "t.DTIN_TYPE";
case "orderIndex" -> "t.ORDER_INDEX";
default -> null;
};
String column = mapMsstbprptColumn(sortDescriptor.getField());
if (StrUtil.isBlank(column)) {
continue;
}
@ -2519,7 +2554,8 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
sql.append(", ");
}
sql.append(column).append(" ")
.append("desc".equalsIgnoreCase(sortDescriptor.getDir()) ? "DESC" : "ASC");
.append(("desc".equalsIgnoreCase(sortDescriptor.getDir()) || "des".equalsIgnoreCase(sortDescriptor.getDir())) ? "DESC" : "ASC")
.append(" NULLS LAST");
appended = true;
}
return appended ? sql.toString() : "";

View File

@ -1660,6 +1660,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
case "stnm" -> "t.STNM";
case "baseId" -> "t.BASEID";
case "dt" -> "t.DT";
case "monthInt", "month" -> "EXTRACT(MONTH FROM t.DT)";
case "wt", "actualTemp" -> "t.WT";
case "sttp" -> "t.STTP";
case "sumVal" -> "t.SUMVAL";
@ -1873,7 +1874,18 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
case "sttpName" -> "t.STTP_NAME";
case "description" -> "t.DESCRIPTION";
case "parentId" -> "t.PARENT_ID";
// case "enable" -> "t.ENABLED";
case "displayRecordUser" -> "t.DISPLAY_RECORD_USER";
case "isolateType" -> "t.ISOLATE_TYPE";
case "stbprpCnt" -> "t.STBPRP_CNT";
case "recordUserName" -> "t.RECORD_USER_NAME";
case "modifyUserName" -> "t.MODIFY_USER_NAME";
case "displayDepartment" -> "t.DISPLAY_DEPARTMENT";
case "enable" -> "t.ENABLE";
case "filterContent" -> "t.FILTER_CONTENT";
case "isTempStorage" -> "t.IS_TEMP_STORAGE";
case "departmentId" -> "t.DEPARTMENT_ID";
case "systemId" -> "t.SYSTEM_ID";
case "platformId" -> "t.PLATFORM_ID";
case "treeLevel" -> "t.TREE_LEVEL";
case "hasChildren" -> "t.HAS_CHILDREN";
case "fullPath" -> "t.FULL_PATH";
@ -1912,23 +1924,55 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
if (sortList != null) {
for (DataSourceRequest.SortDescriptor sortDescriptor : sortList) {
String field = sortDescriptor.getField();
String dir = "desc".equalsIgnoreCase(sortDescriptor.getDir()) ? "DESC" : "ASC";
String dir = "desc".equalsIgnoreCase(sortDescriptor.getDir()) || "des".equalsIgnoreCase(sortDescriptor.getDir()) ? "DESC" : "ASC";
if ("baseStepSort".equals(field)) {
orderColumns.add("NVL(baseStepSort, 999999) " + dir);
orderColumns.add("NVL(baseStepSort, 999999) " + dir + " NULLS LAST");
} else if ("rvcdStepSort".equals(field)) {
// orderColumns.add("NVL(rvcdStepSort, 999999) " + dir);
} else if ("hbrvcd".equals(field)) {
orderColumns.add("NVL(hbrvcd, '~') " + dir);
orderColumns.add("NVL(rvcdStepSort, 999999) " + dir + " NULLS LAST");
} else if ("rstcdStepSort".equals(field)) {
// orderColumns.add("NVL(rstcdStepSort, 999999) " + dir);
orderColumns.add("NVL(rstcdStepSort, 999999) " + dir + " NULLS LAST");
} else if ("siteStepSort".equals(field)) {
orderColumns.add("NVL(siteStepSort, 999999) " + dir);
orderColumns.add("NVL(siteStepSort, 999999) " + dir + " NULLS LAST");
} else if ("baseId".equals(field)) {
orderColumns.add("NVL(baseId, '~') " + dir + " NULLS LAST");
} else if ("hbrvcd".equals(field)) {
orderColumns.add("NVL(hbrvcd, '~') " + dir + " NULLS LAST");
} else if ("sttpCode".equals(field)) {
orderColumns.add("NVL(sttpCode, '~') " + dir + " NULLS LAST");
} else if ("sttpName".equals(field)) {
orderColumns.add("NVL(sttpName, '~') " + dir + " NULLS LAST");
} else if ("sttpFullPath".equals(field)) {
orderColumns.add("NVL(sttpFullPath, '~') " + dir + " NULLS LAST");
} else if ("stnm".equals(field)) {
orderColumns.add("NVL(stnm, '~') " + dir);
orderColumns.add("NVL(stnm, '~') " + dir + " NULLS LAST");
} else if ("ennm".equals(field)) {
orderColumns.add("NVL(ennm, '~') " + dir);
orderColumns.add("NVL(ennm, '~') " + dir + " NULLS LAST");
} else if ("stcd".equals(field)) {
orderColumns.add("NVL(stcd, '~') " + dir);
orderColumns.add("NVL(stcd, '~') " + dir + " NULLS LAST");
} else if ("fhstcd".equals(field)) {
orderColumns.add("NVL(fhstcd, '~') " + dir + " NULLS LAST");
} else if ("rstcd".equals(field)) {
orderColumns.add("NVL(rstcd, '~') " + dir + " NULLS LAST");
} else if ("stCode".equals(field)) {
orderColumns.add("NVL(stCode, '~') " + dir + " NULLS LAST");
} else if ("stName".equals(field)) {
orderColumns.add("NVL(stName, '~') " + dir + " NULLS LAST");
} else if ("dvtp".equals(field)) {
orderColumns.add("NVL(dvtp, '~') " + dir + " NULLS LAST");
} else if ("jcdt".equals(field)) {
orderColumns.add("jcdt " + dir + " NULLS LAST");
} else if ("stindx".equals(field)) {
orderColumns.add("NVL(stindx, '~') " + dir + " NULLS LAST");
} else if ("coenvwState".equals(field)) {
orderColumns.add("NVL(coenvwState, -1) " + dir + " NULLS LAST");
} else if ("bldsttCcode".equals(field)) {
orderColumns.add("NVL(bldsttCcode, '~') " + dir + " NULLS LAST");
} else if ("bldsttCcodeName".equals(field)) {
orderColumns.add("NVL(bldsttCcodeName, '~') " + dir + " NULLS LAST");
} else if ("dtin".equals(field)) {
orderColumns.add("NVL(dtin, -1) " + dir + " NULLS LAST");
} else if ("dtinName".equals(field)) {
orderColumns.add("CASE WHEN NVL(dtin, 0) = 1 THEN '已接入' ELSE '未接入' END " + dir + " NULLS LAST");
}
}
}

View File

@ -552,8 +552,11 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
case "hbrvcd" -> "t.HBRVCD";
case "hbrvcdName" -> "t.HBRVCDNAME";
case "bldsttCcode" -> "t.BLDSTTCCODE";
case "vdid" -> "t.VDID";
case "rzVideo" -> "t.RZVIDEO";
case "speedVideo" -> "t.SPEEDVIDEO";
case "rzVideoPath" -> "t.RZVIDEOPATH";
case "speedVideoPath" -> "t.SPEEDVIDEOPATH";
case "baseStepSort" -> "t.BASESTEPSORT";
case "rvcdStepSort" -> "t.RVCDSTEPSORT";
case "rstcdStepSort" -> "t.RSTCDSTEPSORT";
@ -916,18 +919,51 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
case "stnm" -> "t.STNM";
case "tm" -> "t.TM";
case "sttp", "sttpCode" -> "t.STTP";
case "lgtd" -> "t.LGTD";
case "lttd" -> "t.LTTD";
case "elev" -> "t.ELEV";
case "stlc" -> "t.STLC";
case "jcdt" -> "t.JCDT";
case "wddt" -> "t.WDDT";
case "bldsttCode", "bldsttCcode" -> "t.BLDSTT_CODE";
case "bldsttCcodeName" -> "CASE WHEN t.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' WHEN t.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ELSE '未建/规划' END";
case "introduce" -> "t.INTRODUCE";
case "logo" -> "t.LOGO";
case "inffile" -> "t.INFFILE";
case "usfl" -> "t.USFL";
case "dtin" -> "t.DTIN";
case "dtinSrc" -> "t.DTIN_SRC";
case "dtinType" -> "t.DTIN_TYPE";
case "dtinTm" -> "t.DTIN_TM";
case "mway" -> "t.MWAY";
case "mwayName" -> "CASE NVL(t.MWAY, 0) WHEN 1 THEN '人工' WHEN 2 THEN '自动' ELSE '未知' END";
case "stindx" -> "t.STINDX";
case "orderIndex" -> "t.ORDER_INDEX";
case "dmstcd" -> "t.DMSTCD";
case "rstcd" -> "t.RSTCD";
case "ennm" -> "eng.ENNM";
case "baseId" -> "eng.BASE_ID";
case "baseName" -> "hb.BASENAME";
case "hbrvcd" -> "eng.HBRVCD";
case "hbrvcdName" -> "hbrv.HBRVNM";
case "rvcd" -> "eng.RVCD";
case "rvcdName" -> "rv.RVNM";
case "addvcd" -> "eng.ADDVCD";
case "addvcdName" -> "addv.ADDVNM";
case "fhstcd" -> "t.FHSTCD";
case "mway" -> "t.MWAY";
case "dtin" -> "t.DTIN";
case "dtinType" -> "t.DTIN_TYPE";
case "orderIndex" -> "t.ORDER_INDEX";
case "ispro" -> "t.ISPRO";
case "project" -> "t.PROJECT";
case "dtfrqcy" -> "t.DTFRQCY";
case "remark" -> "t.REMARK";
case "vlsr" -> "t.VLSR";
case "vlsrTm" -> "t.VLSR_TM";
case "recordUser" -> "t.RECORD_USER";
case "recordTime" -> "t.RECORD_TIME";
case "modifyUser" -> "t.MODIFY_USER";
case "modifyTime" -> "t.MODIFY_TIME";
case "isDeleted" -> "t.IS_DELETED";
case "deleteUser" -> "t.DELETE_USER";
case "deleteTime" -> "t.DELETE_TIME";
default -> null;
};
if (StrUtil.isBlank(column)) {