fix: 优化逻辑
This commit is contained in:
parent
c85e2d916d
commit
28b7d003ef
@ -65,10 +65,17 @@ public class EnvWqDataController {
|
|||||||
return ResponseResult.successData(envWqDataService.getMsstbprptList(dataSourceRequest));
|
return ResponseResult.successData(envWqDataService.getMsstbprptList(dataSourceRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/base/msstbprpt/GetKendoList")
|
// @PostMapping("/base/msstbprpt/GetKendoList")
|
||||||
@Operation(summary = "查询水质基础站点分组统计")
|
// @Operation(summary = "查询水质基础站点分组统计")
|
||||||
public ResponseResult getBaseMsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
|
// public ResponseResult getBaseMsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
return ResponseResult.successData(envWqDataService.getMsstbprptList(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")
|
@PostMapping("/vmsstbprpt/GetKendoList")
|
||||||
|
|||||||
@ -17,4 +17,6 @@ public interface EnvWqDataService {
|
|||||||
DataSourceResult getVmsstbprptList(DataSourceRequest dataSourceRequest);
|
DataSourceResult getVmsstbprptList(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
WqBaseInfoVo getStcdInfo(String stcd);
|
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.EnvWqDataVo;
|
||||||
import com.yfd.platform.env.wq.entity.vo.EnvWqVo;
|
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.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.entity.vo.WqVmsstbprptVo;
|
||||||
import com.yfd.platform.env.wq.service.EnvWqDataService;
|
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.KendoUtil;
|
||||||
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
||||||
import com.yfd.platform.utils.RequestHolder;
|
import com.yfd.platform.utils.RequestHolder;
|
||||||
@ -148,7 +150,48 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataSourceResult getMsstbprptList(DataSourceRequest dataSourceRequest) {
|
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
|
@Override
|
||||||
@ -1172,6 +1215,179 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
|
|||||||
return result;
|
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) {
|
private String buildEnvWqOrderBySql(List<DataSourceRequest.SortDescriptor> sortList) {
|
||||||
if (sortList == null || sortList.isEmpty()) {
|
if (sortList == null || sortList.isEmpty()) {
|
||||||
return "";
|
return "";
|
||||||
@ -1224,4 +1440,135 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
|
|||||||
}
|
}
|
||||||
return appended ? sql.toString() : "";
|
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) {
|
public DataSourceResult<WbsbVo> getWbsbList(DataSourceRequest dataSourceRequest) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
String wbsType = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "wbsType");
|
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<>();
|
DataSourceResult<WbsbVo> emptyResult = new DataSourceResult<>();
|
||||||
emptyResult.setData(new ArrayList<>());
|
emptyResult.setData(new ArrayList<>());
|
||||||
emptyResult.setTotal(0L);
|
emptyResult.setTotal(0L);
|
||||||
@ -66,60 +66,114 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
sql.append("SELECT ")
|
if ("PSB".equalsIgnoreCase(wbsType)) {
|
||||||
.append("t.HBRVCD || '_' || t.BASEID AS id, ")
|
sql.append("SELECT ")
|
||||||
.append("t.RECORD_USER AS recordUser, ")
|
.append("t.BASEID AS id, ")
|
||||||
.append("t.RECORD_TIME AS recordTime, ")
|
.append("t.RECORD_USER AS recordUser, ")
|
||||||
.append("t.MODIFY_TIME AS modifyTime, ")
|
.append("t.RECORD_TIME AS recordTime, ")
|
||||||
.append("NULL AS displayRecordUser, ")
|
.append("t.MODIFY_TIME AS modifyTime, ")
|
||||||
.append("NULL AS isolateType, ")
|
.append("NULL AS displayRecordUser, ")
|
||||||
.append("'PSB_RVCD' AS wbsType, ")
|
.append("NULL AS isolateType, ")
|
||||||
.append("t.HBRVCD AS wbsCode, ")
|
.append("'PSB' AS wbsType, ")
|
||||||
.append("t.HBRVNM AS wbsName, ")
|
.append("t.BASEID AS wbsCode, ")
|
||||||
.append("NULL AS wbsSname, ")
|
.append("t.BASENAME AS wbsName, ")
|
||||||
.append("NULL AS wbsNameEn, ")
|
.append("t.SHORTNAME AS wbsSname, ")
|
||||||
.append("NULL AS wbsSnameEn, ")
|
.append("NULL AS wbsNameEn, ")
|
||||||
.append("t.ENABLED AS enable, ")
|
.append("NULL AS wbsSnameEn, ")
|
||||||
.append("t.REMARK AS description, ")
|
.append("t.ENABLED AS enable, ")
|
||||||
.append("CASE WHEN t.PHBRVCD IS NULL OR t.PHBRVCD = '0' THEN NULL ELSE t.PHBRVCD || '_' || t.BASEID END AS parentId, ")
|
.append("t.RMK AS description, ")
|
||||||
.append("CASE WHEN t.PHBRVCD IS NULL OR t.PHBRVCD = '0' THEN NULL ELSE t.PHBRVCD END AS parentCode, ")
|
.append("CASE WHEN t.PBASEID = '0' THEN NULL ELSE t.PBASEID END AS parentId, ")
|
||||||
.append("t.GRD AS treeLevel, ")
|
.append("CASE WHEN t.PBASEID = '0' THEN NULL ELSE t.PBASEID END AS parentCode, ")
|
||||||
.append("CASE WHEN EXISTS (")
|
.append("t.GRD AS treeLevel, ")
|
||||||
.append(" SELECT 1 FROM SD_HBRV_DIC c ")
|
.append("CASE WHEN EXISTS (")
|
||||||
.append(" WHERE c.PHBRVCD = t.HBRVCD ")
|
.append(" SELECT 1 FROM SD_HYDROBASE c ")
|
||||||
.append(" AND c.BASEID = t.BASEID ")
|
.append(" WHERE c.PBASEID = t.BASEID ")
|
||||||
.append(" AND NVL(c.IS_DELETED, 0) = 0")
|
.append(" AND NVL(c.IS_DELETED, 0) = 0")
|
||||||
.append(") THEN 1 ELSE 0 END AS hasChildren, ")
|
.append(") THEN 1 ELSE 0 END AS hasChildren, ")
|
||||||
.append("t.BASEID AS objId, ")
|
.append("t.BASEID AS objId, ")
|
||||||
.append("'PSB' AS topWbsType, ")
|
.append("'PSB' AS topWbsType, ")
|
||||||
.append("t.PATH AS fullPath, ")
|
.append("t.PATH AS fullPath, ")
|
||||||
.append("0 AS internal, ")
|
.append("0 AS internal, ")
|
||||||
.append("NULL AS lgtd, ")
|
.append("NULL AS lgtd, ")
|
||||||
.append("NULL AS lttd, ")
|
.append("NULL AS lttd, ")
|
||||||
.append("NULL AS area, ")
|
.append("NULL AS area, ")
|
||||||
.append("NULL AS perimeter, ")
|
.append("NULL AS perimeter, ")
|
||||||
.append("NULL AS synopsis, ")
|
.append("t.DES AS synopsis, ")
|
||||||
.append("NULL AS introduce, ")
|
.append("t.DES AS introduce, ")
|
||||||
.append("NULL AS logo, ")
|
.append("NULL AS logo, ")
|
||||||
.append("NULL AS inffile, ")
|
.append("NULL AS inffile, ")
|
||||||
.append("t.ORDER_INDEX AS orderIndex, ")
|
.append("t.ORDER_INDEX AS orderIndex, ")
|
||||||
.append("NULL AS filterContent, ")
|
.append("NULL AS filterContent, ")
|
||||||
.append("NULL AS departmentId, ")
|
.append("NULL AS departmentId, ")
|
||||||
.append("NULL AS systemId, ")
|
.append("NULL AS systemId, ")
|
||||||
.append("NULL AS platformId, ")
|
.append("NULL AS platformId, ")
|
||||||
.append("NULL AS reachWwqtg, ")
|
.append("NULL AS reachWwqtg, ")
|
||||||
.append("NULL AS maxElev, ")
|
.append("NULL AS maxElev, ")
|
||||||
.append("NULL AS minElev, ")
|
.append("NULL AS minElev, ")
|
||||||
.append("NULL AS datTp, ")
|
.append("NULL AS datTp, ")
|
||||||
.append("NULL AS rvAg, ")
|
.append("NULL AS rvAg, ")
|
||||||
.append("NULL AS ifInnRv, ")
|
.append("NULL AS ifInnRv, ")
|
||||||
.append("NULL AS showControl, ")
|
.append("NULL AS showControl, ")
|
||||||
.append("NULL AS stcd, ")
|
.append("NULL AS stcd, ")
|
||||||
.append("NULL AS displayDepartment ")
|
.append("NULL AS displayDepartment ")
|
||||||
.append("FROM SD_HBRV_DIC t ")
|
.append("FROM SD_HYDROBASE t ")
|
||||||
.append("WHERE NVL(t.IS_DELETED, 0) = 0 ");
|
.append("WHERE NVL(t.IS_DELETED, 0) = 0 ");
|
||||||
|
sql.append("ORDER BY NVL(t.ORDER_INDEX, 999999), t.BASENAME ASC");
|
||||||
sql.append("ORDER BY NVL(t.ORDER_INDEX, 999999), t.HBRVNM 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);
|
List<WbsbVo> list = microservicDynamicSQLMapper.getAllListWithResultType(sql.toString(), new HashMap<>(), WbsbVo.class);
|
||||||
DataSourceResult<WbsbVo> result = new DataSourceResult<>();
|
DataSourceResult<WbsbVo> result = new DataSourceResult<>();
|
||||||
result.setData(list);
|
result.setData(list);
|
||||||
@ -420,8 +474,8 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
.append("eng.DVTP AS dvtp, ")
|
.append("eng.DVTP AS dvtp, ")
|
||||||
.append("hb.ORDER_INDEX AS baseStepSort, ")
|
.append("hb.ORDER_INDEX AS baseStepSort, ")
|
||||||
.append("eng.HBRVCD AS hbrvcd, ")
|
.append("eng.HBRVCD AS hbrvcd, ")
|
||||||
.append("eng.ORDER_INDEX AS rstcdStepSort, ")
|
.append("eng.ORDER_INDEX AS rstcdStepSort ")
|
||||||
.append("wt.ORDER_INDEX AS siteStepSort ")
|
// .append("wt.ORDER_INDEX AS siteStepSort ")
|
||||||
.append("FROM SD_WT_B_H wt ")
|
.append("FROM SD_WT_B_H wt ")
|
||||||
.append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD ")
|
.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 ")
|
.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.MWAY AS mway, ")
|
||||||
.append("wt.WT_DEVICE_TYPE AS wtDeviceType, ")
|
.append("wt.WT_DEVICE_TYPE AS wtDeviceType, ")
|
||||||
.append("eng.HBRVCD AS hbrvcd, ")
|
.append("eng.HBRVCD AS hbrvcd, ")
|
||||||
.append("wt.ORDER_INDEX AS orderIndex, ")
|
// .append("wt.ORDER_INDEX AS orderIndex, ")
|
||||||
.append("eng.BASE_ID AS baseId, ")
|
.append("eng.BASE_ID AS baseId, ")
|
||||||
.append("hb.ORDER_INDEX AS baseStepSort, ")
|
.append("hb.ORDER_INDEX AS baseStepSort, ")
|
||||||
.append("NVL(siteSort.SORT, wt.ORDER_INDEX) AS siteStepSort, ")
|
.append("NVL(siteSort.SORT, wt.ORDER_INDEX) AS siteStepSort, ")
|
||||||
@ -1382,7 +1436,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (orderColumns.isEmpty()) {
|
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);
|
return " ORDER BY " + String.join(", ", orderColumns);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user