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

This commit is contained in:
tangwei 2026-06-18 15:45:35 +08:00
parent c44c8d2229
commit 675d6a1927
2 changed files with 112 additions and 36 deletions

View File

@ -2,51 +2,21 @@ package com.yfd.platform.qgc_eng.eq.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "生态流量泄放设施统计查询")
public class EngEqBaseVmsstbprptVo implements Serializable {
public class EngEqBaseVmsstbprptVo extends EngEqMsstbprptVo {
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;

View File

@ -317,6 +317,7 @@ public class EngEqDataServiceImpl implements EngEqDataService {
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<EngEqBaseVmsstbprptVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, EngEqBaseVmsstbprptVo.class);
fillBaseVmsstbprptDetailFields(list);
DataSourceResult<EngEqBaseVmsstbprptVo> result = new DataSourceResult<>();
result.setData(list);
result.setTotal(page != null ? page.getTotal() : list.size());
@ -396,29 +397,68 @@ public class EngEqDataServiceImpl implements EngEqDataService {
private String buildBaseVmsstbprptViewSql() {
return "SELECT " +
"eq.STCD AS id, " +
"eq.RECORD_USER AS recordUser, " +
"eq.RECORD_TIME AS recordTime, " +
"eq.MODIFY_TIME AS modifyTime, " +
"eq.STTP AS sttpCode, " +
"NVL(sttp.STTP_NAME, eq.STTP) AS sttpName, " +
"sttp.ID AS sttp, " +
"sttp.FULL_PATH AS sttpFullPath, " +
"sttp.TREE_LEVEL AS sttpTreeLevel, " +
"eq.STCD AS stcd, " +
"eq.STNM AS stnm, " +
"eng.ENNM AS ennm, " +
"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, " +
"eng.RVCD AS rvcd, " +
"rv.RVNM AS rvcdName, " +
"eng.ADDVCD AS addvcd, " +
"addv.ADDVNM AS addvcdName, " +
"eng.COUNTRY AS country, " +
"eng.COUNTRY_NAME AS countryName, " +
"eng.HYCD AS hycd, " +
"eng.HYNM AS hynm, " +
"eng.TOP_HYCD AS topHycd, " +
"eng.TOP_HYNM AS topHynm, " +
"eq.BLPRD AS blprd, " +
"eq.LGTD AS lgtd, " +
"eq.LTTD AS lttd, " +
"eq.ELEV AS elev, " +
"eq.ELEV AS dtmel, " +
"eq.STLC AS stlc, " +
"eq.USFL AS usfl, " +
"eq.DTIN AS dtin, " +
"eq.BLDSTT_CODE AS bldsttCode, " +
"CASE NVL(eq.DTIN, 0) WHEN 1 THEN '已接入' WHEN 0 THEN '未接入' ELSE NULL END AS dtinName, " +
"eq.DTIN_TM AS dtinTm, " +
"eq.INTRODUCE AS introduce, " +
"eq.LOGO AS logo, " +
"eq.INFFILE AS inffile, " +
"eng.PRSC AS prsc, " +
"eng.RUN_STATE AS runState, " +
"eng.BLDSTT AS bldstt, " +
"eng.BLDSTT_CODE AS bldsttCode, " +
"TO_CHAR(eng.BLDSTT_CODE) AS bldsttCcode, " +
"CASE NVL(eng.BLDSTT_CODE, -1) WHEN 0 THEN '未建/规划' WHEN 1 THEN '在建' WHEN 2 THEN '已建' ELSE NULL END AS bldsttCcodeName, " +
"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 " +
"NVL(eq.ORDER_INDEX, 999999) AS siteStepSort, " +
"eq.ORDER_INDEX AS orderIndex, " +
"eq.TM AS tm " +
"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 " +
" 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 " +
" 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 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";
}
@ -444,17 +484,54 @@ public class EngEqDataServiceImpl implements EngEqDataService {
private Map<String, String> baseVmsstbprptFieldColumns() {
Map<String, String> columns = new LinkedHashMap<>();
columns.put("id", "t.id AS id");
columns.put("recordUser", "t.recordUser AS recordUser");
columns.put("recordTime", "t.recordTime AS recordTime");
columns.put("modifyTime", "t.modifyTime AS modifyTime");
columns.put("sttp", "t.sttp AS sttp");
columns.put("sttpCode", "t.sttpCode AS sttpCode");
columns.put("sttpName", "t.sttpName AS sttpName");
columns.put("sttpFullPath", "t.sttpFullPath AS sttpFullPath");
columns.put("sttpTreeLevel", "t.sttpTreeLevel AS sttpTreeLevel");
columns.put("stcd", "t.stcd AS stcd");
columns.put("stnm", "t.stnm AS stnm");
columns.put("ennm", "t.ennm AS ennm");
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("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("blprd", "t.blprd AS blprd");
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("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("prsc", "t.prsc AS prsc");
columns.put("runState", "t.runState AS runState");
columns.put("bldstt", "t.bldstt AS bldstt");
columns.put("bldsttCcode", "t.bldsttCcode AS bldsttCcode");
columns.put("bldsttCcodeName", "t.bldsttCcodeName AS bldsttCcodeName");
columns.put("orderIndex", "t.orderIndex AS orderIndex");
columns.put("tm", "t.tm AS tm");
columns.put("bldsttCode", "t.bldsttCode AS bldsttCode");
columns.put("baseStepSort", "t.baseStepSort AS baseStepSort");
columns.put("rvcdStepSort", "t.rvcdStepSort AS rvcdStepSort");
@ -463,6 +540,27 @@ public class EngEqDataServiceImpl implements EngEqDataService {
return columns;
}
private void fillBaseVmsstbprptDetailFields(List<EngEqBaseVmsstbprptVo> list) {
if (CollUtil.isEmpty(list)) {
return;
}
Map<String, String> sttpNameCache = new HashMap<>();
for (EngEqBaseVmsstbprptVo item : list) {
if (item == null) {
continue;
}
if (StrUtil.isBlank(item.getSttpName())) {
item.setSttpName(resolveSttpName(item.getSttpCode(), sttpNameCache));
}
if (StrUtil.isBlank(item.getDtinName()) && item.getDtin() != null) {
item.setDtinName(resolveEqDtinName(String.valueOf(item.getDtin())));
}
if (StrUtil.isBlank(item.getBldsttCcodeName()) && StrUtil.isNotBlank(item.getBldsttCcode())) {
item.setBldsttCcodeName(resolveBldsttName(item.getBldsttCcode()));
}
}
}
private DataSourceResult<EngEqMsstbprptVo> queryMsstbprptDetailList(DataSourceRequest dataSourceRequest,
DataSourceLoadOptionsBase loadOptions) {
StringBuilder sql = new StringBuilder();
@ -1571,6 +1669,14 @@ public class EngEqDataServiceImpl implements EngEqDataService {
};
}
private String resolveEqDtinName(String keyValue) {
return switch (keyValue) {
case "1" -> "已接入";
case "0" -> "未接入";
default -> keyValue;
};
}
private String resolveDtinEnvName(String keyValue) {
return switch (keyValue) {
case "2" -> "已全部接入";