fix: 优化逻辑
This commit is contained in:
parent
c85e2d916d
commit
28b7d003ef
@ -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")
|
||||
|
||||
@ -17,4 +17,6 @@ public interface EnvWqDataService {
|
||||
DataSourceResult getVmsstbprptList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
WqBaseInfoVo getStcdInfo(String stcd);
|
||||
|
||||
DataSourceResult getWbsbList(DataSourceRequest dataSourceRequest);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user