feat: 电站基础信息查询
This commit is contained in:
parent
2dbcbf3f9d
commit
b8d7688803
@ -2,8 +2,10 @@ package com.yfd.platform.qgc_eng.eq.controller;
|
|||||||
|
|
||||||
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
|
||||||
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqMsstbprptVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqVmsstbprptVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqVmsstbprptVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRateCountVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRateCountVo;
|
||||||
@ -40,6 +42,13 @@ public class EngEqDataController {
|
|||||||
return ResponseResult.successData(engEqDataService.getIntervalKendoListCust(dataSourceRequest));
|
return ResponseResult.successData(engEqDataService.getIntervalKendoListCust(dataSourceRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/msstbprpt/GetKendoList")
|
||||||
|
@Operation(summary = "电站基础信息查询")
|
||||||
|
public ResponseResult getMsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
DataSourceResult<EngEqMsstbprptVo> result = engEqDataService.getMsstbprptList(dataSourceRequest);
|
||||||
|
return ResponseResult.successData(result);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/interval/qgc/hour/GetKendoListCust")
|
@PostMapping("/interval/qgc/hour/GetKendoListCust")
|
||||||
@Operation(summary = "生态流量达标率小时统计(二级页面)")
|
@Operation(summary = "生态流量达标率小时统计(二级页面)")
|
||||||
public ResponseResult getQgcHourKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
public ResponseResult getQgcHourKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
|||||||
@ -0,0 +1,72 @@
|
|||||||
|
package com.yfd.platform.qgc_eng.eq.entity.vo;
|
||||||
|
|
||||||
|
import com.yfd.platform.qgc_base.domain.SdEngInfoBH;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "电站基础信息查询")
|
||||||
|
public class EngEqMsstbprptVo extends SdEngInfoBH {
|
||||||
|
|
||||||
|
@Schema(description = "主键ID")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Schema(description = "站名")
|
||||||
|
private String stnm;
|
||||||
|
|
||||||
|
@Schema(description = "电站高程")
|
||||||
|
private Double dtmel;
|
||||||
|
|
||||||
|
@Schema(description = "站类主键")
|
||||||
|
private String sttp;
|
||||||
|
|
||||||
|
@Schema(description = "站类编码")
|
||||||
|
private String sttpCode;
|
||||||
|
|
||||||
|
@Schema(description = "站类名称")
|
||||||
|
private String sttpName;
|
||||||
|
|
||||||
|
@Schema(description = "站类全路径")
|
||||||
|
private String sttpFullPath;
|
||||||
|
|
||||||
|
@Schema(description = "站类层级")
|
||||||
|
private Integer sttpTreeLevel;
|
||||||
|
|
||||||
|
@Schema(description = "建设状态分类编码")
|
||||||
|
private String bldsttCcode;
|
||||||
|
|
||||||
|
@Schema(description = "建设状态分类名称")
|
||||||
|
private String bldsttCcodeName;
|
||||||
|
|
||||||
|
@Schema(description = "基地名称")
|
||||||
|
private String baseName;
|
||||||
|
|
||||||
|
@Schema(description = "基地流域名称")
|
||||||
|
private String hbrvcdName;
|
||||||
|
|
||||||
|
@Schema(description = "流域名称")
|
||||||
|
private String rvcdName;
|
||||||
|
|
||||||
|
@Schema(description = "行政区名称")
|
||||||
|
private String addvcdName;
|
||||||
|
|
||||||
|
@Schema(description = "国家名称")
|
||||||
|
private String countryName;
|
||||||
|
|
||||||
|
@Schema(description = "公司名称")
|
||||||
|
private String hynm;
|
||||||
|
|
||||||
|
@Schema(description = "集团名称")
|
||||||
|
private String topHynm;
|
||||||
|
|
||||||
|
@Schema(description = "数据接入中文")
|
||||||
|
private String dtinName;
|
||||||
|
|
||||||
|
@Schema(description = "建设状态名称")
|
||||||
|
private String bldsttName;
|
||||||
|
|
||||||
|
@Schema(description = "图片附件")
|
||||||
|
private String url;
|
||||||
|
}
|
||||||
@ -5,6 +5,7 @@ import com.yfd.platform.common.DataSourceResult;
|
|||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
|
||||||
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqMsstbprptVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngQecAlongVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngQecAlongVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRateCountVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRateCountVo;
|
||||||
@ -19,6 +20,8 @@ public interface EngEqDataService {
|
|||||||
|
|
||||||
DataSourceResult<EngEqIntervalVo> getIntervalKendoListCust(DataSourceRequest dataSourceRequest);
|
DataSourceResult<EngEqIntervalVo> getIntervalKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<EngEqMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
DataSourceResult<EngEqHourIntervalVo> getQgcHourKendoListCust(DataSourceRequest dataSourceRequest);
|
DataSourceResult<EngEqHourIntervalVo> getQgcHourKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
DataSourceResult<EngEqDayIntervalVo> getQgcDayKendoListCust(DataSourceRequest dataSourceRequest);
|
DataSourceResult<EngEqDayIntervalVo> getQgcDayKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo;
|
|||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngFidVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngFidVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
|
||||||
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqMsstbprptVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngQecAlongVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngQecAlongVo;
|
||||||
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRateCountVo;
|
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRateCountVo;
|
||||||
@ -68,6 +69,232 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
return queryIntervalGroupList(dataSourceRequest, loadOptions);
|
return queryIntervalGroupList(dataSourceRequest, loadOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSourceResult<EngEqMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest) {
|
||||||
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
|
if (CollUtil.isEmpty(dataSourceRequest == null ? null : dataSourceRequest.getGroup())) {
|
||||||
|
return queryMsstbprptDetailList(dataSourceRequest, loadOptions);
|
||||||
|
}
|
||||||
|
return queryMsstbprptGroupList(dataSourceRequest, loadOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DataSourceResult<EngEqMsstbprptVo> queryMsstbprptDetailList(DataSourceRequest dataSourceRequest,
|
||||||
|
DataSourceLoadOptionsBase loadOptions) {
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("SELECT ")
|
||||||
|
.append(buildMsstbprptDetailSelectSql(dataSourceRequest == null ? null : dataSourceRequest.getSelect()))
|
||||||
|
.append(" FROM (")
|
||||||
|
.append(buildMsstbprptViewSql())
|
||||||
|
.append(") t WHERE 1 = 1 ");
|
||||||
|
|
||||||
|
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(buildMsstbprptDetailOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
||||||
|
|
||||||
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
|
List<EngEqMsstbprptVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, EngEqMsstbprptVo.class);
|
||||||
|
DataSourceResult<EngEqMsstbprptVo> result = new DataSourceResult<>();
|
||||||
|
result.setData(list);
|
||||||
|
result.setTotal(page != null ? page.getTotal() : list.size());
|
||||||
|
result.setAggregates(new HashMap<>());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private DataSourceResult<EngEqMsstbprptVo> queryMsstbprptGroupList(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 = mapMsstbprptColumn(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 = mapMsstbprptColumn(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(buildMsstbprptViewSql())
|
||||||
|
.append(") t WHERE 1 = 1 ");
|
||||||
|
|
||||||
|
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(" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> groupByColumns = new ArrayList<>();
|
||||||
|
for (DataSourceRequest.GroupDescriptor descriptor : groups) {
|
||||||
|
if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String column = mapMsstbprptColumn(descriptor.getField());
|
||||||
|
if (StrUtil.isNotBlank(column)) {
|
||||||
|
groupByColumns.add(column);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!groupByColumns.isEmpty()) {
|
||||||
|
sql.append(" GROUP BY ").append(String.join(", ", groupByColumns)).append(" ");
|
||||||
|
}
|
||||||
|
sql.append(buildMsstbprptGroupOrderBySql(groups));
|
||||||
|
|
||||||
|
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(null, sql.toString(), paramMap);
|
||||||
|
DataSourceResult<EngEqMsstbprptVo> result = new DataSourceResult<>();
|
||||||
|
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
|
||||||
|
result.setData((List<EngEqMsstbprptVo>) (List<?>) new GroupHelper().faltGroup(rows, Arrays.asList(groupInfos)));
|
||||||
|
} else {
|
||||||
|
result.setData((List<EngEqMsstbprptVo>) (List<?>) new GroupHelper().group(rows, Arrays.asList(groupInfos)));
|
||||||
|
}
|
||||||
|
result.setTotal((long) rows.size());
|
||||||
|
result.setAggregates(new HashMap<>());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildMsstbprptViewSql() {
|
||||||
|
return "SELECT " +
|
||||||
|
"eng.STCD AS id, " +
|
||||||
|
"eng.STCD AS stcd, " +
|
||||||
|
"eng.ENNM AS stnm, " +
|
||||||
|
"eng.ENNM AS ennm, " +
|
||||||
|
"'ENG' AS sttpCode, " +
|
||||||
|
"'电站' AS sttpName, " +
|
||||||
|
"eng.LGTD AS lgtd, " +
|
||||||
|
"eng.LTTD AS lttd, " +
|
||||||
|
"eng.ELEV AS elev, " +
|
||||||
|
"eng.ELEV AS dtmel, " +
|
||||||
|
"eng.STLC AS stlc, " +
|
||||||
|
"eng.BASE_ID AS baseId, " +
|
||||||
|
"hb.BASENAME AS baseName, " +
|
||||||
|
"eng.HBRVCD AS hbrvcd, " +
|
||||||
|
"hbrv.HBRVNM AS hbrvcdName, " +
|
||||||
|
"eng.RVCD AS rvcd, " +
|
||||||
|
"rv.RVNM AS rvcdName, " +
|
||||||
|
"eng.ADDVCD AS addvcd, " +
|
||||||
|
"addv.ADDVNM AS addvcdName, " +
|
||||||
|
"eng.COUNTRY AS country, " +
|
||||||
|
"country.COUNTRY_NAME AS countryName, " +
|
||||||
|
"eng.HYCD AS hycd, " +
|
||||||
|
"CAST(NULL AS VARCHAR2(200)) AS hynm, " +
|
||||||
|
"eng.TOP_HYCD AS topHycd, " +
|
||||||
|
"CAST(NULL AS VARCHAR2(200)) AS topHynm, " +
|
||||||
|
"eng.USFL AS usfl, " +
|
||||||
|
"eng.DTIN AS dtin, " +
|
||||||
|
"CASE NVL(eng.DTIN, 0) WHEN 1 THEN '是' WHEN 0 THEN '否' ELSE NULL END AS dtinName, " +
|
||||||
|
"eng.DTIN_TM AS dtinTm, " +
|
||||||
|
"eng.INTRODUCE AS introduce, " +
|
||||||
|
"eng.LOGO AS logo, " +
|
||||||
|
"eng.INFFILE AS inffile, " +
|
||||||
|
"eng.INFFILE AS url, " +
|
||||||
|
"eng.BLDSTT AS bldstt, " +
|
||||||
|
"CASE eng.BLDSTT_CODE WHEN 0 THEN '0' WHEN 1 THEN '1' WHEN 2 THEN '2' ELSE NULL END AS bldsttCcode, " +
|
||||||
|
"eng.BLDSTT_CODE AS bldsttCode, " +
|
||||||
|
"CASE eng.BLDSTT_CODE WHEN 0 THEN '未建/规划' WHEN 1 THEN '在建' WHEN 2 THEN '已建' ELSE NULL END AS bldsttCcodeName, " +
|
||||||
|
"eng.ORDER_INDEX AS orderIndex, " +
|
||||||
|
"eng.PRSC AS prsc, " +
|
||||||
|
"eng.ENGTP AS engtp, " +
|
||||||
|
"eng.SCRSC AS scrsc, " +
|
||||||
|
"eng.PRGR AS prgr, " +
|
||||||
|
"eng.TM AS tm " +
|
||||||
|
"FROM SD_ENGINFO_B_H eng " +
|
||||||
|
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
|
||||||
|
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID " +
|
||||||
|
" AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " +
|
||||||
|
"LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
|
||||||
|
"LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
|
||||||
|
"LEFT JOIN SD_COUNTRY_B country ON country.COUNTRY_ID = eng.COUNTRY AND NVL(country.ENABLED, 1) = 1 " +
|
||||||
|
"WHERE NVL(eng.IS_DELETED, 0) = 0";
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildMsstbprptDetailSelectSql(List<String> selectFields) {
|
||||||
|
Map<String, String> columns = msstbprptFieldColumns();
|
||||||
|
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> msstbprptFieldColumns() {
|
||||||
|
Map<String, String> columns = new LinkedHashMap<>();
|
||||||
|
columns.put("id", "t.id AS id");
|
||||||
|
columns.put("stcd", "t.stcd AS stcd");
|
||||||
|
columns.put("stnm", "t.stnm AS stnm");
|
||||||
|
columns.put("ennm", "t.ennm AS ennm");
|
||||||
|
columns.put("sttpCode", "t.sttpCode AS sttpCode");
|
||||||
|
columns.put("sttpName", "t.sttpName AS sttpName");
|
||||||
|
columns.put("lgtd", "t.lgtd AS lgtd");
|
||||||
|
columns.put("lttd", "t.lttd AS lttd");
|
||||||
|
columns.put("elev", "t.elev AS elev");
|
||||||
|
columns.put("dtmel", "t.dtmel AS dtmel");
|
||||||
|
columns.put("stlc", "t.stlc AS stlc");
|
||||||
|
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("rvcd", "t.rvcd AS rvcd");
|
||||||
|
columns.put("rvcdName", "t.rvcdName AS rvcdName");
|
||||||
|
columns.put("addvcd", "t.addvcd AS addvcd");
|
||||||
|
columns.put("addvcdName", "t.addvcdName AS addvcdName");
|
||||||
|
columns.put("country", "t.country AS country");
|
||||||
|
columns.put("countryName", "t.countryName AS countryName");
|
||||||
|
columns.put("hycd", "t.hycd AS hycd");
|
||||||
|
columns.put("hynm", "t.hynm AS hynm");
|
||||||
|
columns.put("topHycd", "t.topHycd AS topHycd");
|
||||||
|
columns.put("topHynm", "t.topHynm AS topHynm");
|
||||||
|
columns.put("usfl", "t.usfl AS usfl");
|
||||||
|
columns.put("dtin", "t.dtin AS dtin");
|
||||||
|
columns.put("dtinName", "t.dtinName AS dtinName");
|
||||||
|
columns.put("dtinTm", "t.dtinTm AS dtinTm");
|
||||||
|
columns.put("introduce", "t.introduce AS introduce");
|
||||||
|
columns.put("logo", "t.logo AS logo");
|
||||||
|
columns.put("inffile", "t.inffile AS inffile");
|
||||||
|
columns.put("url", "t.url AS url");
|
||||||
|
columns.put("bldstt", "t.bldstt AS bldstt");
|
||||||
|
columns.put("bldsttCcode", "t.bldsttCcode AS bldsttCcode");
|
||||||
|
columns.put("bldsttCode", "t.bldsttCode AS bldsttCode");
|
||||||
|
columns.put("bldsttCcodeName", "t.bldsttCcodeName AS bldsttCcodeName");
|
||||||
|
columns.put("orderIndex", "t.orderIndex AS orderIndex");
|
||||||
|
columns.put("prsc", "t.prsc AS prsc");
|
||||||
|
columns.put("engtp", "t.engtp AS engtp");
|
||||||
|
columns.put("scrsc", "t.scrsc AS scrsc");
|
||||||
|
columns.put("prgr", "t.prgr AS prgr");
|
||||||
|
columns.put("tm", "t.tm AS tm");
|
||||||
|
return columns;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataSourceResult<EngEqHourIntervalVo> getQgcHourKendoListCust(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult<EngEqHourIntervalVo> getQgcHourKendoListCust(DataSourceRequest dataSourceRequest) {
|
||||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
@ -1931,6 +2158,74 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
return columns;
|
return columns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildMsstbprptFilterCondition(DataSourceRequest.FilterDescriptor filter,
|
||||||
|
Map<String, Object> paramMap,
|
||||||
|
int[] indexHolder) {
|
||||||
|
if (filter == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(filter.getField())) {
|
||||||
|
String column = mapMsstbprptColumn(filter.getField());
|
||||||
|
if (StrUtil.isBlank(column)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return buildGenericCondition(column, filter, paramMap, indexHolder, isEqDateField(filter.getField()));
|
||||||
|
}
|
||||||
|
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 buildMsstbprptDetailOrderBySql(List<DataSourceRequest.SortDescriptor> sortList) {
|
||||||
|
List<String> orders = new ArrayList<>();
|
||||||
|
if (CollUtil.isNotEmpty(sortList)) {
|
||||||
|
for (DataSourceRequest.SortDescriptor sort : sortList) {
|
||||||
|
if (sort == null || StrUtil.isBlank(sort.getField())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String column = mapMsstbprptColumn(sort.getField());
|
||||||
|
if (StrUtil.isBlank(column)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
orders.add(column + ("desc".equalsIgnoreCase(sort.getDir()) ? " DESC" : " ASC"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (orders.isEmpty()) {
|
||||||
|
orders.add("NVL(t.orderIndex, 999999) ASC");
|
||||||
|
orders.add("t.stnm ASC");
|
||||||
|
}
|
||||||
|
return " ORDER BY " + String.join(", ", orders);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildMsstbprptGroupOrderBySql(List<DataSourceRequest.GroupDescriptor> groups) {
|
||||||
|
List<String> orders = new ArrayList<>();
|
||||||
|
if (CollUtil.isNotEmpty(groups)) {
|
||||||
|
for (DataSourceRequest.GroupDescriptor descriptor : groups) {
|
||||||
|
if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String column = mapMsstbprptColumn(descriptor.getField());
|
||||||
|
if (StrUtil.isBlank(column)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
orders.add(column + ("desc".equalsIgnoreCase(descriptor.getDir()) ? " DESC" : " ASC"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return orders.isEmpty() ? "" : " ORDER BY " + String.join(", ", orders);
|
||||||
|
}
|
||||||
|
|
||||||
private String buildVmsstbprptFilterCondition(DataSourceRequest.FilterDescriptor filter,
|
private String buildVmsstbprptFilterCondition(DataSourceRequest.FilterDescriptor filter,
|
||||||
Map<String, Object> paramMap,
|
Map<String, Object> paramMap,
|
||||||
int[] indexHolder) {
|
int[] indexHolder) {
|
||||||
@ -3410,6 +3705,58 @@ public class EngEqDataServiceImpl implements EngEqDataService {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String mapMsstbprptColumn(String field) {
|
||||||
|
if (StrUtil.isBlank(field)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return switch (field) {
|
||||||
|
case "id" -> "t.id";
|
||||||
|
case "stcd" -> "t.stcd";
|
||||||
|
case "stnm" -> "t.stnm";
|
||||||
|
case "ennm" -> "t.ennm";
|
||||||
|
case "sttpCode" -> "t.sttpCode";
|
||||||
|
case "sttpName" -> "t.sttpName";
|
||||||
|
case "lgtd" -> "t.lgtd";
|
||||||
|
case "lttd" -> "t.lttd";
|
||||||
|
case "elev" -> "t.elev";
|
||||||
|
case "dtmel" -> "t.dtmel";
|
||||||
|
case "stlc" -> "t.stlc";
|
||||||
|
case "baseId" -> "t.baseId";
|
||||||
|
case "baseName" -> "t.baseName";
|
||||||
|
case "hbrvcd" -> "t.hbrvcd";
|
||||||
|
case "hbrvcdName" -> "t.hbrvcdName";
|
||||||
|
case "rvcd" -> "t.rvcd";
|
||||||
|
case "rvcdName" -> "t.rvcdName";
|
||||||
|
case "addvcd" -> "t.addvcd";
|
||||||
|
case "addvcdName" -> "t.addvcdName";
|
||||||
|
case "country" -> "t.country";
|
||||||
|
case "countryName" -> "t.countryName";
|
||||||
|
case "hycd" -> "t.hycd";
|
||||||
|
case "hynm" -> "t.hynm";
|
||||||
|
case "topHycd" -> "t.topHycd";
|
||||||
|
case "topHynm" -> "t.topHynm";
|
||||||
|
case "usfl" -> "t.usfl";
|
||||||
|
case "dtin" -> "t.dtin";
|
||||||
|
case "dtinName" -> "t.dtinName";
|
||||||
|
case "dtinTm" -> "t.dtinTm";
|
||||||
|
case "introduce" -> "t.introduce";
|
||||||
|
case "logo" -> "t.logo";
|
||||||
|
case "inffile" -> "t.inffile";
|
||||||
|
case "url" -> "t.url";
|
||||||
|
case "bldstt" -> "t.bldstt";
|
||||||
|
case "bldsttCcode" -> "t.bldsttCcode";
|
||||||
|
case "bldsttCode" -> "t.bldsttCode";
|
||||||
|
case "bldsttCcodeName" -> "t.bldsttCcodeName";
|
||||||
|
case "orderIndex" -> "NVL(t.orderIndex, 999999)";
|
||||||
|
case "prsc" -> "t.prsc";
|
||||||
|
case "engtp" -> "t.engtp";
|
||||||
|
case "scrsc" -> "t.scrsc";
|
||||||
|
case "prgr" -> "t.prgr";
|
||||||
|
case "tm" -> "t.tm";
|
||||||
|
default -> null;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
private String mapWbsbColumn(String field) {
|
private String mapWbsbColumn(String field) {
|
||||||
if (StrUtil.isBlank(field)) {
|
if (StrUtil.isBlank(field)) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -496,7 +496,7 @@ public class FhHabitatServiceImpl implements FhHabitatService {
|
|||||||
" t.QXDBHFS AS qxdbhfs, " +
|
" t.QXDBHFS AS qxdbhfs, " +
|
||||||
" t.STSTDT AS ststdt, " +
|
" t.STSTDT AS ststdt, " +
|
||||||
" t.ESSTDT AS esstdt, " +
|
" t.ESSTDT AS esstdt, " +
|
||||||
" t.MWAY AS mway, " +
|
"CASE NVL(t.MWAY, 0) WHEN 1 THEN '人工' WHEN 2 THEN '自动' ELSE '未知' END AS mway , "+
|
||||||
" t.DTIN AS dtin, " +
|
" t.DTIN AS dtin, " +
|
||||||
" t.VLSR AS vlsr, " +
|
" t.VLSR AS vlsr, " +
|
||||||
" t.DTIN_TYPE AS dtinType, " +
|
" t.DTIN_TYPE AS dtinType, " +
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user