diff --git a/backend/src/main/java/com/yfd/platform/env/wq/controller/EnvWqDataController.java b/backend/src/main/java/com/yfd/platform/env/wq/controller/EnvWqDataController.java index 8544b93..2283d36 100644 --- a/backend/src/main/java/com/yfd/platform/env/wq/controller/EnvWqDataController.java +++ b/backend/src/main/java/com/yfd/platform/env/wq/controller/EnvWqDataController.java @@ -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") diff --git a/backend/src/main/java/com/yfd/platform/env/wq/service/EnvWqDataService.java b/backend/src/main/java/com/yfd/platform/env/wq/service/EnvWqDataService.java index 2bd2f3b..29ab953 100644 --- a/backend/src/main/java/com/yfd/platform/env/wq/service/EnvWqDataService.java +++ b/backend/src/main/java/com/yfd/platform/env/wq/service/EnvWqDataService.java @@ -17,4 +17,6 @@ public interface EnvWqDataService { DataSourceResult getVmsstbprptList(DataSourceRequest dataSourceRequest); WqBaseInfoVo getStcdInfo(String stcd); + + DataSourceResult getWbsbList(DataSourceRequest dataSourceRequest); } diff --git a/backend/src/main/java/com/yfd/platform/env/wq/service/impl/EnvWqDataServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/wq/service/impl/EnvWqDataServiceImpl.java index 0f7310c..59c7f5d 100644 --- a/backend/src/main/java/com/yfd/platform/env/wq/service/impl/EnvWqDataServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/env/wq/service/impl/EnvWqDataServiceImpl.java @@ -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 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> 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 paramMap, + int[] indexHolder) { + if (filter == null) { + return ""; + } + if (StrUtil.isNotBlank(filter.getField())) { + return buildMsstbprptLeafCondition(filter, paramMap, indexHolder); + } + if (CollUtil.isEmpty(filter.getFilters())) { + return ""; + } + List 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 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 values = normalizeMsstbprptValues(value); + if (values.isEmpty()) { + return ""; + } + List 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 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 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> toMsstbprptLegacyGroups(List> rows, String groupField) { + List> 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 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 item = new LinkedHashMap<>(); + item.put("key", key); + item.put("keyName", null); + item.put("keyExt", new HashMap<>()); + + Map 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 aggregates = new LinkedHashMap<>(); + aggregates.put(aggregateKey, count); + item.put("aggregates", aggregates); + result.add(item); + } + return result; + } + private String buildEnvWqOrderBySql(List sortList) { if (sortList == null || sortList.isEmpty()) { return ""; @@ -1224,4 +1440,135 @@ public class EnvWqDataServiceImpl implements EnvWqDataService { } return appended ? sql.toString() : ""; } + + + + @Override + public DataSourceResult 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 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 list = microservicDynamicSQLMapper.getAllListWithResultType(sql.toString(), new HashMap<>(), WbsbVo.class); + DataSourceResult result = new DataSourceResult<>(); + result.setData(list); + result.setTotal((long) list.size()); + result.setAggregates(new HashMap<>()); + return result; + } } diff --git a/backend/src/main/java/com/yfd/platform/env/wt/service/impl/SdWtMonitorServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/wt/service/impl/SdWtMonitorServiceImpl.java index cfc2f4d..ab8de73 100644 --- a/backend/src/main/java/com/yfd/platform/env/wt/service/impl/SdWtMonitorServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/env/wt/service/impl/SdWtMonitorServiceImpl.java @@ -57,7 +57,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService { public DataSourceResult 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 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 list = microservicDynamicSQLMapper.getAllListWithResultType(sql.toString(), new HashMap<>(), WbsbVo.class); DataSourceResult 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); }