feat: 生态流量泄放设施统计查询

This commit is contained in:
tangwei 2026-06-18 14:43:05 +08:00
parent eea7aa8213
commit c44c8d2229
4 changed files with 434 additions and 8 deletions

View File

@ -5,6 +5,7 @@ import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.config.ResponseResult;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseMsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseVmsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDrtpDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqLimitQueryVo;
@ -81,6 +82,13 @@ public class EngEqDataController {
return ResponseResult.successData(result);
}
@PostMapping("/base/vmsstbprpt/GetKendoList")
@Operation(summary = "生态流量泄放设施统计查询")
public ResponseResult getBaseVmsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
DataSourceResult<EngEqBaseVmsstbprptVo> result = engEqDataService.getBaseVmsstbprptList(dataSourceRequest);
return ResponseResult.successData(result);
}
@PostMapping("/interval/qgc/hour/GetKendoListCust")
@Operation(summary = "生态流量达标率小时统计(二级页面)")
public ResponseResult getQgcHourKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {

View File

@ -0,0 +1,61 @@
package com.yfd.platform.qgc_eng.eq.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
@Schema(description = "生态流量泄放设施统计查询")
public class EngEqBaseVmsstbprptVo implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "设施类型编码")
private String sttpCode;
@Schema(description = "设施类型名称")
private String sttpName;
@Schema(description = "设施编码")
private String stcd;
@Schema(description = "设施名称")
private String stnm;
@Schema(description = "所属电站编码")
private String rstcd;
@Schema(description = "所属电站名称")
private String rstcdName;
@Schema(description = "基地编码")
private String baseId;
@Schema(description = "基地名称")
private String baseName;
@Schema(description = "基地流域编码")
private String hbrvcd;
@Schema(description = "基地流域名称")
private String hbrvcdName;
@Schema(description = "数据接入状态")
private Integer dtin;
@Schema(description = "建设状态分类")
private Integer bldsttCode;
@Schema(description = "基地排序")
private Integer baseStepSort;
@Schema(description = "流域排序")
private Integer rvcdStepSort;
@Schema(description = "所属电站排序")
private Integer rstcdStepSort;
@Schema(description = "设施排序")
private Integer siteStepSort;
}

View File

@ -3,6 +3,7 @@ package com.yfd.platform.qgc_eng.eq.service;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseMsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseVmsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDrtpDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo;
@ -35,6 +36,8 @@ public interface EngEqDataService {
DataSourceResult<EngEqBaseMsstbprptVo> getBaseMsstbprptList(DataSourceRequest dataSourceRequest);
DataSourceResult<EngEqBaseVmsstbprptVo> getBaseVmsstbprptList(DataSourceRequest dataSourceRequest);
DataSourceResult<EngEqHourIntervalVo> getQgcHourKendoListCust(DataSourceRequest dataSourceRequest);
DataSourceResult<EngEqDayIntervalVo> getQgcDayKendoListCust(DataSourceRequest dataSourceRequest);

View File

@ -13,6 +13,7 @@ import com.yfd.platform.common.MicroservicDynamicSQLMapper;
import com.yfd.platform.common.enums.QecIntervalEnum;
import com.yfd.platform.common.enums.ShowEnum;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseMsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseVmsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDrtpDataVo;
@ -112,6 +113,15 @@ public class EngEqDataServiceImpl implements EngEqDataService {
return queryBaseMsstbprptGroupList(dataSourceRequest, loadOptions);
}
@Override
public DataSourceResult<EngEqBaseVmsstbprptVo> getBaseVmsstbprptList(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
if (CollUtil.isEmpty(dataSourceRequest == null ? null : dataSourceRequest.getGroup())) {
return queryBaseVmsstbprptDetailList(dataSourceRequest, loadOptions);
}
return queryBaseVmsstbprptGroupList(dataSourceRequest, loadOptions);
}
private DataSourceResult<EngEqBaseMsstbprptVo> queryBaseMsstbprptDetailList(DataSourceRequest dataSourceRequest,
DataSourceLoadOptionsBase loadOptions) {
StringBuilder sql = new StringBuilder();
@ -202,6 +212,9 @@ public class EngEqDataServiceImpl implements EngEqDataService {
} else {
result.setData((List<EngEqBaseMsstbprptVo>) (List<?>) new GroupHelper().group(rows, Arrays.asList(groupInfos)));
}
if (CollUtil.isNotEmpty((List<?>) result.getData()) && ((List<?>) result.getData()).get(0) instanceof Group) {
populateBaseMsstbprptGroupKeyNames((List<Group>) (List<?>) result.getData());
}
result.setTotal((long) rows.size());
result.setAggregates(new HashMap<>());
return result;
@ -212,14 +225,7 @@ public class EngEqDataServiceImpl implements EngEqDataService {
"eq.STCD AS stcd, " +
"eq.STNM AS stnm, " +
"eq.STTP AS sttpCode, " +
"CASE eq.STTP " +
" WHEN 'EQ_1' THEN '生态放流孔' " +
" WHEN 'EQ_2' THEN '生态放流闸' " +
" WHEN 'EQ_3' THEN '生态放流洞' " +
" WHEN 'EQ_4' THEN '生态放流管' " +
" WHEN 'EQ_5' THEN '基荷发电' " +
" WHEN 'EQ_6' THEN '生态机组' " +
" ELSE eq.STTP END AS sttpName, " +
"NVL(sttp.STTP_NAME, eq.STTP) AS sttpName, " +
"eq.RSTCD AS rstcd, " +
"eng.ENNM AS rstcdName, " +
"eq.BASE_ID AS baseId, " +
@ -238,6 +244,8 @@ public class EngEqDataServiceImpl implements EngEqDataService {
"eq.TM AS tm, " +
"eq.ORDER_INDEX AS orderIndex " +
"FROM SD_EQ_B_H eq " +
"LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = eq.STTP " +
" AND NVL(sttp.IS_DELETED, 0) = 0 AND NVL(sttp.ENABLE, 1) = 1 " +
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = eq.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eq.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eq.HBRVCD AND hbrv.BASEID = eq.BASE_ID " +
@ -291,6 +299,170 @@ public class EngEqDataServiceImpl implements EngEqDataService {
return columns;
}
private DataSourceResult<EngEqBaseVmsstbprptVo> queryBaseVmsstbprptDetailList(DataSourceRequest dataSourceRequest,
DataSourceLoadOptionsBase loadOptions) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT ")
.append(buildBaseVmsstbprptDetailSelectSql(dataSourceRequest == null ? null : dataSourceRequest.getSelect()))
.append(" FROM (")
.append(buildBaseVmsstbprptViewSql())
.append(") t WHERE 1 = 1 ");
Map<String, Object> paramMap = new HashMap<>();
String filterSql = buildBaseVmsstbprptFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), paramMap, new int[]{0});
if (StrUtil.isNotBlank(filterSql)) {
sql.append(" AND ").append(filterSql).append(" ");
}
sql.append(buildBaseVmsstbprptDetailOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<EngEqBaseVmsstbprptVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, EngEqBaseVmsstbprptVo.class);
DataSourceResult<EngEqBaseVmsstbprptVo> result = new DataSourceResult<>();
result.setData(list);
result.setTotal(page != null ? page.getTotal() : list.size());
result.setAggregates(new HashMap<>());
return result;
}
private DataSourceResult<EngEqBaseVmsstbprptVo> queryBaseVmsstbprptGroupList(DataSourceRequest dataSourceRequest,
DataSourceLoadOptionsBase loadOptions) {
List<DataSourceRequest.GroupDescriptor> groups = dataSourceRequest.getGroup();
GroupingInfo[] groupInfos = loadOptions == null ? new GroupingInfo[0] : loadOptions.getGroup();
List<String> selectItems = new ArrayList<>();
for (DataSourceRequest.GroupDescriptor descriptor : groups) {
if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
continue;
}
String column = mapBaseVmsstbprptColumn(descriptor.getField());
if (StrUtil.isBlank(column)) {
continue;
}
selectItems.add(column + " AS " + descriptor.getField().toUpperCase());
selectItems.add("COUNT(*) AS COUNT_" + descriptor.getField().toUpperCase());
if (CollUtil.isNotEmpty(descriptor.getAggregates())) {
for (DataSourceRequest.AggregateDescriptor aggregate : descriptor.getAggregates()) {
String aggregateColumn = mapBaseVmsstbprptColumn(aggregate.getField());
if (StrUtil.isBlank(aggregateColumn) || StrUtil.isBlank(aggregate.getAggregate())) {
continue;
}
selectItems.add(buildAggregateSql(aggregate.getAggregate(), aggregateColumn, aggregate.getField()));
}
}
}
if (selectItems.isEmpty()) {
selectItems.add("t.STCD AS STCD");
selectItems.add("COUNT(*) AS COUNT_STCD");
}
StringBuilder sql = new StringBuilder();
sql.append("SELECT ")
.append(String.join(", ", selectItems))
.append(" FROM (")
.append(buildBaseVmsstbprptViewSql())
.append(") t WHERE 1 = 1 ");
Map<String, Object> paramMap = new HashMap<>();
String filterSql = buildBaseVmsstbprptFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), paramMap, new int[]{0});
if (StrUtil.isNotBlank(filterSql)) {
sql.append(" AND ").append(filterSql).append(" ");
}
List<String> groupByColumns = new ArrayList<>();
for (DataSourceRequest.GroupDescriptor descriptor : groups) {
if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
continue;
}
String column = mapBaseVmsstbprptColumn(descriptor.getField());
if (StrUtil.isNotBlank(column)) {
groupByColumns.add(column);
}
}
if (!groupByColumns.isEmpty()) {
sql.append(" GROUP BY ").append(String.join(", ", groupByColumns)).append(" ");
}
sql.append(buildBaseVmsstbprptGroupOrderBySql(groups));
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(null, sql.toString(), paramMap);
DataSourceResult<EngEqBaseVmsstbprptVo> result = new DataSourceResult<>();
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
result.setData((List<EngEqBaseVmsstbprptVo>) (List<?>) new GroupHelper().faltGroup(rows, Arrays.asList(groupInfos)));
} else {
result.setData((List<EngEqBaseVmsstbprptVo>) (List<?>) new GroupHelper().group(rows, Arrays.asList(groupInfos)));
}
result.setTotal((long) rows.size());
result.setAggregates(new HashMap<>());
return result;
}
private String buildBaseVmsstbprptViewSql() {
return "SELECT " +
"eq.STTP AS sttpCode, " +
"NVL(sttp.STTP_NAME, eq.STTP) AS sttpName, " +
"eq.STCD AS stcd, " +
"eq.STNM AS stnm, " +
"eq.RSTCD AS rstcd, " +
"eng.ENNM AS rstcdName, " +
"eq.BASE_ID AS baseId, " +
"hb.BASENAME AS baseName, " +
"eq.HBRVCD AS hbrvcd, " +
"hbrv.HBRVNM AS hbrvcdName, " +
"eq.DTIN AS dtin, " +
"eq.BLDSTT_CODE AS bldsttCode, " +
"NVL(hb.ORDER_INDEX, 999999) AS baseStepSort, " +
"NVL(along.ORDER_INDEX, 999999) AS rvcdStepSort, " +
"NVL(eng.ORDER_INDEX, 999999) AS rstcdStepSort, " +
"NVL(eq.ORDER_INDEX, 999999) AS siteStepSort " +
"FROM SD_EQ_B_H eq " +
"LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = eq.STTP " +
" AND NVL(sttp.IS_DELETED, 0) = 0 AND NVL(sttp.ENABLED, 1) = 1 " +
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = eq.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eq.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eq.HBRVCD AND hbrv.BASEID = eq.BASE_ID " +
" AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eq.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"WHERE NVL(eq.IS_DELETED, 0) = 0";
}
private String buildBaseVmsstbprptDetailSelectSql(List<String> selectFields) {
Map<String, String> columns = baseVmsstbprptFieldColumns();
List<String> selected = new ArrayList<>();
if (CollUtil.isEmpty(selectFields)) {
selected.addAll(columns.values());
} else {
for (String field : selectFields) {
String column = columns.get(field);
if (StrUtil.isNotBlank(column)) {
selected.add(column);
}
}
if (selected.isEmpty()) {
selected.addAll(columns.values());
}
}
return String.join(", ", selected);
}
private Map<String, String> baseVmsstbprptFieldColumns() {
Map<String, String> columns = new LinkedHashMap<>();
columns.put("sttpCode", "t.sttpCode AS sttpCode");
columns.put("sttpName", "t.sttpName AS sttpName");
columns.put("stcd", "t.stcd AS stcd");
columns.put("stnm", "t.stnm AS stnm");
columns.put("rstcd", "t.rstcd AS rstcd");
columns.put("rstcdName", "t.rstcdName AS rstcdName");
columns.put("baseId", "t.baseId AS baseId");
columns.put("baseName", "t.baseName AS baseName");
columns.put("hbrvcd", "t.hbrvcd AS hbrvcd");
columns.put("hbrvcdName", "t.hbrvcdName AS hbrvcdName");
columns.put("dtin", "t.dtin AS dtin");
columns.put("bldsttCode", "t.bldsttCode AS bldsttCode");
columns.put("baseStepSort", "t.baseStepSort AS baseStepSort");
columns.put("rvcdStepSort", "t.rvcdStepSort AS rvcdStepSort");
columns.put("rstcdStepSort", "t.rstcdStepSort AS rstcdStepSort");
columns.put("siteStepSort", "t.siteStepSort AS siteStepSort");
return columns;
}
private DataSourceResult<EngEqMsstbprptVo> queryMsstbprptDetailList(DataSourceRequest dataSourceRequest,
DataSourceLoadOptionsBase loadOptions) {
StringBuilder sql = new StringBuilder();
@ -1217,6 +1389,58 @@ public class EngEqDataServiceImpl implements EngEqDataService {
populateHourDayGroupKeyNames(groups, baseNameCache, hbrvNameCache);
}
private void populateBaseMsstbprptGroupKeyNames(List<Group> groups) {
if (CollUtil.isEmpty(groups)) {
return;
}
Map<String, String> sttpNameCache = new HashMap<>();
Map<String, String> baseNameCache = new HashMap<>();
Map<String, String> hbrvNameCache = new HashMap<>();
populateBaseMsstbprptGroupKeyNames(groups, sttpNameCache, baseNameCache, hbrvNameCache);
}
private void populateBaseMsstbprptGroupKeyNames(List<Group> groups,
Map<String, String> sttpNameCache,
Map<String, String> baseNameCache,
Map<String, String> hbrvNameCache) {
for (Group group : groups) {
if (group == null) {
continue;
}
if (StrUtil.isBlank(group.getKeyName())) {
group.setKeyName(resolveBaseMsstbprptGroupKeyName(group.getField(), group.getKey(),
sttpNameCache, baseNameCache, hbrvNameCache));
}
if (CollUtil.isNotEmpty(group.getItems()) && group.getItems().get(0) instanceof Group) {
populateBaseMsstbprptGroupKeyNames((List<Group>) group.getItems(), sttpNameCache, baseNameCache, hbrvNameCache);
}
}
}
private String resolveBaseMsstbprptGroupKeyName(Object field,
Object key,
Map<String, String> sttpNameCache,
Map<String, String> baseNameCache,
Map<String, String> hbrvNameCache) {
if (field == null || key == null) {
return null;
}
String fieldName = String.valueOf(field);
String keyValue = String.valueOf(key);
if (StrUtil.isBlank(keyValue)) {
return null;
}
return switch (fieldName) {
case "sttpName", "stnm", "rstcdName", "baseName", "hbrvcdName", "bldsttCodeName", "dtinName" -> keyValue;
case "sttp", "sttpCode" -> StrUtil.blankToDefault(resolveSttpName(keyValue, sttpNameCache), keyValue);
case "baseId" -> StrUtil.blankToDefault(resolveBaseName(keyValue, baseNameCache), keyValue);
case "hbrvcd" -> StrUtil.blankToDefault(resolveHbrvName(keyValue, hbrvNameCache), keyValue);
case "dtin" -> resolveDtinName(keyValue);
case "bldsttCode" -> resolveBldsttName(keyValue);
default -> keyValue;
};
}
private void populateHourDayGroupKeyNames(List<Group> groups,
Map<String, String> baseNameCache,
Map<String, String> hbrvNameCache) {
@ -1307,6 +1531,38 @@ public class EngEqDataServiceImpl implements EngEqDataService {
return name == null ? null : String.valueOf(name);
}
private String resolveSttpName(String sttpCode, Map<String, String> cache) {
if (StrUtil.isBlank(sttpCode)) {
return null;
}
if (cache.containsKey(sttpCode)) {
return cache.get(sttpCode);
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("code", sttpCode);
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(null,
"SELECT sttp.STTP_NAME AS name FROM SD_STTP_B sttp " +
"WHERE sttp.STTP_CODE = #{map.code} " +
"AND NVL(sttp.IS_DELETED, 0) = 0 " +
"AND NVL(sttp.ENABLE, 1) = 1 " +
"AND ROWNUM = 1",
paramMap);
String name = extractName(rows);
if (StrUtil.isBlank(name)) {
name = switch (sttpCode) {
case "EQ_1" -> "生态放流孔";
case "EQ_2" -> "生态放流闸";
case "EQ_3" -> "生态放流洞";
case "EQ_4" -> "生态放流管";
case "EQ_5" -> "基荷发电";
case "EQ_6" -> "生态机组";
default -> null;
};
}
cache.put(sttpCode, name);
return name;
}
private String resolveDtinName(String keyValue) {
return switch (keyValue) {
case "1" -> "";
@ -2827,6 +3083,79 @@ public class EngEqDataServiceImpl implements EngEqDataService {
return result;
}
private String buildBaseVmsstbprptFilterCondition(DataSourceRequest.FilterDescriptor filter,
Map<String, Object> paramMap,
int[] indexHolder) {
if (filter == null) {
return "";
}
if (StrUtil.isNotBlank(filter.getField())) {
String column = mapBaseVmsstbprptColumn(filter.getField());
if (StrUtil.isBlank(column)) {
return "";
}
return buildGenericCondition(column, filter, paramMap, indexHolder, false);
}
if (CollUtil.isEmpty(filter.getFilters())) {
return "";
}
List<String> conditions = new ArrayList<>();
for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) {
String childSql = buildBaseVmsstbprptFilterCondition(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 buildBaseVmsstbprptDetailOrderBySql(List<DataSourceRequest.SortDescriptor> sortList) {
if (CollUtil.isEmpty(sortList)) {
return " ORDER BY NVL(t.baseStepSort, 999999) ASC, NVL(t.rvcdStepSort, 999999) ASC, " +
"NVL(t.rstcdStepSort, 999999) ASC, NVL(t.siteStepSort, 999999) ASC, t.stcd ASC";
}
List<String> orders = new ArrayList<>();
for (DataSourceRequest.SortDescriptor sort : sortList) {
if (sort == null || StrUtil.isBlank(sort.getField())) {
continue;
}
String column = mapBaseVmsstbprptColumn(sort.getField());
if (StrUtil.isBlank(column)) {
continue;
}
String dir = "desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orders.add(column + " " + dir);
}
if (orders.isEmpty()) {
return " ORDER BY NVL(t.baseStepSort, 999999) ASC, NVL(t.rvcdStepSort, 999999) ASC, " +
"NVL(t.rstcdStepSort, 999999) ASC, NVL(t.siteStepSort, 999999) ASC, t.stcd ASC";
}
return " ORDER BY " + String.join(", ", orders);
}
private String buildBaseVmsstbprptGroupOrderBySql(List<DataSourceRequest.GroupDescriptor> groups) {
if (CollUtil.isEmpty(groups)) {
return "";
}
List<String> orders = new ArrayList<>();
for (DataSourceRequest.GroupDescriptor descriptor : groups) {
if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
continue;
}
String column = mapBaseVmsstbprptColumn(descriptor.getField());
if (StrUtil.isBlank(column)) {
continue;
}
String dir = "desc".equalsIgnoreCase(descriptor.getDir()) || "des".equalsIgnoreCase(descriptor.getDir()) ? "DESC" : "ASC";
orders.add(column + " " + dir);
}
return orders.isEmpty() ? "" : " ORDER BY " + String.join(", ", orders);
}
private DataSourceResult<WbsbVo> queryWbsbDetailList(DataSourceRequest dataSourceRequest,
DataSourceLoadOptionsBase loadOptions) {
StringBuilder sql = new StringBuilder();
@ -5074,6 +5403,31 @@ public class EngEqDataServiceImpl implements EngEqDataService {
};
}
private String mapBaseVmsstbprptColumn(String field) {
if (StrUtil.isBlank(field)) {
return null;
}
return switch (field) {
case "sttpCode" -> "t.sttpCode";
case "sttpName" -> "t.sttpName";
case "stcd" -> "t.stcd";
case "stnm" -> "t.stnm";
case "rstcd" -> "t.rstcd";
case "rstcdName" -> "t.rstcdName";
case "baseId" -> "t.baseId";
case "baseName" -> "t.baseName";
case "hbrvcd" -> "t.hbrvcd";
case "hbrvcdName" -> "t.hbrvcdName";
case "dtin" -> "t.dtin";
case "bldsttCode" -> "t.bldsttCode";
case "baseStepSort" -> "NVL(t.baseStepSort, 999999)";
case "rvcdStepSort" -> "NVL(t.rvcdStepSort, 999999)";
case "rstcdStepSort" -> "NVL(t.rstcdStepSort, 999999)";
case "siteStepSort" -> "NVL(t.siteStepSort, 999999)";
default -> null;
};
}
private String mapWbsbColumn(String field) {
if (StrUtil.isBlank(field)) {
return null;