fix: 优化逻辑

This commit is contained in:
tangwei 2026-05-27 15:48:52 +08:00
parent c85e2d916d
commit 28b7d003ef
4 changed files with 474 additions and 64 deletions

View File

@ -65,10 +65,17 @@ public class EnvWqDataController {
return ResponseResult.successData(envWqDataService.getMsstbprptList(dataSourceRequest));
}
@PostMapping("/base/msstbprpt/GetKendoList")
@Operation(summary = "查询水质基础站点分组统计")
public ResponseResult getBaseMsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(envWqDataService.getMsstbprptList(dataSourceRequest));
// @PostMapping("/base/msstbprpt/GetKendoList")
// @Operation(summary = "查询水质基础站点分组统计")
// public ResponseResult getBaseMsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
// return ResponseResult.successData(envWqDataService.getMsstbprptList(dataSourceRequest));
// }
@PostMapping("/wbsb/GetKendoList")
@Operation(summary = "查询水电基地流域字典列表")
public ResponseResult getWbsbList(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(envWqDataService.getWbsbList(dataSourceRequest));
}
@PostMapping("/vmsstbprpt/GetKendoList")

View File

@ -17,4 +17,6 @@ public interface EnvWqDataService {
DataSourceResult getVmsstbprptList(DataSourceRequest dataSourceRequest);
WqBaseInfoVo getStcdInfo(String stcd);
DataSourceResult getWbsbList(DataSourceRequest dataSourceRequest);
}

View File

@ -16,8 +16,10 @@ import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.env.wq.entity.vo.EnvWqDataVo;
import com.yfd.platform.env.wq.entity.vo.EnvWqVo;
import com.yfd.platform.env.wq.entity.vo.WqBaseInfoVo;
import com.yfd.platform.env.wq.entity.vo.WqMsstbprptGroupVo;
import com.yfd.platform.env.wq.entity.vo.WqVmsstbprptVo;
import com.yfd.platform.env.wq.service.EnvWqDataService;
import com.yfd.platform.env.wt.entity.vo.WbsbVo;
import com.yfd.platform.utils.KendoUtil;
import com.yfd.platform.utils.QgcQueryWrapperUtil;
import com.yfd.platform.utils.RequestHolder;
@ -148,7 +150,48 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
@Override
public DataSourceResult getMsstbprptList(DataSourceRequest dataSourceRequest) {
return emptyResult();
String groupField = "dtinType";
String groupColumn = "t.DTIN_TYPE";
String groupDir = "ASC";
if (CollUtil.isNotEmpty(dataSourceRequest.getGroup())) {
DataSourceRequest.GroupDescriptor groupDescriptor = dataSourceRequest.getGroup().get(0);
if (groupDescriptor != null && StrUtil.isNotBlank(groupDescriptor.getField())) {
groupField = groupDescriptor.getField();
String mappedColumn = mapMsstbprptColumn(groupField);
if (StrUtil.isNotBlank(mappedColumn)) {
groupColumn = mappedColumn;
}
if ("desc".equalsIgnoreCase(groupDescriptor.getDir()) || "des".equalsIgnoreCase(groupDescriptor.getDir())) {
groupDir = "DESC";
}
}
}
StringBuilder sql = new StringBuilder();
sql.append("SELECT ")
.append(groupColumn).append(" AS ").append(groupField.toUpperCase()).append(", ")
.append("COUNT(*) AS COUNT_").append(groupField.toUpperCase()).append(" ")
.append("FROM SD_WQ_B_H t ")
.append("WHERE NVL(t.IS_DELETED, 0) = 0 ");
Map<String, Object> paramMap = new HashMap<>();
String filterSql = buildMsstbprptFilterCondition(
dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
paramMap,
new int[]{0}
);
if (StrUtil.isNotBlank(filterSql)) {
sql.append(" AND ").append(filterSql).append(" ");
}
sql.append("GROUP BY ").append(groupColumn).append(" ")
.append("ORDER BY ").append(groupColumn).append(" ").append(groupDir);
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(null, sql.toString(), paramMap);
DataSourceResult result = new DataSourceResult();
result.setData(toMsstbprptLegacyGroups(rows, groupField));
result.setTotal((long) rows.size());
result.setAggregates(new HashMap<>());
return result;
}
@Override
@ -1172,6 +1215,179 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
return result;
}
private String buildMsstbprptFilterCondition(DataSourceRequest.FilterDescriptor filter,
Map<String, Object> paramMap,
int[] indexHolder) {
if (filter == null) {
return "";
}
if (StrUtil.isNotBlank(filter.getField())) {
return buildMsstbprptLeafCondition(filter, paramMap, indexHolder);
}
if (CollUtil.isEmpty(filter.getFilters())) {
return "";
}
List<String> conditions = new ArrayList<>();
for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) {
String childSql = buildMsstbprptFilterCondition(child, paramMap, indexHolder);
if (StrUtil.isNotBlank(childSql)) {
conditions.add("(" + childSql + ")");
}
}
if (conditions.isEmpty()) {
return "";
}
String logic = "or".equalsIgnoreCase(filter.getLogic()) ? " OR " : " AND ";
return String.join(logic, conditions);
}
private String buildMsstbprptLeafCondition(DataSourceRequest.FilterDescriptor filter,
Map<String, Object> paramMap,
int[] indexHolder) {
String column = mapMsstbprptColumn(filter.getField());
if (StrUtil.isBlank(column)) {
return "";
}
String operator = StrUtil.blankToDefault(filter.getOperator(), "eq").toLowerCase();
Object value = filter.getValue();
if ("isnull".equals(operator)) {
return column + " IS NULL";
}
if ("isnotnull".equals(operator)) {
return column + " IS NOT NULL";
}
if ("in".equals(operator)) {
List<Object> values = normalizeMsstbprptValues(value);
if (values.isEmpty()) {
return "";
}
List<String> placeholders = new ArrayList<>();
for (Object item : values) {
String paramKey = "msstbprptP" + indexHolder[0]++;
paramMap.put(paramKey, item);
placeholders.add("#{map." + paramKey + "}");
}
return column + " IN (" + String.join(", ", placeholders) + ")";
}
String paramKey = "msstbprptP" + indexHolder[0]++;
switch (operator) {
case "eq":
paramMap.put(paramKey, value);
return column + " = #{map." + paramKey + "}";
case "neq":
paramMap.put(paramKey, value);
return column + " <> #{map." + paramKey + "}";
case "contains":
paramMap.put(paramKey, "%" + value + "%");
return column + " LIKE #{map." + paramKey + "}";
case "startswith":
paramMap.put(paramKey, value + "%");
return column + " LIKE #{map." + paramKey + "}";
case "endswith":
paramMap.put(paramKey, "%" + value);
return column + " LIKE #{map." + paramKey + "}";
case "gt":
paramMap.put(paramKey, value);
return column + " > #{map." + paramKey + "}";
case "gte":
paramMap.put(paramKey, value);
return column + " >= #{map." + paramKey + "}";
case "lt":
paramMap.put(paramKey, value);
return column + " < #{map." + paramKey + "}";
case "lte":
paramMap.put(paramKey, value);
return column + " <= #{map." + paramKey + "}";
default:
return "";
}
}
private List<Object> normalizeMsstbprptValues(Object value) {
if (value == null) {
return new ArrayList<>();
}
if (value instanceof List<?> list) {
return new ArrayList<>(list);
}
String text = String.valueOf(value).trim();
if (StrUtil.isBlank(text)) {
return new ArrayList<>();
}
if (text.startsWith("[") && text.endsWith("]")) {
text = text.substring(1, text.length() - 1);
}
List<Object> values = new ArrayList<>();
for (String item : text.split(",")) {
String trimmed = StrUtil.trim(item);
if (StrUtil.isNotBlank(trimmed)) {
values.add(StrUtil.removeAll(trimmed, "\""));
}
}
return values;
}
private String mapMsstbprptColumn(String field) {
if (StrUtil.isBlank(field)) {
return null;
}
return switch (field) {
case "isDeleted" -> "NVL(t.IS_DELETED, 0)";
case "sttpCode" -> "t.STTP";
case "mway" -> "t.MWAY";
case "dtinType" -> "t.DTIN_TYPE";
case "stcd" -> "t.STCD";
case "stnm" -> "t.STNM";
case "dtin" -> "t.DTIN";
default -> null;
};
}
private List<Map<String, Object>> toMsstbprptLegacyGroups(List<Map<String, Object>> rows, String groupField) {
List<Map<String, Object>> result = new ArrayList<>();
if (rows == null) {
return result;
}
String upperField = groupField == null ? "DTINTYPE" : groupField.toUpperCase();
String countField = "COUNT_" + upperField;
String aggregateKey = "count_" + groupField;
for (Map<String, Object> row : rows) {
Object key = row.get(upperField);
if (key == null) {
key = row.get(groupField);
}
Object countValue = row.get(countField);
if (countValue == null) {
countValue = row.get("count_" + upperField);
}
long count = 0L;
if (countValue instanceof Number number) {
count = number.longValue();
} else if (countValue != null) {
count = Long.parseLong(String.valueOf(countValue));
}
Map<String, Object> item = new LinkedHashMap<>();
item.put("key", key);
item.put("keyName", null);
item.put("keyExt", new HashMap<>());
Map<String, Object> detail = new LinkedHashMap<>();
detail.put(upperField, key);
detail.put(countField, count);
item.put("items", List.of(detail));
item.put("count", count);
item.put("summary", new Object[0]);
Map<String, Object> aggregates = new LinkedHashMap<>();
aggregates.put(aggregateKey, count);
item.put("aggregates", aggregates);
result.add(item);
}
return result;
}
private String buildEnvWqOrderBySql(List<DataSourceRequest.SortDescriptor> sortList) {
if (sortList == null || sortList.isEmpty()) {
return "";
@ -1224,4 +1440,135 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
}
return appended ? sql.toString() : "";
}
@Override
public DataSourceResult<WbsbVo> getWbsbList(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
String wbsType = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "wbsType");
if (!"PSB_RVCD".equalsIgnoreCase(wbsType) && !"PSB".equalsIgnoreCase(wbsType)) {
DataSourceResult<WbsbVo> emptyResult = new DataSourceResult<>();
emptyResult.setData(new ArrayList<>());
emptyResult.setTotal(0L);
emptyResult.setAggregates(new HashMap<>());
return emptyResult;
}
StringBuilder sql = new StringBuilder();
if ("PSB".equalsIgnoreCase(wbsType)) {
sql.append("SELECT ")
.append("t.BASEID AS id, ")
.append("t.RECORD_USER AS recordUser, ")
.append("t.RECORD_TIME AS recordTime, ")
.append("t.MODIFY_TIME AS modifyTime, ")
.append("NULL AS displayRecordUser, ")
.append("NULL AS isolateType, ")
.append("'PSB' AS wbsType, ")
.append("t.BASEID AS wbsCode, ")
.append("t.BASENAME AS wbsName, ")
.append("t.SHORTNAME AS wbsSname, ")
.append("NULL AS wbsNameEn, ")
.append("NULL AS wbsSnameEn, ")
.append("t.ENABLED AS enable, ")
.append("t.RMK AS description, ")
.append("CASE WHEN t.PBASEID = '0' THEN NULL ELSE t.PBASEID END AS parentId, ")
.append("CASE WHEN t.PBASEID = '0' THEN NULL ELSE t.PBASEID END AS parentCode, ")
.append("t.GRD AS treeLevel, ")
.append("CASE WHEN EXISTS (")
.append(" SELECT 1 FROM SD_HYDROBASE c ")
.append(" WHERE c.PBASEID = t.BASEID ")
.append(" AND NVL(c.IS_DELETED, 0) = 0")
.append(") THEN 1 ELSE 0 END AS hasChildren, ")
.append("t.BASEID AS objId, ")
.append("'PSB' AS topWbsType, ")
.append("t.PATH AS fullPath, ")
.append("0 AS internal, ")
.append("NULL AS lgtd, ")
.append("NULL AS lttd, ")
.append("NULL AS area, ")
.append("NULL AS perimeter, ")
.append("t.DES AS synopsis, ")
.append("t.DES AS introduce, ")
.append("NULL AS logo, ")
.append("NULL AS inffile, ")
.append("t.ORDER_INDEX AS orderIndex, ")
.append("NULL AS filterContent, ")
.append("NULL AS departmentId, ")
.append("NULL AS systemId, ")
.append("NULL AS platformId, ")
.append("NULL AS reachWwqtg, ")
.append("NULL AS maxElev, ")
.append("NULL AS minElev, ")
.append("NULL AS datTp, ")
.append("NULL AS rvAg, ")
.append("NULL AS ifInnRv, ")
.append("NULL AS showControl, ")
.append("NULL AS stcd, ")
.append("NULL AS displayDepartment ")
.append("FROM SD_HYDROBASE t ")
.append("WHERE NVL(t.IS_DELETED, 0) = 0 ");
sql.append("ORDER BY NVL(t.ORDER_INDEX, 999999), t.BASENAME ASC");
} else {
sql.append("SELECT ")
.append("t.HBRVCD || '_' || t.BASEID AS id, ")
.append("t.RECORD_USER AS recordUser, ")
.append("t.RECORD_TIME AS recordTime, ")
.append("t.MODIFY_TIME AS modifyTime, ")
.append("NULL AS displayRecordUser, ")
.append("NULL AS isolateType, ")
.append("'PSB_RVCD' AS wbsType, ")
.append("t.HBRVCD AS wbsCode, ")
.append("t.HBRVNM AS wbsName, ")
.append("NULL AS wbsSname, ")
.append("NULL AS wbsNameEn, ")
.append("NULL AS wbsSnameEn, ")
.append("t.ENABLED AS enable, ")
.append("t.REMARK AS description, ")
.append("CASE WHEN t.PHBRVCD IS NULL OR t.PHBRVCD = '0' THEN NULL ELSE t.PHBRVCD || '_' || t.BASEID END AS parentId, ")
.append("CASE WHEN t.PHBRVCD IS NULL OR t.PHBRVCD = '0' THEN NULL ELSE t.PHBRVCD END AS parentCode, ")
.append("t.GRD AS treeLevel, ")
.append("CASE WHEN EXISTS (")
.append(" SELECT 1 FROM SD_HBRV_DIC c ")
.append(" WHERE c.PHBRVCD = t.HBRVCD ")
.append(" AND c.BASEID = t.BASEID ")
.append(" AND NVL(c.IS_DELETED, 0) = 0")
.append(") THEN 1 ELSE 0 END AS hasChildren, ")
.append("t.BASEID AS objId, ")
.append("'PSB' AS topWbsType, ")
.append("t.PATH AS fullPath, ")
.append("0 AS internal, ")
.append("NULL AS lgtd, ")
.append("NULL AS lttd, ")
.append("NULL AS area, ")
.append("NULL AS perimeter, ")
.append("NULL AS synopsis, ")
.append("NULL AS introduce, ")
.append("NULL AS logo, ")
.append("NULL AS inffile, ")
.append("t.ORDER_INDEX AS orderIndex, ")
.append("NULL AS filterContent, ")
.append("NULL AS departmentId, ")
.append("NULL AS systemId, ")
.append("NULL AS platformId, ")
.append("NULL AS reachWwqtg, ")
.append("NULL AS maxElev, ")
.append("NULL AS minElev, ")
.append("NULL AS datTp, ")
.append("NULL AS rvAg, ")
.append("NULL AS ifInnRv, ")
.append("NULL AS showControl, ")
.append("NULL AS stcd, ")
.append("NULL AS displayDepartment ")
.append("FROM SD_HBRV_DIC t ")
.append("WHERE NVL(t.IS_DELETED, 0) = 0 ");
sql.append("ORDER BY NVL(t.ORDER_INDEX, 999999), t.HBRVNM ASC");
}
List<WbsbVo> list = microservicDynamicSQLMapper.getAllListWithResultType(sql.toString(), new HashMap<>(), WbsbVo.class);
DataSourceResult<WbsbVo> result = new DataSourceResult<>();
result.setData(list);
result.setTotal((long) list.size());
result.setAggregates(new HashMap<>());
return result;
}
}

View File

@ -57,7 +57,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
public DataSourceResult<WbsbVo> getWbsbList(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
String wbsType = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "wbsType");
if (!"PSB_RVCD".equalsIgnoreCase(wbsType)) {
if (!"PSB_RVCD".equalsIgnoreCase(wbsType) && !"PSB".equalsIgnoreCase(wbsType)) {
DataSourceResult<WbsbVo> emptyResult = new DataSourceResult<>();
emptyResult.setData(new ArrayList<>());
emptyResult.setTotal(0L);
@ -66,60 +66,114 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
}
StringBuilder sql = new StringBuilder();
sql.append("SELECT ")
.append("t.HBRVCD || '_' || t.BASEID AS id, ")
.append("t.RECORD_USER AS recordUser, ")
.append("t.RECORD_TIME AS recordTime, ")
.append("t.MODIFY_TIME AS modifyTime, ")
.append("NULL AS displayRecordUser, ")
.append("NULL AS isolateType, ")
.append("'PSB_RVCD' AS wbsType, ")
.append("t.HBRVCD AS wbsCode, ")
.append("t.HBRVNM AS wbsName, ")
.append("NULL AS wbsSname, ")
.append("NULL AS wbsNameEn, ")
.append("NULL AS wbsSnameEn, ")
.append("t.ENABLED AS enable, ")
.append("t.REMARK AS description, ")
.append("CASE WHEN t.PHBRVCD IS NULL OR t.PHBRVCD = '0' THEN NULL ELSE t.PHBRVCD || '_' || t.BASEID END AS parentId, ")
.append("CASE WHEN t.PHBRVCD IS NULL OR t.PHBRVCD = '0' THEN NULL ELSE t.PHBRVCD END AS parentCode, ")
.append("t.GRD AS treeLevel, ")
.append("CASE WHEN EXISTS (")
.append(" SELECT 1 FROM SD_HBRV_DIC c ")
.append(" WHERE c.PHBRVCD = t.HBRVCD ")
.append(" AND c.BASEID = t.BASEID ")
.append(" AND NVL(c.IS_DELETED, 0) = 0")
.append(") THEN 1 ELSE 0 END AS hasChildren, ")
.append("t.BASEID AS objId, ")
.append("'PSB' AS topWbsType, ")
.append("t.PATH AS fullPath, ")
.append("0 AS internal, ")
.append("NULL AS lgtd, ")
.append("NULL AS lttd, ")
.append("NULL AS area, ")
.append("NULL AS perimeter, ")
.append("NULL AS synopsis, ")
.append("NULL AS introduce, ")
.append("NULL AS logo, ")
.append("NULL AS inffile, ")
.append("t.ORDER_INDEX AS orderIndex, ")
.append("NULL AS filterContent, ")
.append("NULL AS departmentId, ")
.append("NULL AS systemId, ")
.append("NULL AS platformId, ")
.append("NULL AS reachWwqtg, ")
.append("NULL AS maxElev, ")
.append("NULL AS minElev, ")
.append("NULL AS datTp, ")
.append("NULL AS rvAg, ")
.append("NULL AS ifInnRv, ")
.append("NULL AS showControl, ")
.append("NULL AS stcd, ")
.append("NULL AS displayDepartment ")
.append("FROM SD_HBRV_DIC t ")
.append("WHERE NVL(t.IS_DELETED, 0) = 0 ");
sql.append("ORDER BY NVL(t.ORDER_INDEX, 999999), t.HBRVNM ASC");
if ("PSB".equalsIgnoreCase(wbsType)) {
sql.append("SELECT ")
.append("t.BASEID AS id, ")
.append("t.RECORD_USER AS recordUser, ")
.append("t.RECORD_TIME AS recordTime, ")
.append("t.MODIFY_TIME AS modifyTime, ")
.append("NULL AS displayRecordUser, ")
.append("NULL AS isolateType, ")
.append("'PSB' AS wbsType, ")
.append("t.BASEID AS wbsCode, ")
.append("t.BASENAME AS wbsName, ")
.append("t.SHORTNAME AS wbsSname, ")
.append("NULL AS wbsNameEn, ")
.append("NULL AS wbsSnameEn, ")
.append("t.ENABLED AS enable, ")
.append("t.RMK AS description, ")
.append("CASE WHEN t.PBASEID = '0' THEN NULL ELSE t.PBASEID END AS parentId, ")
.append("CASE WHEN t.PBASEID = '0' THEN NULL ELSE t.PBASEID END AS parentCode, ")
.append("t.GRD AS treeLevel, ")
.append("CASE WHEN EXISTS (")
.append(" SELECT 1 FROM SD_HYDROBASE c ")
.append(" WHERE c.PBASEID = t.BASEID ")
.append(" AND NVL(c.IS_DELETED, 0) = 0")
.append(") THEN 1 ELSE 0 END AS hasChildren, ")
.append("t.BASEID AS objId, ")
.append("'PSB' AS topWbsType, ")
.append("t.PATH AS fullPath, ")
.append("0 AS internal, ")
.append("NULL AS lgtd, ")
.append("NULL AS lttd, ")
.append("NULL AS area, ")
.append("NULL AS perimeter, ")
.append("t.DES AS synopsis, ")
.append("t.DES AS introduce, ")
.append("NULL AS logo, ")
.append("NULL AS inffile, ")
.append("t.ORDER_INDEX AS orderIndex, ")
.append("NULL AS filterContent, ")
.append("NULL AS departmentId, ")
.append("NULL AS systemId, ")
.append("NULL AS platformId, ")
.append("NULL AS reachWwqtg, ")
.append("NULL AS maxElev, ")
.append("NULL AS minElev, ")
.append("NULL AS datTp, ")
.append("NULL AS rvAg, ")
.append("NULL AS ifInnRv, ")
.append("NULL AS showControl, ")
.append("NULL AS stcd, ")
.append("NULL AS displayDepartment ")
.append("FROM SD_HYDROBASE t ")
.append("WHERE NVL(t.IS_DELETED, 0) = 0 ");
sql.append("ORDER BY NVL(t.ORDER_INDEX, 999999), t.BASENAME ASC");
} else {
sql.append("SELECT ")
.append("t.HBRVCD || '_' || t.BASEID AS id, ")
.append("t.RECORD_USER AS recordUser, ")
.append("t.RECORD_TIME AS recordTime, ")
.append("t.MODIFY_TIME AS modifyTime, ")
.append("NULL AS displayRecordUser, ")
.append("NULL AS isolateType, ")
.append("'PSB_RVCD' AS wbsType, ")
.append("t.HBRVCD AS wbsCode, ")
.append("t.HBRVNM AS wbsName, ")
.append("NULL AS wbsSname, ")
.append("NULL AS wbsNameEn, ")
.append("NULL AS wbsSnameEn, ")
.append("t.ENABLED AS enable, ")
.append("t.REMARK AS description, ")
.append("CASE WHEN t.PHBRVCD IS NULL OR t.PHBRVCD = '0' THEN NULL ELSE t.PHBRVCD || '_' || t.BASEID END AS parentId, ")
.append("CASE WHEN t.PHBRVCD IS NULL OR t.PHBRVCD = '0' THEN NULL ELSE t.PHBRVCD END AS parentCode, ")
.append("t.GRD AS treeLevel, ")
.append("CASE WHEN EXISTS (")
.append(" SELECT 1 FROM SD_HBRV_DIC c ")
.append(" WHERE c.PHBRVCD = t.HBRVCD ")
.append(" AND c.BASEID = t.BASEID ")
.append(" AND NVL(c.IS_DELETED, 0) = 0")
.append(") THEN 1 ELSE 0 END AS hasChildren, ")
.append("t.BASEID AS objId, ")
.append("'PSB' AS topWbsType, ")
.append("t.PATH AS fullPath, ")
.append("0 AS internal, ")
.append("NULL AS lgtd, ")
.append("NULL AS lttd, ")
.append("NULL AS area, ")
.append("NULL AS perimeter, ")
.append("NULL AS synopsis, ")
.append("NULL AS introduce, ")
.append("NULL AS logo, ")
.append("NULL AS inffile, ")
.append("t.ORDER_INDEX AS orderIndex, ")
.append("NULL AS filterContent, ")
.append("NULL AS departmentId, ")
.append("NULL AS systemId, ")
.append("NULL AS platformId, ")
.append("NULL AS reachWwqtg, ")
.append("NULL AS maxElev, ")
.append("NULL AS minElev, ")
.append("NULL AS datTp, ")
.append("NULL AS rvAg, ")
.append("NULL AS ifInnRv, ")
.append("NULL AS showControl, ")
.append("NULL AS stcd, ")
.append("NULL AS displayDepartment ")
.append("FROM SD_HBRV_DIC t ")
.append("WHERE NVL(t.IS_DELETED, 0) = 0 ");
sql.append("ORDER BY NVL(t.ORDER_INDEX, 999999), t.HBRVNM ASC");
}
List<WbsbVo> list = microservicDynamicSQLMapper.getAllListWithResultType(sql.toString(), new HashMap<>(), WbsbVo.class);
DataSourceResult<WbsbVo> result = new DataSourceResult<>();
result.setData(list);
@ -420,8 +474,8 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
.append("eng.DVTP AS dvtp, ")
.append("hb.ORDER_INDEX AS baseStepSort, ")
.append("eng.HBRVCD AS hbrvcd, ")
.append("eng.ORDER_INDEX AS rstcdStepSort, ")
.append("wt.ORDER_INDEX AS siteStepSort ")
.append("eng.ORDER_INDEX AS rstcdStepSort ")
// .append("wt.ORDER_INDEX AS siteStepSort ")
.append("FROM SD_WT_B_H wt ")
.append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD ")
.append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID ")
@ -859,7 +913,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
.append("wt.MWAY AS mway, ")
.append("wt.WT_DEVICE_TYPE AS wtDeviceType, ")
.append("eng.HBRVCD AS hbrvcd, ")
.append("wt.ORDER_INDEX AS orderIndex, ")
// .append("wt.ORDER_INDEX AS orderIndex, ")
.append("eng.BASE_ID AS baseId, ")
.append("hb.ORDER_INDEX AS baseStepSort, ")
.append("NVL(siteSort.SORT, wt.ORDER_INDEX) AS siteStepSort, ")
@ -1382,7 +1436,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
}
}
if (orderColumns.isEmpty()) {
return " ORDER BY NVL(hb.ORDER_INDEX, 999999) ASC, NVL(eng.HBRVCD, '~') ASC, NVL(eng.ORDER_INDEX, 999999) ASC, NVL(wt.ORDER_INDEX, 999999) ASC";
return " ORDER BY NVL(hb.ORDER_INDEX, 999999) ASC, NVL(eng.HBRVCD, '~') ASC, NVL(eng.ORDER_INDEX, 999999) ASC";
}
return " ORDER BY " + String.join(", ", orderColumns);
}