Merge branch 'dev-tw'

This commit is contained in:
tangwei 2026-07-16 08:32:14 +08:00
commit 36892c222d
28 changed files with 1132 additions and 187 deletions

View File

@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.yfd.platform.utils.SecurityUtils;
import org.springframework.cache.CacheManager; import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.cache.interceptor.KeyGenerator;
@ -114,4 +115,9 @@ public class RedisConfig {
public KeyGenerator cacheKeyGenerator() { public KeyGenerator cacheKeyGenerator() {
return (target, method, params) -> target.getClass().getName() + "." + method.getName() + ":" + DigestUtil.md5Hex(JSONUtil.toJsonStr(params)); return (target, method, params) -> target.getClass().getName() + "." + method.getName() + ":" + DigestUtil.md5Hex(JSONUtil.toJsonStr(params));
} }
@Bean("cacheKeyByUserGenerator")
public KeyGenerator cacheKeyByUserGenerator() {
return (target, method, params) -> SecurityUtils.getUserId()+"."+target.getClass().getName() + "." + method.getName() + ":" + DigestUtil.md5Hex(JSONUtil.toJsonStr(params));
}
} }

View File

@ -59,6 +59,10 @@ public class EngPointVo {
@Schema(description = "所属行政区名称") @Schema(description = "所属行政区名称")
private String addvcdName; private String addvcdName;
@Schema(description = "基地名称")
private String baseName;
@Schema(description = "站点类型") @Schema(description = "站点类型")
private String sttp; private String sttp;

View File

@ -1095,6 +1095,9 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
"t.WDDT AS wddt, " + "t.WDDT AS wddt, " +
"t.ORDER_INDEX AS orderIndex, " + "t.ORDER_INDEX AS orderIndex, " +
"t.REMARK AS remark, " + "t.REMARK AS remark, " +
"t.STINDX AS stindx, " +
"t.COENVW_STATE AS coenvwState, " +
"CASE t.DVTP WHEN '1' THEN '堤坝式' WHEN '2' THEN '引水式' WHEN '3' THEN '混合式' ELSE '未知' END AS dvtpName, " +
"t.VLSR AS vlsr, " + "t.VLSR AS vlsr, " +
"t.VLSR_TM AS vlsrTm, " + "t.VLSR_TM AS vlsrTm, " +
"t.RECORD_USER AS recordUser, " + "t.RECORD_USER AS recordUser, " +
@ -1256,7 +1259,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
"CAST(NULL AS NUMBER) AS ddz, " + "CAST(NULL AS NUMBER) AS ddz, " +
"eng.NRZAR AS nrzar, " + "eng.NRZAR AS nrzar, " +
"eng.BCKLEN AS bcklen, " + "eng.BCKLEN AS bcklen, " +
"CAST(NULL AS NUMBER) AS ttcp, " + "rbh.TTCP AS ttcp, " +
"CAST(NULL AS NUMBER) AS nmzcp, " + "CAST(NULL AS NUMBER) AS nmzcp, " +
"CAST(NULL AS VARCHAR2(255)) AS fldcpStr, " + "CAST(NULL AS VARCHAR2(255)) AS fldcpStr, " +
"CAST(NULL AS NUMBER) AS actcp, " + "CAST(NULL AS NUMBER) AS actcp, " +
@ -1323,19 +1326,20 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
"LEFT JOIN SD_HYCD_DIC hy ON hy.HYCD = eng.HYCD AND NVL(hy.IS_DELETED, 0) = 0 AND NVL(hy.ENABLED, 1) = 1 " + "LEFT JOIN SD_HYCD_DIC hy ON hy.HYCD = eng.HYCD AND NVL(hy.IS_DELETED, 0) = 0 AND NVL(hy.ENABLED, 1) = 1 " +
"LEFT JOIN SD_HYCD_DIC topHy ON topHy.HYCD = eng.TOP_HYCD AND NVL(topHy.IS_DELETED, 0) = 0 AND NVL(topHy.ENABLED, 1) = 1 " + "LEFT JOIN SD_HYCD_DIC topHy ON topHy.HYCD = eng.TOP_HYCD AND NVL(topHy.IS_DELETED, 0) = 0 AND NVL(topHy.ENABLED, 1) = 1 " +
"LEFT JOIN SD_PWR_B_H pwr ON pwr.STCD = eng.STCD AND NVL(pwr.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_PWR_B_H pwr ON pwr.STCD = eng.STCD AND NVL(pwr.IS_DELETED, 0) = 0 " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_RSVRFCCH_B_H rbh ON rbh.STCD = eng.STCD " +
"LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = eng.STCD " + ") rstSort ON rstSort.BASEID = eng.BASE_ID AND rstSort.STCD = eng.STCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = eng.STCD " + ") siteSort ON siteSort.BASEID = eng.BASE_ID AND siteSort.STCD = eng.STCD " +
"WHERE NVL(eng.IS_DELETED, 0) = 0"; "WHERE NVL(eng.IS_DELETED, 0) = 0";
} }
@ -2148,19 +2152,19 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
"LEFT JOIN SD_ENGINFO_B_H s ON e.STCD = s.STCD AND NVL(s.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_ENGINFO_B_H s ON e.STCD = s.STCD AND NVL(s.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = 'ENG' AND NVL(sttp.IS_DELETED, 0) = 0 AND NVL(sttp.ENABLE, 1) = 1 " + "LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = 'ENG' AND NVL(sttp.IS_DELETED, 0) = 0 AND NVL(sttp.ENABLE, 1) = 1 " +
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = s.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = s.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = s.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = e.BASEID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = s.HBRVCD AND rstSort.STCD = s.STCD " + ") rstSort ON rstSort.BASEID = e.BASEID AND rstSort.STCD = s.STCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = s.HBRVCD AND siteSort.STCD = s.STCD " + ") siteSort ON siteSort.BASEID = e.BASEID AND siteSort.STCD = s.STCD " +
"WHERE NVL(e.IS_DELETED, 0) = 0"; "WHERE NVL(e.IS_DELETED, 0) = 0";
} }
@ -2839,6 +2843,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
} }
@Override @Override
@Cacheable(cacheNames = "engPointCache#3600", keyGenerator = "cacheKeyByUserGenerator")
public DataSourceResult<EngPointVo> getEngPointKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<EngPointVo> getEngPointKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceResult<EngPointVo> result = new DataSourceResult<>(); DataSourceResult<EngPointVo> result = new DataSourceResult<>();
result.setAggregates(new HashMap<>()); result.setAggregates(new HashMap<>());
@ -2857,6 +2862,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
.append("t.ENNM AS stnm, ") .append("t.ENNM AS stnm, ")
.append("t.ENNM AS titleName, ") .append("t.ENNM AS titleName, ")
.append("t.RVCD AS rvcd, ") .append("t.RVCD AS rvcd, ")
.append("t.BASE_NAME AS baseName, ")
.append("t.ADDVCD AS addvcd, ") .append("t.ADDVCD AS addvcd, ")
.append("t.LGTD AS lgtd, ") .append("t.LGTD AS lgtd, ")
.append("t.LTTD AS lttd, ") .append("t.LTTD AS lttd, ")
@ -2894,19 +2900,19 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
.append("FROM SD_ENGINFO_B_H t ") .append("FROM SD_ENGINFO_B_H t ")
.append("LEFT JOIN SD_PWR_B_H p ON t.STCD = p.STCD AND NVL(p.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_PWR_B_H p ON t.STCD = p.STCD AND NVL(p.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = t.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = t.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN MS_ALONG_B along ON along.RVCD = t.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ") .append("LEFT JOIN MS_ALONG_B along ON along.BASEID = t.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT det.SORT, cfg.RVCD, det.STCD ") .append(" SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ") .append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ")
.append(") rstSort ON rstSort.RVCD = t.HBRVCD AND rstSort.STCD = t.STCD ") .append(") rstSort ON rstSort.BASEID = t.BASE_ID AND rstSort.STCD = t.STCD ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT det.SORT, cfg.RVCD, det.STCD ") .append(" SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ") .append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ")
.append(") siteSort ON siteSort.RVCD = t.HBRVCD AND siteSort.STCD = t.STCD ") .append(") siteSort ON siteSort.BASEID = t.BASE_ID AND siteSort.STCD = t.STCD ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT STCD, COUNT(STCD) AS configCount ") .append(" SELECT STCD, COUNT(STCD) AS configCount ")
.append(" FROM SD_EQ_B_H ") .append(" FROM SD_EQ_B_H ")
@ -2975,10 +2981,15 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
startTime = yearRange.get("startTime"); startTime = yearRange.get("startTime");
endTime = yearRange.get("endTime"); endTime = yearRange.get("endTime");
} }
DataSourceResult<EngAlarmPointVo> result = new DataSourceResult<>();
Map<String, Object> pointParamMap = new HashMap<>(); Map<String, Object> pointParamMap = new HashMap<>();
StringBuilder pointSql = new StringBuilder(buildAlarmPointBaseSql()); StringBuilder pointSql = new StringBuilder(buildAlarmPointBaseSql());
// DataScopeApplyResult scopeApplyResult = dataScopeFilterService.appendCurrentUserStationScope(pointSql, pointParamMap, "eng.STCD"); DataScopeApplyResult scopeApplyResult = dataScopeFilterService.appendCurrentUserStationScope(pointSql, pointParamMap, "eng.STCD");
if (scopeApplyResult.isEmptyResult()) {
result.setData(new ArrayList<>());
result.setTotal(0L);
return result;
}
List<EngAlarmPointVo> points= microservicDynamicSQLMapper.getAllListWithResultType( List<EngAlarmPointVo> points= microservicDynamicSQLMapper.getAllListWithResultType(
pointSql.toString(), pointSql.toString(),
pointParamMap, pointParamMap,
@ -3004,7 +3015,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
List<Map<String, Object>> expressionRows = microservicDynamicSQLMapper.getAllList(buildAlarmPointLegendSql(), new HashMap<>()); List<Map<String, Object>> expressionRows = microservicDynamicSQLMapper.getAllList(buildAlarmPointLegendSql(), new HashMap<>());
List<EngAlarmPointVo> resultList = mergeAlarmPointData(points, qecCountMap, wqCountMap, expressionRows, yyyy); List<EngAlarmPointVo> resultList = mergeAlarmPointData(points, qecCountMap, wqCountMap, expressionRows, yyyy);
DataSourceResult<EngAlarmPointVo> result = new DataSourceResult<>();
result.setData(resultList); result.setData(resultList);
result.setTotal(resultList.size()); result.setTotal(resultList.size());
result.setAggregates(new HashMap<>()); result.setAggregates(new HashMap<>());
@ -3045,19 +3056,19 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
"NVL(siteSort.SORT, 999999) AS siteStepSort " + "NVL(siteSort.SORT, 999999) AS siteStepSort " +
"FROM SD_ENGINFO_B_H eng " + "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_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = eng.STCD " + ") rstSort ON rstSort.BASEID = eng.BASE_ID AND rstSort.STCD = eng.STCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = eng.STCD " + ") siteSort ON siteSort.BASEID = eng.BASE_ID AND siteSort.STCD = eng.STCD " +
"WHERE NVL(eng.IS_DELETED, 0) = 0 " + "WHERE NVL(eng.IS_DELETED, 0) = 0 " +
"AND NVL(eng.USFL, 0) = 1 " + "AND NVL(eng.USFL, 0) = 1 " +
"AND eng.LGTD IS NOT NULL " + "AND eng.LGTD IS NOT NULL " +

View File

@ -4,6 +4,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data @Data
@Schema(description = "电站统计查询") @Schema(description = "电站统计查询")
@ -26,9 +28,22 @@ public class EngEqVmsstbprptVo implements Serializable {
@Schema(description = "工程名称") @Schema(description = "工程名称")
private String ennm; private String ennm;
@Schema(description = "总投运容量")
private Double ttcp;
@Schema(description = "基地编码") @Schema(description = "基地编码")
private String baseId; private String baseId;
/**
* 开发方式 字典编码sd_enginfo_b_h.dvtp 1=堤坝式 2=引水式 3=混合式
*/
@Schema(description = "开发方式")
private String dvtp;
@Schema(description = "开发方式名称")
private String dvtpName;
@Schema(description = "基地名称") @Schema(description = "基地名称")
private String baseName; private String baseName;
@ -38,6 +53,12 @@ public class EngEqVmsstbprptVo implements Serializable {
@Schema(description = "基地流域名称") @Schema(description = "基地流域名称")
private String hbrvcdName; private String hbrvcdName;
@Schema(description = "行政区")
private String addvcd;
@Schema(description = "行政区名称")
private String addvcdName;
@Schema(description = "流域编码") @Schema(description = "流域编码")
private String rvcd; private String rvcd;
@ -50,15 +71,30 @@ public class EngEqVmsstbprptVo implements Serializable {
@Schema(description = "建设状态") @Schema(description = "建设状态")
private String bldstt; private String bldstt;
@Schema(description = "装机容量")
private BigDecimal ttpwr;
@Schema(description = "建设状态分类") @Schema(description = "建设状态分类")
private Integer bldsttCcode; private Integer bldsttCcode;
@Schema(description = "建设状态分类")
private String bldsttCcodeName;
@Schema(description = "环保数据接入状态") @Schema(description = "环保数据接入状态")
private Integer dtinEnv; private Integer dtinEnv;
@Schema(description = "接入状态") @Schema(description = "接入状态")
private Integer dtin; private Integer dtin;
@Schema(description = "多年平均发电量")
private BigDecimal yrge;
@Schema(description = "首台机组投运时间")
private Date piodt;
@Schema(description = "所有机组投运时间")
private Date aiodt;
@Schema(description = "基地排序") @Schema(description = "基地排序")
private Integer baseStepSort; private Integer baseStepSort;

View File

@ -1122,7 +1122,7 @@ public class EngEqDataServiceImpl implements EngEqDataService {
.append("WHERE NVL(eng.IS_DELETED, 0) = 0 ") .append("WHERE NVL(eng.IS_DELETED, 0) = 0 ")
.append("AND NVL(eng.DTIN, 0) = 1 ") .append("AND NVL(eng.DTIN, 0) = 1 ")
.append("AND NVL(eng.BLDSTT_CODE, 0) IN (1, 2) ") .append("AND NVL(eng.BLDSTT_CODE, 0) IN (1, 2) ")
.append("AND EXISTS (SELECT 1 FROM SD_QEC_R qec WHERE qec.STCD = eng.STCD AND NVL(qec.IS_DELETED, 0) = 0) "); .append("AND RUN_STATE = 4 ");
if (StrUtil.isNotBlank(baseId)) { if (StrUtil.isNotBlank(baseId)) {
sql.append("AND eng.BASE_ID = #{map.baseId} "); sql.append("AND eng.BASE_ID = #{map.baseId} ");
paramMap.put("baseId", baseId); paramMap.put("baseId", baseId);
@ -1863,19 +1863,19 @@ public class EngEqDataServiceImpl implements EngEqDataService {
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID " + "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 " + " AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " +
"LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " + "LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = eng.STCD " + ") rstSort ON rstSort.BASEID = eng.BASE_ID AND rstSort.STCD = eng.STCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = eng.STCD " + ") siteSort ON siteSort.BASEID = eng.BASE_ID AND siteSort.STCD = eng.STCD " +
"LEFT JOIN (" + buildDayMetricSourceSql(filter, paramMap, indexHolder, 0) + ") met ON met.STCD = eng.STCD " + "LEFT JOIN (" + buildDayMetricSourceSql(filter, paramMap, indexHolder, 0) + ") met ON met.STCD = eng.STCD " +
"LEFT JOIN (" + buildDayRunSourceSql(filter, paramMap, indexHolder, 0) + ") runAgg ON runAgg.STCD = eng.STCD " + "LEFT JOIN (" + buildDayRunSourceSql(filter, paramMap, indexHolder, 0) + ") runAgg ON runAgg.STCD = eng.STCD " +
"LEFT JOIN (" + buildStaticRuleSql("EQMN") + ") qecNoRule ON qecNoRule.STCD = eng.STCD " + "LEFT JOIN (" + buildStaticRuleSql("EQMN") + ") qecNoRule ON qecNoRule.STCD = eng.STCD " +
@ -2215,19 +2215,19 @@ public class EngEqDataServiceImpl implements EngEqDataService {
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID " + "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 " + " AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " +
"LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " + "LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = eng.STCD " + ") rstSort ON rstSort.BASEID = eng.BASE_ID AND rstSort.STCD = eng.STCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = eng.STCD " + ") siteSort ON siteSort.BASEID = eng.BASE_ID AND siteSort.STCD = eng.STCD " +
"LEFT JOIN (" + buildHourMetricSourceSql(filter, paramMap, indexHolder, 0) + ") met ON met.STCD = eng.STCD " + "LEFT JOIN (" + buildHourMetricSourceSql(filter, paramMap, indexHolder, 0) + ") met ON met.STCD = eng.STCD " +
"LEFT JOIN (" + buildHourRunSourceSql(filter, paramMap, indexHolder, 0) + ") runAgg ON runAgg.STCD = eng.STCD " + "LEFT JOIN (" + buildHourRunSourceSql(filter, paramMap, indexHolder, 0) + ") runAgg ON runAgg.STCD = eng.STCD " +
"LEFT JOIN (" + buildStaticRuleSql("EQMN") + ") qecNoRule ON qecNoRule.STCD = eng.STCD " + "LEFT JOIN (" + buildStaticRuleSql("EQMN") + ") qecNoRule ON qecNoRule.STCD = eng.STCD " +
@ -2894,19 +2894,19 @@ public class EngEqDataServiceImpl implements EngEqDataService {
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID " + "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 " + " AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " +
"LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " + "LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = eng.STCD " + ") rstSort ON rstSort.BASEID = eng.BASE_ID AND rstSort.STCD = eng.STCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = eng.STCD " + ") siteSort ON siteSort.BASEID = eng.BASE_ID AND siteSort.STCD = eng.STCD " +
"LEFT JOIN (" + buildIntervalMetricSourceSql(filter, paramMap, indexHolder, 0) + ") met ON met.STCD = eng.STCD " + "LEFT JOIN (" + buildIntervalMetricSourceSql(filter, paramMap, indexHolder, 0) + ") met ON met.STCD = eng.STCD " +
"LEFT JOIN (" + beforeMetricSql + ") beforeMet ON beforeMet.STCD = eng.STCD " + "LEFT JOIN (" + beforeMetricSql + ") beforeMet ON beforeMet.STCD = eng.STCD " +
"LEFT JOIN (" + buildIntervalNoRuleSql() + ") qecNoRule ON qecNoRule.STCD = eng.STCD " + "LEFT JOIN (" + buildIntervalNoRuleSql() + ") qecNoRule ON qecNoRule.STCD = eng.STCD " +
@ -3371,7 +3371,11 @@ public class EngEqDataServiceImpl implements EngEqDataService {
"'电站' AS sttpName, " + "'电站' AS sttpName, " +
"eng.STCD AS stcd, " + "eng.STCD AS stcd, " +
"pbh.TTPWR AS ttpwr, " + "pbh.TTPWR AS ttpwr, " +
"pbh.YRGE AS yrge, " +
"eng.ENNM AS stnm, " + "eng.ENNM AS stnm, " +
"eng.PIODT AS piodt, " +
"rbh.TTCP AS ttcp,"+
"eng.AIODT AS aiodt, " +
"eng.ENNM AS ennm, " + "eng.ENNM AS ennm, " +
"eng.BASE_ID AS baseId, " + "eng.BASE_ID AS baseId, " +
"hb.BASENAME AS baseName, " + "hb.BASENAME AS baseName, " +
@ -3380,22 +3384,31 @@ public class EngEqDataServiceImpl implements EngEqDataService {
"eng.RVCD AS rvcd, " + "eng.RVCD AS rvcd, " +
"rv.RVNM AS rvcdName, " + "rv.RVNM AS rvcdName, " +
"eng.PRSC AS prsc, " + "eng.PRSC AS prsc, " +
"eng.DVTP AS dvtp, " +
"eng.ADDVCD AS addvcd, " +
"ad.ADDVNM AS addvcdName, " +
"CASE eng.DVTP WHEN '1' THEN '堤坝式' WHEN '2' THEN '引水式' WHEN '3' THEN '混合式' ELSE '未知' END AS dvtpName,"+
"eng.RUN_STATE AS runState, " + "eng.RUN_STATE AS runState, " +
"eng.BLDSTT AS bldstt, " + "eng.BLDSTT AS bldstt, " +
"eng.BLDSTT_CODE AS bldsttCcode, " + "eng.BLDSTT_CODE AS bldsttCcode, " +
"CASE WHEN eng.BLDSTT_CODE =2 THEN '已建' WHEN eng.BLDSTT_CODE =1 THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName, " +
"eng.DTIN_ENV AS dtinEnv, " + "eng.DTIN_ENV AS dtinEnv, " +
"eng.DTIN AS dtin, " + "eng.DTIN AS dtin, " +
"NVL(hb.ORDER_INDEX, 999999) AS baseStepSort, " + "NVL(hb.ORDER_INDEX, 999999) AS baseStepSort, " +
"NVL(along.ORDER_INDEX, 999999) AS rvcdStepSort, " + "NVL(along.ORDER_INDEX, 999999) AS rvcdStepSort, " +
"NVL(eng.ORDER_INDEX, 999999) AS rstcdStepSort, " + "NVL(c.SORT, 999999) AS rstcdStepSort, " +
"NVL(eng.ORDER_INDEX, 999999) AS siteStepSort " + "NVL(d.SORT, 999999) AS siteStepSort " +
"FROM SD_ENGINFO_B_H eng " + "FROM SD_ENGINFO_B_H eng " +
"INNER JOIN SD_PWR_B_H pbh ON pbh.STCD= eng.STCD " + "INNER JOIN SD_PWR_B_H pbh ON pbh.STCD= eng.STCD " +
"LEFT JOIN SD_RSVRFCCH_B_H rbh ON rbh.STCD= eng.STCD " +
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " + "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 " + "LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID " +
"LEFT JOIN SD_ADDVCD_DIC ad ON ad.ADDVCD = eng.ADDVCD" +
" AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " + " 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_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN (select c.SORT,d.BASEID,d.RVCD,c.STCD from MS_ALONGDET_B c inner join MS_ALONG_B d on c.ALONG_ID=d.ID where c.IS_DELETED=0 and d.IS_DELETED=0 and d.CODE='common') c on c.BASEID=eng.BASE_ID and c.stcd=eng.STCD \n" +
"LEFT JOIN (select c.SORT,d.BASEID,d.RVCD,c.STCD from MS_ALONGDET_B c inner join MS_ALONG_B d on c.ALONG_ID=d.ID where c.IS_DELETED=0 and d.IS_DELETED=0 and d.CODE='common') d on d.BASEID=eng.BASE_ID and d.stcd=eng.STCD "+
"WHERE NVL(eng.IS_DELETED, 0) = 0"; "WHERE NVL(eng.IS_DELETED, 0) = 0";
} }
@ -3424,7 +3437,11 @@ public class EngEqDataServiceImpl implements EngEqDataService {
columns.put("sttpName", "t.sttpName AS sttpName"); columns.put("sttpName", "t.sttpName AS sttpName");
columns.put("stcd", "t.stcd AS stcd"); columns.put("stcd", "t.stcd AS stcd");
columns.put("stnm", "t.stnm AS stnm"); columns.put("stnm", "t.stnm AS stnm");
columns.put("yrge", "t.yrge AS yrge");
columns.put("piodt", "t.piodt AS piodt");
columns.put("aiodt", "t.aiodt AS aiodt");
columns.put("ennm", "t.ennm AS ennm"); columns.put("ennm", "t.ennm AS ennm");
columns.put("ttcp", "t.ttcp AS ttcp");
columns.put("baseId", "t.baseId AS baseId"); columns.put("baseId", "t.baseId AS baseId");
columns.put("baseName", "t.baseName AS baseName"); columns.put("baseName", "t.baseName AS baseName");
columns.put("hbrvcd", "t.hbrvcd AS hbrvcd"); columns.put("hbrvcd", "t.hbrvcd AS hbrvcd");
@ -3432,8 +3449,14 @@ public class EngEqDataServiceImpl implements EngEqDataService {
columns.put("rvcd", "t.rvcd AS rvcd"); columns.put("rvcd", "t.rvcd AS rvcd");
columns.put("rvcdName", "t.rvcdName AS rvcdName"); columns.put("rvcdName", "t.rvcdName AS rvcdName");
columns.put("prsc", "t.prsc AS prsc"); columns.put("prsc", "t.prsc AS prsc");
columns.put("dvtp", "t.dvtp AS dvtp");
columns.put("dvtpName", "t.dvtpName AS dvtpName");
columns.put("addvcd", "t.addvcd AS addvcd");
columns.put("addvcdName", "t.addvcdName AS addvcdName");
columns.put("bldstt", "t.bldstt AS bldstt"); columns.put("bldstt", "t.bldstt AS bldstt");
columns.put("ttpwr", "t.ttpwr AS ttpwr");
columns.put("bldsttCcode", "t.bldsttCcode AS bldsttCcode"); columns.put("bldsttCcode", "t.bldsttCcode AS bldsttCcode");
columns.put("bldsttCcodeName", "t.bldsttCcodeName AS bldsttCcodeName");
columns.put("dtin", "t.dtin AS dtin"); columns.put("dtin", "t.dtin AS dtin");
columns.put("runState", "t.runState AS runState"); columns.put("runState", "t.runState AS runState");
columns.put("dtinEnv", "t.dtinEnv AS dtinEnv"); columns.put("dtinEnv", "t.dtinEnv AS dtinEnv");
@ -3848,20 +3871,20 @@ public class EngEqDataServiceImpl implements EngEqDataService {
" AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " + " 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_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
"LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " + "LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD " + ") rstSort ON rstSort.BASEID = eng.BASE_ID " +
" AND rstSort.STCD = eng.STCD "+ " AND rstSort.STCD = eng.STCD "+
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = eng.STCD " + ") siteSort ON siteSort.BASEID = eng.BASE_ID AND siteSort.STCD = eng.STCD " +
"INNER JOIN SD_QEC_R sqr ON sqr.STCD = eng.STCD " + "INNER JOIN SD_QEC_R sqr ON sqr.STCD = eng.STCD " +
"LEFT JOIN SD_HYDROPW_R shr ON shr.STCD = sqr.STCD AND shr.TM = sqr.TM AND NVL(shr.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_HYDROPW_R shr ON shr.STCD = sqr.STCD AND shr.TM = sqr.TM AND NVL(shr.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_QEC_R bsqr ON bsqr.STCD = sqr.STCD AND ADD_MONTHS(bsqr.TM, 12) = sqr.TM AND NVL(bsqr.IS_DELETED, 0) = 0 "; "LEFT JOIN SD_QEC_R bsqr ON bsqr.STCD = sqr.STCD AND ADD_MONTHS(bsqr.TM, 12) = sqr.TM AND NVL(bsqr.IS_DELETED, 0) = 0 ";
@ -3913,19 +3936,19 @@ public class EngEqDataServiceImpl implements EngEqDataService {
" AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " + " 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_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
"LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " + "LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = eng.STCD " + ") rstSort ON rstSort.BASEID = eng.BASE_ID AND rstSort.STCD = eng.STCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = eng.STCD " + ") siteSort ON siteSort.BASEID = eng.BASE_ID AND siteSort.STCD = eng.STCD " +
"LEFT JOIN (" + buildDayRunDaySql() + ") runDay ON runDay.STCD = day.STCD AND runDay.DT = day.DT " + "LEFT JOIN (" + buildDayRunDaySql() + ") runDay ON runDay.STCD = day.STCD AND runDay.DT = day.DT " +
"LEFT JOIN SD_QECDAY_S beforeDay ON beforeDay.STCD = day.STCD " + "LEFT JOIN SD_QECDAY_S beforeDay ON beforeDay.STCD = day.STCD " +
" AND ADD_MONTHS(beforeDay.DT, 12) = day.DT AND NVL(beforeDay.IS_DELETED, 0) = 0 " + " AND ADD_MONTHS(beforeDay.DT, 12) = day.DT AND NVL(beforeDay.IS_DELETED, 0) = 0 " +
@ -3979,19 +4002,19 @@ public class EngEqDataServiceImpl implements EngEqDataService {
" AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " + " 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_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
"LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " + "LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = eng.STCD " + ") rstSort ON rstSort.BASEID = eng.BASE_ID AND rstSort.STCD = eng.STCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = eng.STCD " + ") siteSort ON siteSort.BASEID = eng.BASE_ID AND siteSort.STCD = eng.STCD " +
"LEFT JOIN SD_HYDROPWDRTP_S runDrtp ON drtp.STCD = runDrtp.STCD " + "LEFT JOIN SD_HYDROPWDRTP_S runDrtp ON drtp.STCD = runDrtp.STCD " +
" AND drtp.DRTP = runDrtp.DRTP " + " AND drtp.DRTP = runDrtp.DRTP " +
" AND NVL(drtp.DR, -1) = NVL(runDrtp.DR, -1) " + " AND NVL(drtp.DR, -1) = NVL(runDrtp.DR, -1) " +
@ -5926,19 +5949,19 @@ public class EngEqDataServiceImpl implements EngEqDataService {
.append("FROM SD_EQ_B_H a ") .append("FROM SD_EQ_B_H a ")
.append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = a.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = a.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ") .append("LEFT JOIN MS_ALONG_B along ON along.BASEID = a.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT det.SORT, cfg.RVCD, det.STCD ") .append(" SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ") .append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ")
.append(") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = a.RSTCD ") .append(") rstSort ON rstSort.BASEID = a.BASE_ID AND rstSort.STCD = a.RSTCD ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT det.SORT, cfg.RVCD, det.STCD ") .append(" SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ") .append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ")
.append(") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = a.STCD ") .append(") siteSort ON siteSort.BASEID = a.BASE_ID AND siteSort.STCD = a.STCD ")
.append("WHERE NVL(a.IS_DELETED, 0) = 0 ") .append("WHERE NVL(a.IS_DELETED, 0) = 0 ")
// .append("AND NVL(a.USFL, 1) = 1 ") // .append("AND NVL(a.USFL, 1) = 1 ")
.append("AND a.LGTD IS NOT NULL ") .append("AND a.LGTD IS NOT NULL ")

View File

@ -190,19 +190,19 @@ public class EngRiverServiceImpl implements EngRiverService {
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID " + "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 " + " 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_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = rb.RSTCD " + ") rstSort ON rstSort.BASEID = eng.BASE_ID AND rstSort.STCD = rb.RSTCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = rb.STCD " + ") siteSort ON siteSort.BASEID = eng.BASE_ID AND siteSort.STCD = rb.STCD " +
"LEFT JOIN SD_VDINFO_B vdb ON vdb.CSTCD = rr.STCD AND NVL(vdb.USFL, 1) = 1 " + "LEFT JOIN SD_VDINFO_B vdb ON vdb.CSTCD = rr.STCD AND NVL(vdb.USFL, 1) = 1 " +
"LEFT JOIN SD_VDINFO_R vdr ON vdr.STCD = vdb.STCD AND vdr.TM = rr.TM AND NVL(vdr.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_VDINFO_R vdr ON vdr.STCD = vdb.STCD AND vdr.TM = rr.TM AND NVL(vdr.IS_DELETED, 0) = 0 " +
"WHERE NVL(rr.IS_DELETED, 0) = 0 " + "WHERE NVL(rr.IS_DELETED, 0) = 0 " +

View File

@ -4599,7 +4599,7 @@ public class FbStationServiceImpl implements FbStationService {
String rstcd = QgcQueryWrapperUtil.getFilterFieldValue(devRequest, "rstcd"); String rstcd = QgcQueryWrapperUtil.getFilterFieldValue(devRequest, "rstcd");
String sttp = QgcQueryWrapperUtil.getFilterFieldValue(devRequest, "sttp"); String sttp = QgcQueryWrapperUtil.getFilterFieldValue(devRequest, "sttp");
if(StrUtil.isBlank(sttp)){ if(StrUtil.isBlank(sttp)){
sttp= QgcQueryWrapperUtil.getFilterFieldValue(devRequest, "sttpCode"); sttp= Objects.requireNonNull(QgcQueryWrapperUtil.getFilterFieldValue(devRequest, "sttpCode")).toLowerCase();
} }
String bldsttCcode = QgcQueryWrapperUtil.getFilterFieldValue(devRequest, "bldsttCcode"); String bldsttCcode = QgcQueryWrapperUtil.getFilterFieldValue(devRequest, "bldsttCcode");
@ -4638,19 +4638,19 @@ public class FbStationServiceImpl implements FbStationService {
.append("FROM SD_FBRD_B_H a ") .append("FROM SD_FBRD_B_H a ")
.append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = a.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = a.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = a.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = a.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ") .append("LEFT JOIN MS_ALONG_B along ON along.RVCD = a.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT det.SORT, cfg.RVCD, det.STCD ") .append(" SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ") .append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ")
.append(") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = a.RSTCD ") .append(") rstSort ON rstSort.BASEID = a.BASE_ID AND rstSort.STCD = a.RSTCD ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT det.SORT, cfg.RVCD, det.STCD ") .append(" SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ") .append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ")
.append(") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = a.STCD ") .append(") siteSort ON siteSort.BASEID = a.BASE_ID AND siteSort.STCD = a.STCD ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT t.RSTCD AS stcd, COUNT(1) AS lcjStatus ") .append(" SELECT t.RSTCD AS stcd, COUNT(1) AS lcjStatus ")
.append(" FROM SD_ENGFR_R t ") .append(" FROM SD_ENGFR_R t ")

View File

@ -458,15 +458,15 @@ public class FhHabitatServiceImpl implements FhHabitatService {
"FROM SD_FHBT_B_H fh " + "FROM SD_FHBT_B_H fh " +
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = fh.RSTCD " + "LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = fh.RSTCD " +
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = NVL(fh.BASE_ID, eng.BASE_ID) " + "LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = NVL(fh.BASE_ID, eng.BASE_ID) " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = NVL(fh.HBRVCD, eng.HBRVCD) AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = fh.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, a.RVCD, det.STCD " + " SELECT det.SORT,a.BASEID, a.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B a ON a.ID = det.ALONG_ID " + " INNER JOIN MS_ALONG_B a ON a.ID = det.ALONG_ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 " + " WHERE NVL(det.IS_DELETED, 0) = 0 " +
" AND NVL(a.IS_DELETED, 0) = 0 " + " AND NVL(a.IS_DELETED, 0) = 0 " +
" AND a.CODE = 'common' " + " AND a.CODE = 'common' " +
") rstAlong ON rstAlong.RVCD = NVL(fh.HBRVCD, eng.HBRVCD) AND rstAlong.STCD = fh.RSTCD " + ") rstAlong ON rstAlong.BASEID = fh.BASE_ID AND rstAlong.STCD = fh.RSTCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT DISTINCT FHSTCD " + " SELECT DISTINCT FHSTCD " +
" FROM ( " + " FROM ( " +
@ -594,17 +594,17 @@ public class FhHabitatServiceImpl implements FhHabitatService {
" FROM SD_FHBT_B_H fh " + " FROM SD_FHBT_B_H fh " +
" LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = fh.RSTCD " + " LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = fh.RSTCD " +
" LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = NVL(fh.BASE_ID, eng.BASE_ID) " + " LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = NVL(fh.BASE_ID, eng.BASE_ID) " +
" LEFT JOIN MS_ALONG_B along ON along.RVCD = NVL(fh.HBRVCD, eng.HBRVCD) " + " LEFT JOIN MS_ALONG_B along ON along.BASEID =fh.BASE_ID " +
" AND along.CODE = 'common' " + " AND along.CODE = 'common' " +
" AND NVL(along.IS_DELETED, 0) = 0 " + " AND NVL(along.IS_DELETED, 0) = 0 " +
" LEFT JOIN ( " + " LEFT JOIN ( " +
" SELECT det.SORT, a.RVCD, det.STCD " + " SELECT det.SORT,a.BASEID, a.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B a ON a.ID = det.ALONG_ID " + " INNER JOIN MS_ALONG_B a ON a.ID = det.ALONG_ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 " + " WHERE NVL(det.IS_DELETED, 0) = 0 " +
" AND NVL(a.IS_DELETED, 0) = 0 " + " AND NVL(a.IS_DELETED, 0) = 0 " +
" AND a.CODE = 'common' " + " AND a.CODE = 'common' " +
" ) rstAlong ON rstAlong.RVCD = NVL(fh.HBRVCD, eng.HBRVCD) AND rstAlong.STCD = fh.RSTCD " + " ) rstAlong ON rstAlong.BASEID = fh.BASE_ID AND rstAlong.STCD = fh.RSTCD " +
" WHERE NVL(fh.IS_DELETED, 0) = 0 " + " WHERE NVL(fh.IS_DELETED, 0) = 0 " +
// " AND NVL(fh.BASE_ID, 'other') <> 'other' " + // " AND NVL(fh.BASE_ID, 'other') <> 'other' " +
// " AND NOT EXISTS ( " + // " AND NOT EXISTS ( " +
@ -618,13 +618,13 @@ public class FhHabitatServiceImpl implements FhHabitatService {
" AND along.CODE = 'common' " + " AND along.CODE = 'common' " +
" AND NVL(along.IS_DELETED, 0) = 0 " + " AND NVL(along.IS_DELETED, 0) = 0 " +
" LEFT JOIN ( " + " LEFT JOIN ( " +
" SELECT det.SORT, a.RVCD, det.STCD " + " SELECT det.SORT,a.BASEID, a.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B a ON a.ID = det.ALONG_ID " + " INNER JOIN MS_ALONG_B a ON a.ID = det.ALONG_ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 " + " WHERE NVL(det.IS_DELETED, 0) = 0 " +
" AND NVL(a.IS_DELETED, 0) = 0 " + " AND NVL(a.IS_DELETED, 0) = 0 " +
" AND a.CODE = 'common' " + " AND a.CODE = 'common' " +
" ) rstAlong ON rstAlong.RVCD = eng.HBRVCD AND rstAlong.STCD = childBase.RSTCD "; " ) rstAlong ON rstAlong.BASEID = eng.BASE_ID AND rstAlong.STCD = childBase.RSTCD ";
return "SELECT childBase.STCD, " + return "SELECT childBase.STCD, " +
" childBase.STNM, " + " childBase.STNM, " +
" childBase.FHSTCD, " + " childBase.FHSTCD, " +

View File

@ -255,11 +255,11 @@ public class FpBuildServiceImpl implements FpBuildService {
"eng.BASE_ID AS baseId, " + "eng.BASE_ID AS baseId, " +
"fp.STTP AS sttp, " + "fp.STTP AS sttp, " +
"CASE " + "CASE " +
"WHEN fp.STTP = 'FP_1' THEN 'GY_1' " + "WHEN fp.STTP = 'FP_1' THEN 'gy_1' " +
"WHEN fp.STTP = 'FP_2' THEN 'GY_2' " + "WHEN fp.STTP = 'FP_2' THEN 'gy_2' " +
"WHEN fp.STTP = 'FP_3' THEN 'GY_3' " + "WHEN fp.STTP = 'FP_3' THEN 'gy_3' " +
"WHEN fp.STTP = 'FP_4' THEN 'GY_4' " + "WHEN fp.STTP = 'FP_4' THEN 'gy_4' " +
"ELSE 'GY_5' END AS anchoPointState, " + "ELSE 'gy_5' END AS anchoPointState, " +
"fp.MWAY AS mway, " + "fp.MWAY AS mway, " +
"fp.DTIN AS dtin, " + "fp.DTIN AS dtin, " +
"state.STD_SSTATE AS stdSstate, " + "state.STD_SSTATE AS stdSstate, " +
@ -1304,15 +1304,15 @@ public class FpBuildServiceImpl implements FpBuildService {
for (FpAnchoPointVo vo : resultList) { for (FpAnchoPointVo vo : resultList) {
String sttp = vo.getSttp(); String sttp = vo.getSttp();
if ("FP_1".equals(sttp)) { if ("FP_1".equals(sttp)) {
vo.setAnchoPointState("GY_1_BUILT"); vo.setAnchoPointState("gy_1_built");
} else if ("FP_2".equals(sttp)) { } else if ("FP_2".equals(sttp)) {
vo.setAnchoPointState("GY_2_BUILT"); vo.setAnchoPointState("gy_2_built");
} else if ("FP_3".equals(sttp)) { } else if ("FP_3".equals(sttp)) {
vo.setAnchoPointState("GY_3_BUILT"); vo.setAnchoPointState("gy_3_built");
} else if ("FP_4".equals(sttp)) { } else if ("FP_4".equals(sttp)) {
vo.setAnchoPointState("GY_4_BUILT"); vo.setAnchoPointState("gy_4_built");
} else { } else {
vo.setAnchoPointState("GY_5_BUILT"); vo.setAnchoPointState("gy_5_built");
} }
} }

View File

@ -173,7 +173,7 @@ public class FprMonitorServiceImpl implements FprMonitorService {
.append("hb.BASENAME AS baseName, ") .append("hb.BASENAME AS baseName, ")
.append("aim.STTP AS sttp, ") .append("aim.STTP AS sttp, ")
.append("sttp.STTP_NAME AS sttpName, ") .append("sttp.STTP_NAME AS sttpName, ")
.append("'' AS anchoPointState, ") .append("'fprd' AS anchoPointState, ")
.append("aim.MWAY AS mway, ") .append("aim.MWAY AS mway, ")
.append("aim.DTIN AS dtin, ") .append("aim.DTIN AS dtin, ")
// .append("aim.STDSSTATE AS stdSstate, ") // .append("aim.STDSSTATE AS stdSstate, ")
@ -446,25 +446,25 @@ public class FprMonitorServiceImpl implements FprMonitorService {
"LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = src.STTP " + "LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = src.STTP " +
" AND NVL(sttp.IS_DELETED, 0) = 0 " + " AND NVL(sttp.IS_DELETED, 0) = 0 " +
" AND NVL(sttp.ENABLE, 1) = 1 " + " AND NVL(sttp.ENABLE, 1) = 1 " +
"LEFT JOIN MS_ALONG_B alongBase ON alongBase.RVCD = src.HBRVCD " + "LEFT JOIN MS_ALONG_B alongBase ON alongBase.BASEID = src.BASE_ID " +
" AND alongBase.CODE = 'common' " + " AND alongBase.CODE = 'common' " +
" AND NVL(alongBase.IS_DELETED, 0) = 0 " + " AND NVL(alongBase.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.STCD, det.SORT, along.RVCD " + " SELECT det.STCD, det.SORT,along.BASEID, along.RVCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " + " INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 " + " WHERE NVL(det.IS_DELETED, 0) = 0 " +
" AND NVL(along.IS_DELETED, 0) = 0 " + " AND NVL(along.IS_DELETED, 0) = 0 " +
" AND along.CODE = 'common' " + " AND along.CODE = 'common' " +
") engSort ON engSort.RVCD = src.HBRVCD AND engSort.STCD = src.RSTCD " + ") engSort ON engSort.BASEID = src.BASE_ID AND engSort.STCD = src.RSTCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.STCD, det.SORT, along.RVCD " + " SELECT det.STCD, det.SORT,along.BASEID, along.RVCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " + " INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 " + " WHERE NVL(det.IS_DELETED, 0) = 0 " +
" AND NVL(along.IS_DELETED, 0) = 0 " + " AND NVL(along.IS_DELETED, 0) = 0 " +
" AND along.CODE = 'common' " + " AND along.CODE = 'common' " +
") siteSort ON siteSort.RVCD = src.HBRVCD AND siteSort.STCD = src.STCD " + ") siteSort ON siteSort.BASEID = src.BASE_ID AND siteSort.STCD = src.STCD " +
"WHERE NVL(src.IS_DELETED, 0) = 0 "; "WHERE NVL(src.IS_DELETED, 0) = 0 ";
} }

View File

@ -32,4 +32,10 @@ public class OverviewController {
public ResponseResult getOpedList(@RequestBody DataSourceRequest dataSourceRequest) { public ResponseResult getOpedList(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(overviewService.getOpedList(dataSourceRequest)); return ResponseResult.successData(overviewService.getOpedList(dataSourceRequest));
} }
@PostMapping("/vmsstbprpt/GetKendoList")
@Operation(summary = "沿程对象视图(V_MS_STBPRP_T)条件过滤数据列表")
public ResponseResult getVmsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(overviewService.getVmsstbprptList(dataSourceRequest));
}
} }

View File

@ -0,0 +1,70 @@
package com.yfd.platform.qgc_env.overview.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@Schema(description = "沿程对象视图(V_MS_STBPRP_T)查询结果")
public class OverviewVmsstbprptVo implements Serializable {
private static final long serialVersionUID = 1L;
private String stcd;
private String stnm;
private String ennm;
private String sttp;
private String sttpCode;
private String sttpName;
private String sttpFullPath;
private Integer sttpTreeLevel;
private String rstcd;
private String baseId;
private String baseName;
private String hbrvcd;
private String hbrvcdName;
private String rvcd;
private String rvcdName;
private String addvcd;
private String addvnm;
private String hycd;
private String hynm;
private String topHycd;
private String topHynm;
private BigDecimal lgtd;
private BigDecimal lttd;
private String stlc;
private Integer usfl;
private Integer dtin;
private Date dtinTm;
private Integer bldsttCode;
private String introduce;
private String logo;
private String inffile;
private BigDecimal inv;
private Integer invinmn;
private Date stdsdt;
private Date pststdt;
private Date pesstdt;
private Date swdt;
private Date jcdt;
private Date wddt;
private Integer orderIndex;
private String remark;
private String vlsr;
private String stindx;
private String coenvwState;
private String dvtpName;
private Date vlsrTm;
private String recordUser;
private Date recordTime;
private String modifyUser;
private Date modifyTime;
private Integer isDeleted;
private String deleteUser;
private Date deleteTime;
private String dataSource;
}

View File

@ -4,10 +4,13 @@ import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.DataSourceResult; import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.qgc_env.overview.entity.vo.OverviewMsstbprptVo; import com.yfd.platform.qgc_env.overview.entity.vo.OverviewMsstbprptVo;
import com.yfd.platform.qgc_env.overview.entity.vo.OverviewOpedVo; import com.yfd.platform.qgc_env.overview.entity.vo.OverviewOpedVo;
import com.yfd.platform.qgc_env.overview.entity.vo.OverviewVmsstbprptVo;
public interface OverviewService { public interface OverviewService {
DataSourceResult<OverviewMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest); DataSourceResult<OverviewMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest);
DataSourceResult<OverviewOpedVo> getOpedList(DataSourceRequest dataSourceRequest); DataSourceResult<OverviewOpedVo> getOpedList(DataSourceRequest dataSourceRequest);
DataSourceResult<OverviewVmsstbprptVo> getVmsstbprptList(DataSourceRequest dataSourceRequest);
} }

View File

@ -9,8 +9,11 @@ import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.common.GroupHelper; import com.yfd.platform.common.GroupHelper;
import com.yfd.platform.common.GroupingInfo; import com.yfd.platform.common.GroupingInfo;
import com.yfd.platform.common.MicroservicDynamicSQLMapper; import com.yfd.platform.common.MicroservicDynamicSQLMapper;
import com.yfd.platform.qgc_base.domain.vo.DataScopeApplyResult;
import com.yfd.platform.qgc_base.service.IDataScopeFilterService;
import com.yfd.platform.qgc_env.overview.entity.vo.OverviewMsstbprptVo; import com.yfd.platform.qgc_env.overview.entity.vo.OverviewMsstbprptVo;
import com.yfd.platform.qgc_env.overview.entity.vo.OverviewOpedVo; import com.yfd.platform.qgc_env.overview.entity.vo.OverviewOpedVo;
import com.yfd.platform.qgc_env.overview.entity.vo.OverviewVmsstbprptVo;
import com.yfd.platform.qgc_env.overview.service.OverviewService; import com.yfd.platform.qgc_env.overview.service.OverviewService;
import com.yfd.platform.utils.QgcQueryWrapperUtil; import com.yfd.platform.utils.QgcQueryWrapperUtil;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -31,6 +34,9 @@ public class OverviewServiceImpl implements OverviewService {
@Resource @Resource
private MicroservicDynamicSQLMapper microservicDynamicSQLMapper; private MicroservicDynamicSQLMapper microservicDynamicSQLMapper;
@Resource
private IDataScopeFilterService dataScopeFilterService;
@Override @Override
public DataSourceResult<OverviewMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest) { public DataSourceResult<OverviewMsstbprptVo> getMsstbprptList(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
@ -109,6 +115,47 @@ public class OverviewServiceImpl implements OverviewService {
return result; return result;
} }
@Override
public DataSourceResult<OverviewVmsstbprptVo> getVmsstbprptList(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
List<String> selectFields = resolveVmsstbprptSelectFields(dataSourceRequest == null ? null : dataSourceRequest.getSelect());
// "CASE eng.DVTP WHEN '1' THEN '堤坝式' WHEN '2' THEN '引水式' WHEN '3' THEN '混合式' ELSE '未知' END AS dvtpName,"+
StringBuilder sql = new StringBuilder();
sql.append("SELECT ")
.append(buildVmsstbprptSelectSql(selectFields))
.append(" FROM V_MS_STBPRP_T t WHERE 1 = 1 ");
Map<String, Object> paramMap = new HashMap<>();
String filterSql = buildVmsstbprptFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), paramMap, new int[]{0});
if (StrUtil.isNotBlank(filterSql)) {
sql.append(" AND ").append(filterSql);
}
// 数据权限过滤基于当前用户有权限的电站编码过滤
// DataScopeApplyResult scopeResult = dataScopeFilterService.appendCurrentUserStationScope(sql, paramMap, "t.STCD");
// if (scopeResult.isEmptyResult()) {
// DataSourceResult<OverviewVmsstbprptVo> result = new DataSourceResult<>();
// result.setData(new ArrayList<>());
// result.setTotal(0L);
// result.setAggregates(new HashMap<>());
// return result;
// }
sql.append(buildVmsstbprptOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
Page<?> page = loadOptions == null ? null
: QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<OverviewVmsstbprptVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(
page, sql.toString(), paramMap, OverviewVmsstbprptVo.class
);
DataSourceResult<OverviewVmsstbprptVo> result = new DataSourceResult<>();
result.setData(list);
result.setTotal(page == null ? list.size() : page.getTotal());
result.setAggregates(new HashMap<>());
return result;
}
private DataSourceResult<OverviewOpedVo> queryOpedSummaryList(DataSourceRequest dataSourceRequest, private DataSourceResult<OverviewOpedVo> queryOpedSummaryList(DataSourceRequest dataSourceRequest,
DataSourceLoadOptionsBase loadOptions, DataSourceLoadOptionsBase loadOptions,
Map<String, Object> paramMap) { Map<String, Object> paramMap) {
@ -1340,4 +1387,290 @@ public class OverviewServiceImpl implements OverviewService {
} }
values.add(value); values.add(value);
} }
// ======================== V_MS_STBPRP_T helper methods ========================
private List<String> resolveVmsstbprptSelectFields(List<String> select) {
List<String> fields = CollUtil.isEmpty(select)
? new ArrayList<>(buildVmsstbprptSelectMap().keySet())
: new ArrayList<>(select);
LinkedHashSet<String> uniqueFields = new LinkedHashSet<>();
for (String field : fields) {
if (StrUtil.isNotBlank(field)) {
uniqueFields.add(field.trim());
}
}
if (uniqueFields.isEmpty()) {
uniqueFields.add("stcd");
}
return new ArrayList<>(uniqueFields);
}
private String buildVmsstbprptSelectSql(List<String> selectFields) {
Map<String, String> columnMap = buildVmsstbprptSelectMap();
List<String> selectParts = new ArrayList<>();
for (String field : selectFields) {
String column = columnMap.get(field);
if (StrUtil.isNotBlank(column)) {
selectParts.add(column);
if(field.equals("sttpCode")){
selectParts.add("t.STTP_NAME sttpName");
}
} else {
selectParts.add("NULL AS \"" + field + "\"");
}
}
if (selectParts.isEmpty()) {
selectParts.add("t.STCD AS \"stcd\"");
}
return String.join(", ", selectParts);
}
private Map<String, String> buildVmsstbprptSelectMap() {
Map<String, String> columnMap = new LinkedHashMap<>();
columnMap.put("stcd", "t.STCD AS \"stcd\"");
columnMap.put("stnm", "t.STNM AS \"stnm\"");
columnMap.put("ennm", "t.ENNM AS \"ennm\"");
columnMap.put("sttp", "t.STTP AS \"sttp\"");
columnMap.put("sttpCode", "t.STTP_CODE AS \"sttpCode\"");
columnMap.put("sttpName", "t.STTP_NAME AS \"sttpName\"");
columnMap.put("sttpFullPath", "t.STTP_FULL_PATH AS \"sttpFullPath\"");
columnMap.put("sttpTreeLevel", "t.STTP_TREE_LEVEL AS \"sttpTreeLevel\"");
columnMap.put("rstcd", "t.RSTCD AS \"rstcd\"");
columnMap.put("baseId", "t.BASE_ID AS \"baseId\"");
columnMap.put("baseName", "t.BASE_NAME AS \"baseName\"");
columnMap.put("hbrvcd", "t.HBRVCD AS \"hbrvcd\"");
columnMap.put("hbrvcdName", "t.HBRVCD_NAME AS \"hbrvcdName\"");
columnMap.put("rvcd", "t.RVCD AS \"rvcd\"");
columnMap.put("rvcdName", "t.RVCD_NAME AS \"rvcdName\"");
columnMap.put("addvcd", "t.ADDVCD AS \"addvcd\"");
columnMap.put("addvnm", "t.ADDVNM AS \"addvnm\"");
columnMap.put("hycd", "t.HYCD AS \"hycd\"");
columnMap.put("hynm", "t.HYNM AS \"hynm\"");
columnMap.put("topHycd", "t.TOP_HYCD AS \"topHycd\"");
columnMap.put("topHynm", "t.TOP_HYNM AS \"topHynm\"");
columnMap.put("lgtd", "t.LGTD AS \"lgtd\"");
columnMap.put("lttd", "t.LTTD AS \"lttd\"");
columnMap.put("stlc", "t.STLC AS \"stlc\"");
columnMap.put("usfl", "t.USFL AS \"usfl\"");
columnMap.put("dtin", "t.DTIN AS \"dtin\"");
columnMap.put("dtinTm", "t.DTIN_TM AS \"dtinTm\"");
columnMap.put("bldsttCode", "t.BLDSTT_CODE AS \"bldsttCode\"");
columnMap.put("introduce", "t.INTRODUCE AS \"introduce\"");
columnMap.put("logo", "t.LOGO AS \"logo\"");
columnMap.put("inffile", "t.INFFILE AS \"inffile\"");
columnMap.put("inv", "t.INV AS \"inv\"");
columnMap.put("invinmn", "t.INVINMN AS \"invinmn\"");
columnMap.put("stdsdt", "t.STDSDT AS \"stdsdt\"");
columnMap.put("pststdt", "t.PSTSTDT AS \"pststdt\"");
columnMap.put("pesstdt", "t.PESSTDT AS \"pesstdt\"");
columnMap.put("swdt", "t.SWDT AS \"swdt\"");
columnMap.put("jcdt", "t.JCDT AS \"jcdt\"");
columnMap.put("wddt", "t.WDDT AS \"wddt\"");
columnMap.put("orderIndex", "t.ORDER_INDEX AS \"orderIndex\"");
columnMap.put("remark", "t.REMARK AS \"remark\"");
columnMap.put("stindx", "t.STINDX AS \"stindx\"");
columnMap.put("coenvwState", "t.COENVW_STATE AS \"coenvwState\"");
columnMap.put("dvtp", "CASE t.DVTP WHEN '1' THEN '堤坝式' WHEN '2' THEN '引水式' WHEN '3' THEN '混合式' ELSE '未知' END AS \"dvtpName\" ");
columnMap.put("vlsr", "t.VLSR AS \"vlsr\"");
columnMap.put("vlsrTm", "t.VLSR_TM AS \"vlsrTm\"");
columnMap.put("recordUser", "t.RECORD_USER AS \"recordUser\"");
columnMap.put("recordTime", "t.RECORD_TIME AS \"recordTime\"");
columnMap.put("modifyUser", "t.MODIFY_USER AS \"modifyUser\"");
columnMap.put("modifyTime", "t.MODIFY_TIME AS \"modifyTime\"");
columnMap.put("isDeleted", "t.IS_DELETED AS \"isDeleted\"");
columnMap.put("deleteUser", "t.DELETE_USER AS \"deleteUser\"");
columnMap.put("deleteTime", "t.DELETE_TIME AS \"deleteTime\"");
columnMap.put("dataSource", "t.DATA_SOURCE AS \"dataSource\"");
return columnMap;
}
private String buildVmsstbprptFilterCondition(DataSourceRequest.FilterDescriptor filter,
Map<String, Object> paramMap,
int[] indexHolder) {
if (filter == null) {
return "";
}
if (StrUtil.isNotBlank(filter.getField())) {
return buildVmsstbprptLeafCondition(filter, paramMap, indexHolder);
}
if (CollUtil.isEmpty(filter.getFilters())) {
return "";
}
List<String> conditions = new ArrayList<>();
for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) {
String childSql = buildVmsstbprptFilterCondition(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 buildVmsstbprptLeafCondition(DataSourceRequest.FilterDescriptor filter,
Map<String, Object> paramMap,
int[] indexHolder) {
String field = filter.getField();
if (StrUtil.isBlank(field)) {
return "";
}
String operator = StrUtil.blankToDefault(filter.getOperator(), "eq").toLowerCase();
String column = mapVmsstbprptColumn(field);
if (StrUtil.isBlank(column)) {
return "";
}
if ("isnull".equals(operator)) {
return column + " IS NULL";
}
if ("isnotnull".equals(operator)) {
return column + " IS NOT NULL";
}
if ("isempty".equals(operator)) {
return "(" + column + " IS NULL OR " + column + " = '')";
}
if ("isnotempty".equals(operator)) {
return "(" + column + " IS NOT NULL AND " + column + " <> '')";
}
if ("in".equals(operator) || "ni".equals(operator)) {
List<Object> values = normalizeValues(filter.getValue());
if (values.isEmpty()) {
return "";
}
List<String> placeholders = new ArrayList<>();
for (Object item : values) {
String key = "vmsp" + indexHolder[0]++;
paramMap.put(key, item);
placeholders.add("#{map." + key + "}");
}
if (placeholders.isEmpty()) {
return "";
}
return column + ("ni".equals(operator) ? " NOT IN (" : " IN (") + String.join(", ", placeholders) + ")";
}
Object value = filter.getValue();
if (value == null) {
return "";
}
String key = "vmsp" + indexHolder[0]++;
paramMap.put(key, value);
return switch (operator) {
case "eq" -> column + " = #{map." + key + "}";
case "neq" -> column + " <> #{map." + key + "}";
case "contains" -> {
paramMap.put(key, "%" + value + "%");
yield column + " LIKE #{map." + key + "}";
}
case "doesnotcontain" -> {
paramMap.put(key, "%" + value + "%");
yield column + " NOT LIKE #{map." + key + "}";
}
case "startswith" -> {
paramMap.put(key, value + "%");
yield column + " LIKE #{map." + key + "}";
}
case "endswith" -> {
paramMap.put(key, "%" + value);
yield column + " LIKE #{map." + key + "}";
}
case "gt" -> column + " > #{map." + key + "}";
case "gte" -> column + " >= #{map." + key + "}";
case "lt" -> column + " < #{map." + key + "}";
case "lte" -> column + " <= #{map." + key + "}";
default -> "";
};
}
private String mapVmsstbprptColumn(String field) {
if (StrUtil.isBlank(field)) {
return null;
}
return switch (field) {
case "stcd" -> "t.STCD";
case "stnm" -> "t.STNM";
case "ennm" -> "t.ENNM";
case "sttp" -> "t.STTP";
case "sttpCode" -> "t.STTP_CODE";
case "sttpName" -> "t.STTP_NAME";
case "sttpFullPath" -> "t.STTP_FULL_PATH";
case "sttpTreeLevel" -> "t.STTP_TREE_LEVEL";
case "rstcd" -> "t.RSTCD";
case "baseId" -> "t.BASE_ID";
case "baseName" -> "t.BASE_NAME";
case "hbrvcd" -> "t.HBRVCD";
case "hbrvcdName" -> "t.HBRVCD_NAME";
case "rvcd" -> "t.RVCD";
case "rvcdName" -> "t.RVCD_NAME";
case "addvcd" -> "t.ADDVCD";
case "addvnm" -> "t.ADDVNM";
case "hycd" -> "t.HYCD";
case "hynm" -> "t.HYNM";
case "topHycd" -> "t.TOP_HYCD";
case "topHynm" -> "t.TOP_HYNM";
case "lgtd" -> "t.LGTD";
case "lttd" -> "t.LTTD";
case "stlc" -> "t.STLC";
case "usfl" -> "t.USFL";
case "dtin" -> "t.DTIN";
case "DTIN" -> "t.DTIN";
case "dtinType" -> "t.DTIN_TYPE";
case "mway" -> "t.MWAY";
case "dtinTm" -> "t.DTIN_TM";
case "bldsttCcode" -> "t.BLDSTT_CODE";
case "introduce" -> "t.INTRODUCE";
case "runState" -> "t.RUN_STATE";
case "logo" -> "t.LOGO";
case "inffile" -> "t.INFFILE";
case "inv" -> "t.INV";
case "invinmn" -> "t.INVINMN";
case "stdsdt" -> "t.STDSDT";
case "pststdt" -> "t.PSTSTDT";
case "pesstdt" -> "t.PESSTDT";
case "swdt" -> "t.SWDT";
case "jcdt" -> "t.JCDT";
case "baseStepSort" -> "t.BASESTEPSORT";
case "rvcdStepSort" -> "t.RVCDSTEPSORT";
case "rstcdStepSort" -> "t.RSTCDSTEPSORT";
case "siteStepSort" -> "t.SITESTEPSORT";
case "wddt" -> "t.WDDT";
case "orderIndex" -> "t.ORDER_INDEX";
case "remark" -> "t.REMARK";
case "vlsr" -> "t.VLSR";
case "vlsrTm" -> "t.VLSR_TM";
case "recordUser" -> "t.RECORD_USER";
case "recordTime" -> "t.RECORD_TIME";
case "modifyUser" -> "t.MODIFY_USER";
case "modifyTime" -> "t.MODIFY_TIME";
case "isDeleted" -> "t.IS_DELETED";
case "deleteUser" -> "t.DELETE_USER";
case "deleteTime" -> "t.DELETE_TIME";
case "dataSource" -> "t.DATA_SOURCE";
default -> null;
};
}
private String buildVmsstbprptOrderBySql(List<DataSourceRequest.SortDescriptor> sortList) {
if (CollUtil.isEmpty(sortList)) {
return " ORDER BY t.ORDER_INDEX ASC NULLS LAST, t.STNM ASC";
}
List<String> orderItems = new ArrayList<>();
for (DataSourceRequest.SortDescriptor sort : sortList) {
if (sort == null || StrUtil.isBlank(sort.getField())) {
continue;
}
String column = mapVmsstbprptColumn(sort.getField());
if (StrUtil.isBlank(column)) {
continue;
}
String dir = "desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC";
orderItems.add(column + " " + dir + " NULLS LAST");
}
if (orderItems.isEmpty()) {
return " ORDER BY t.ORDER_INDEX ASC NULLS LAST, t.STNM ASC";
}
return " ORDER BY " + String.join(", ", orderItems);
}
} }

View File

@ -1980,15 +1980,24 @@ public class VpConstructionServiceImpl implements VpConstructionService {
List<FhvapBuiltPointVo> resultList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, FhvapBuiltPointVo.class); List<FhvapBuiltPointVo> resultList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, FhvapBuiltPointVo.class);
for (FhvapBuiltPointVo vo : resultList) { for (FhvapBuiltPointVo vo : resultList) {
String sttp = vo.getSttp(); // String sttp = vo.getSttp();
if ("VP".equals(sttp)) { // if ("VP".equals(sttp)) {
vo.setAnchoPointState("GY_1_BUILT"); // vo.setAnchoPointState("gy_1_built");
} else if ("VA".equals(sttp)) { // } else if ("VA".equals(sttp)) {
vo.setAnchoPointState("GY_2_BUILT"); // vo.setAnchoPointState("gy_2_built");
} else if ("FH".equals(sttp)) { // } else if ("FH".equals(sttp)) {
vo.setAnchoPointState("GY_3_BUILT"); // vo.setAnchoPointState("gy_3_built");
} else { // } else {
vo.setAnchoPointState("GY_4_BUILT"); // vo.setAnchoPointState("gy_4_built");
// }
// 设置在建栖息地/珍稀植物园/动物救助站
if ("1".equals(vo.getBldsttCcode())) {
if ("FP".equals(vo.getSttp())) {
vo.setAnchoPointState("VP_built");
}
if ("VA".equals(vo.getSttp())) {
vo.setAnchoPointState("VA_built");
}
} }
} }

View File

@ -9,6 +9,8 @@ import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.common.GroupHelper; import com.yfd.platform.common.GroupHelper;
import com.yfd.platform.common.GroupingInfo; import com.yfd.platform.common.GroupingInfo;
import com.yfd.platform.common.MicroservicDynamicSQLMapper; import com.yfd.platform.common.MicroservicDynamicSQLMapper;
import com.yfd.platform.qgc_base.domain.vo.DataScopeApplyResult;
import com.yfd.platform.qgc_base.service.IDataScopeFilterService;
import com.yfd.platform.qgc_env.vd.entity.vo.VdAiPointVo; import com.yfd.platform.qgc_env.vd.entity.vo.VdAiPointVo;
import com.yfd.platform.qgc_env.vd.entity.vo.VdPointVo; import com.yfd.platform.qgc_env.vd.entity.vo.VdPointVo;
import com.yfd.platform.qgc_env.vd.entity.vo.VdRunDataVo; import com.yfd.platform.qgc_env.vd.entity.vo.VdRunDataVo;
@ -18,6 +20,7 @@ import com.yfd.platform.qgc_env.vd.entity.vo.VdVmsstbprptVo;
import com.yfd.platform.qgc_env.vd.service.VdMonitorService; import com.yfd.platform.qgc_env.vd.service.VdMonitorService;
import com.yfd.platform.utils.QgcQueryWrapperUtil; import com.yfd.platform.utils.QgcQueryWrapperUtil;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
@ -33,6 +36,9 @@ public class VdMonitorServiceImpl implements VdMonitorService {
@Resource @Resource
private MicroservicDynamicSQLMapper microservicDynamicSQLMapper; private MicroservicDynamicSQLMapper microservicDynamicSQLMapper;
@Resource
private IDataScopeFilterService dataScopeFilterService;
@Override @Override
public DataSourceResult<VdVmsstbprptVo> getVmsstbprptList(DataSourceRequest dataSourceRequest) { public DataSourceResult<VdVmsstbprptVo> getVmsstbprptList(DataSourceRequest dataSourceRequest) {
@ -222,6 +228,7 @@ public class VdMonitorServiceImpl implements VdMonitorService {
} }
@Override @Override
@Cacheable(cacheNames = "vdCache#3600", keyGenerator = "cacheKeyByUserGenerator")
public DataSourceResult<?> getVdPointKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<?> getVdPointKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
if (CollUtil.isNotEmpty(dataSourceRequest == null ? null : dataSourceRequest.getGroup())) { if (CollUtil.isNotEmpty(dataSourceRequest == null ? null : dataSourceRequest.getGroup())) {
@ -525,10 +532,15 @@ public class VdMonitorServiceImpl implements VdMonitorService {
sql.append(" AND ").append(filterSql).append(" "); sql.append(" AND ").append(filterSql).append(" ");
} }
sql.append(buildVdPointOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort())); sql.append(buildVdPointOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
DataSourceResult<VdPointVo> result = new DataSourceResult<>();
DataScopeApplyResult scopeApplyResult = dataScopeFilterService.appendCurrentUserStationScope(sql, paramMap, "t.RSTCD");
if (scopeApplyResult.isEmptyResult()) {
result.setData(new ArrayList<>());
result.setTotal(0L);
return result;
}
List<VdPointVo> list = microservicDynamicSQLMapper.pageAllListWithResultType( List<VdPointVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(
page, sql.toString(), paramMap, VdPointVo.class); page, sql.toString(), paramMap, VdPointVo.class);
DataSourceResult<VdPointVo> result = new DataSourceResult<>();
result.setData(list); result.setData(list);
result.setTotal(page != null ? page.getTotal() : list.size()); result.setTotal(page != null ? page.getTotal() : list.size());
result.setAggregates(new HashMap<>()); result.setAggregates(new HashMap<>());
@ -822,10 +834,10 @@ public class VdMonitorServiceImpl implements VdMonitorService {
" AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " + " AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " +
"LEFT JOIN SD_STTP_B vdSttp ON vdSttp.STTP_CODE = src.STTP " + "LEFT JOIN SD_STTP_B vdSttp ON vdSttp.STTP_CODE = src.STTP " +
" AND NVL(vdSttp.IS_DELETED, 0) = 0 AND NVL(vdSttp.ENABLE, 1) = 1 " + " AND NVL(vdSttp.IS_DELETED, 0) = 0 AND NVL(vdSttp.ENABLE, 1) = 1 " +
"LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det " + "LEFT JOIN (SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det " +
"INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + "INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
"WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') siteSort " + "WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') siteSort " +
"ON siteSort.RVCD = NVL(eng.HBRVCD, src.HBRVCD) AND siteSort.STCD = src.STCD " + "ON siteSort.BASEID = src.BASE_ID AND siteSort.STCD = src.STCD " +
"WHERE src.STTP LIKE 'VD%' " + "WHERE src.STTP LIKE 'VD%' " +
"AND src.AI_EXT_CODE IS NOT NULL " + "AND src.AI_EXT_CODE IS NOT NULL " +
"AND src.LGTD IS NOT NULL " + "AND src.LGTD IS NOT NULL " +

View File

@ -1,5 +1,6 @@
package com.yfd.platform.qgc_env.warn.service.impl; package com.yfd.platform.qgc_env.warn.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@ -28,10 +29,13 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
@Service @Service
public class WarnDataServiceImpl implements WarnDataService { public class WarnDataServiceImpl implements WarnDataService {
@ -264,6 +268,7 @@ public class WarnDataServiceImpl implements WarnDataService {
@Cacheable(cacheNames = "warn#3600", keyGenerator = "cacheKeyGenerator") @Cacheable(cacheNames = "warn#3600", keyGenerator = "cacheKeyGenerator")
public DataSourceResult<AlarmPointVo> getAlarmPointKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<AlarmPointVo> getAlarmPointKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
GroupingInfo[] groupInfos = loadOptions == null ? null : loadOptions.getGroup();
String startTimeText = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "startTime"); String startTimeText = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "startTime");
String endTimeText = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "endTime"); String endTimeText = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "endTime");
@ -295,10 +300,23 @@ public class WarnDataServiceImpl implements WarnDataService {
List<Map<String, Object>> expressionRows = microservicDynamicSQLMapper.getAllList(buildAlarmPointLegendSql(), new HashMap<>()); List<Map<String, Object>> expressionRows = microservicDynamicSQLMapper.getAllList(buildAlarmPointLegendSql(), new HashMap<>());
List<AlarmPointVo> resultList = mergeAlarmPointData(points, qecCountMap, wqCountMap, expressionRows, yyyy); List<AlarmPointVo> resultList = mergeAlarmPointData(points, qecCountMap, wqCountMap, expressionRows, yyyy);
List<AlarmPointVo> filteredList = applyAlarmPointFilter(
resultList,
dataSourceRequest == null ? null : dataSourceRequest.getFilter()
);
applyAlarmPointSort(filteredList, dataSourceRequest == null ? null : dataSourceRequest.getSort());
if (CollUtil.isNotEmpty(dataSourceRequest == null ? null : dataSourceRequest.getGroup())) {
List<Map<String, Object>> rows = buildAlarmPointGroupRows(filteredList);
return QgcQueryWrapperUtil.buildGroupResult(dataSourceRequest, rows);
}
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<AlarmPointVo> pageList = applyAlarmPointPage(filteredList, loadOptions);
DataSourceResult<AlarmPointVo> result = new DataSourceResult<>(); DataSourceResult<AlarmPointVo> result = new DataSourceResult<>();
result.setData(resultList); result.setData(pageList);
result.setTotal(resultList.size()); result.setTotal(page != null ? (long) filteredList.size() : (long) filteredList.size());
result.setAggregates(new HashMap<>()); result.setAggregates(new HashMap<>());
return result; return result;
} }
@ -451,9 +469,9 @@ public class WarnDataServiceImpl implements WarnDataService {
sql.append("INNER JOIN SD_AIMONITOR_B_H b ON a.STCD = b.STCD AND NVL(b.IS_DELETED, 0) = 0 AND b.STTP LIKE 'AI_%' "); sql.append("INNER JOIN SD_AIMONITOR_B_H b ON a.STCD = b.STCD AND NVL(b.IS_DELETED, 0) = 0 AND b.STTP LIKE 'AI_%' ");
sql.append("LEFT JOIN SD_ENGINFO_B_H eng ON b.RSTCD = eng.STCD AND NVL(eng.IS_DELETED, 0) = 0 "); sql.append("LEFT JOIN SD_ENGINFO_B_H eng ON b.RSTCD = eng.STCD AND NVL(eng.IS_DELETED, 0) = 0 ");
sql.append("LEFT JOIN SD_HYDROBASE hb ON b.BASE_ID = hb.BASEID AND NVL(hb.IS_DELETED, 0) = 0 "); sql.append("LEFT JOIN SD_HYDROBASE hb ON b.BASE_ID = hb.BASEID AND NVL(hb.IS_DELETED, 0) = 0 ");
sql.append("LEFT JOIN MS_ALONG_B along ON b.HBRVCD = along.RVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 "); sql.append("LEFT JOIN MS_ALONG_B along ON b.BASEID = along.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ");
sql.append("LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') rstSort ON rstSort.RVCD = b.HBRVCD AND rstSort.STCD = b.RSTCD "); sql.append("LEFT JOIN (SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') rstSort ON rstSort.BASEID = b.BASE_ID AND rstSort.STCD = b.RSTCD ");
sql.append("LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') siteSort ON siteSort.RVCD = b.HBRVCD AND siteSort.STCD = b.STCD "); sql.append("LEFT JOIN (SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') siteSort ON siteSort.BASEID = b.BASE_ID AND siteSort.STCD = b.STCD ");
sql.append("WHERE NVL(a.IS_DELETED, 0) = 0 "); sql.append("WHERE NVL(a.IS_DELETED, 0) = 0 ");
sql.append("AND a.FID NOT LIKE '%ORA-%' AND a.FID NOT LIKE '%Out%' "); sql.append("AND a.FID NOT LIKE '%ORA-%' AND a.FID NOT LIKE '%Out%' ");
@ -522,9 +540,9 @@ public class WarnDataServiceImpl implements WarnDataService {
sql.append("INNER JOIN SD_AIMONITOR_B_H b ON a.STCD = b.STCD AND NVL(b.IS_DELETED, 0) = 0 AND b.STTP LIKE 'AI_%' "); sql.append("INNER JOIN SD_AIMONITOR_B_H b ON a.STCD = b.STCD AND NVL(b.IS_DELETED, 0) = 0 AND b.STTP LIKE 'AI_%' ");
sql.append("LEFT JOIN SD_ENGINFO_B_H eng ON b.RSTCD = eng.STCD AND NVL(eng.IS_DELETED, 0) = 0 "); sql.append("LEFT JOIN SD_ENGINFO_B_H eng ON b.RSTCD = eng.STCD AND NVL(eng.IS_DELETED, 0) = 0 ");
sql.append("LEFT JOIN SD_HYDROBASE hb ON b.BASE_ID = hb.BASEID AND NVL(hb.IS_DELETED, 0) = 0 "); sql.append("LEFT JOIN SD_HYDROBASE hb ON b.BASE_ID = hb.BASEID AND NVL(hb.IS_DELETED, 0) = 0 ");
sql.append("LEFT JOIN MS_ALONG_B along ON b.HBRVCD = along.RVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 "); sql.append("LEFT JOIN MS_ALONG_B along ON b.BASE_ID = along.BASEID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ");
sql.append("LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') rstSort ON rstSort.RVCD = b.HBRVCD AND rstSort.STCD = b.RSTCD "); sql.append("LEFT JOIN (SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') rstSort ON rstSort.BASEID = b.BASE_ID AND rstSort.STCD = b.RSTCD ");
sql.append("LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') siteSort ON siteSort.RVCD = b.HBRVCD AND siteSort.STCD = b.STCD "); sql.append("LEFT JOIN (SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') siteSort ON siteSort.BASEID = b.BASE_ID AND siteSort.STCD = b.STCD ");
sql.append("WHERE a.IS_DELETED = 0 "); sql.append("WHERE a.IS_DELETED = 0 ");
// sql.append("AND (a.TASK_STATUS IS NULL OR a.TASK_STATUS = 'Approved') "); // sql.append("AND (a.TASK_STATUS IS NULL OR a.TASK_STATUS = 'Approved') ");
sql.append("AND a.FID NOT LIKE '%ORA-%' AND a.FID NOT LIKE '%Out%' "); sql.append("AND a.FID NOT LIKE '%ORA-%' AND a.FID NOT LIKE '%Out%' ");
@ -1136,19 +1154,19 @@ public class WarnDataServiceImpl implements WarnDataService {
"NVL(siteSort.SORT, 999999) AS siteStepSort " + "NVL(siteSort.SORT, 999999) AS siteStepSort " +
"FROM SD_ENGINFO_B_H eng " + "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_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = eng.STCD " + ") rstSort ON rstSort.BASEID = eng.BASE_ID AND rstSort.STCD = eng.STCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = eng.STCD " + ") siteSort ON siteSort.BASEID = eng.BASE_ID AND siteSort.STCD = eng.STCD " +
"WHERE NVL(eng.IS_DELETED, 0) = 0 " + "WHERE NVL(eng.IS_DELETED, 0) = 0 " +
"AND NVL(eng.USFL, 0) = 1 " + "AND NVL(eng.USFL, 0) = 1 " +
"AND eng.LGTD IS NOT NULL " + "AND eng.LGTD IS NOT NULL " +
@ -1383,12 +1401,13 @@ public class WarnDataServiceImpl implements WarnDataService {
if (point == null || !isAlarmPointVisible(point.getAnchoPointState())) { if (point == null || !isAlarmPointVisible(point.getAnchoPointState())) {
continue; continue;
} }
point.setAnchoPointState(normalizeAlarmPointState(point.getAnchoPointState()) + "_ALARM"); point.setAnchoPointState(normalizeAlarmPointState(point.getAnchoPointState()));
point.setStqCount(qecCountMap.getOrDefault(point.getStcd(), 0)); point.setStqCount(qecCountMap.getOrDefault(point.getStcd(), 0));
point.setWqCount(wqCountMap.getOrDefault(point.getStcd(), 0)); point.setWqCount(wqCountMap.getOrDefault(point.getStcd(), 0));
point.setZCount(0); point.setZCount(0);
point.setWtCount(0); point.setWtCount(0);
point.setYyyy(yyyy); point.setYyyy(yyyy);
point.setSttpMap(point.getSttpMap() + "_ALARM");
point.setSttpCode("ENG"); point.setSttpCode("ENG");
int total = point.getStqCount() + point.getWqCount(); int total = point.getStqCount() + point.getWqCount();
applyAlarmPointRange(point, total, expressionRows); applyAlarmPointRange(point, total, expressionRows);
@ -1397,6 +1416,291 @@ public class WarnDataServiceImpl implements WarnDataService {
return result; return result;
} }
private List<AlarmPointVo> applyAlarmPointFilter(List<AlarmPointVo> source, DataSourceRequest.FilterDescriptor filter) {
if (CollUtil.isEmpty(source) || filter == null) {
return source;
}
List<AlarmPointVo> result = new ArrayList<>();
for (AlarmPointVo item : source) {
if (matchesAlarmPointFilter(item, filter)) {
result.add(item);
}
}
return result;
}
private boolean matchesAlarmPointFilter(AlarmPointVo item, DataSourceRequest.FilterDescriptor filter) {
if (item == null || filter == null) {
return true;
}
if (CollUtil.isNotEmpty(filter.getFilters())) {
String logic = StrUtil.blankToDefault(filter.getLogic(), "and");
if ("or".equalsIgnoreCase(logic)) {
for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) {
if (matchesAlarmPointFilter(item, child)) {
return true;
}
}
return false;
}
for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) {
if (!matchesAlarmPointFilter(item, child)) {
return false;
}
}
return true;
}
if (StrUtil.isBlank(filter.getField()) || StrUtil.isBlank(filter.getOperator())) {
return true;
}
if (isAlarmPointMetaField(filter.getField())) {
return true;
}
Object actualValue = getAlarmPointFieldValue(item, filter.getField());
return compareAlarmPointField(actualValue, filter.getValue(), filter.getOperator(), filter.isIgnoreCase());
}
private boolean isAlarmPointMetaField(String field) {
return "startTime".equals(field) || "endTime".equals(field);
}
private boolean compareAlarmPointField(Object actualValue, Object expectedValue, String operator, boolean ignoreCase) {
if ("isblank".equalsIgnoreCase(operator)) {
return actualValue == null || StrUtil.isBlank(String.valueOf(actualValue));
}
if ("isnotblank".equalsIgnoreCase(operator)) {
return actualValue != null && StrUtil.isNotBlank(String.valueOf(actualValue));
}
if (actualValue == null) {
return expectedValue == null && ("eq".equalsIgnoreCase(operator) || "=".equals(operator));
}
String actualText = String.valueOf(actualValue);
String expectedText = expectedValue == null ? null : String.valueOf(expectedValue);
String left = ignoreCase && actualText != null ? actualText.toLowerCase() : actualText;
String right = ignoreCase && expectedText != null ? expectedText.toLowerCase() : expectedText;
switch (operator.toLowerCase()) {
case "eq":
case "=":
return Objects.equals(normalizeAlarmPointCompareValue(actualValue), normalizeAlarmPointCompareValue(expectedValue))
|| Objects.equals(left, right);
case "neq":
case "<>":
return !Objects.equals(normalizeAlarmPointCompareValue(actualValue), normalizeAlarmPointCompareValue(expectedValue))
&& !Objects.equals(left, right);
case "contains":
return right != null && left != null && left.contains(right);
case "doesnotcontain":
return right == null || left == null || !left.contains(right);
case "startswith":
return right != null && left != null && left.startsWith(right);
case "endswith":
return right != null && left != null && left.endsWith(right);
case "gt":
return compareAlarmPointComparable(actualValue, expectedValue) > 0;
case "gte":
case "ge":
return compareAlarmPointComparable(actualValue, expectedValue) >= 0;
case "lt":
return compareAlarmPointComparable(actualValue, expectedValue) < 0;
case "lte":
case "le":
return compareAlarmPointComparable(actualValue, expectedValue) <= 0;
default:
return true;
}
}
private Object normalizeAlarmPointCompareValue(Object value) {
if (value == null) {
return null;
}
if (value instanceof Number) {
return new BigDecimal(value.toString());
}
if (value instanceof Date) {
return ((Date) value).getTime();
}
String text = String.valueOf(value).trim();
if (StrUtil.isBlank(text)) {
return text;
}
if (StrUtil.isNumeric(text)) {
return new BigDecimal(text);
}
return text;
}
private int compareAlarmPointComparable(Object actualValue, Object expectedValue) {
Object left = normalizeAlarmPointCompareValue(actualValue);
Object right = normalizeAlarmPointCompareValue(expectedValue);
if (left == null && right == null) {
return 0;
}
if (left == null) {
return -1;
}
if (right == null) {
return 1;
}
if (left instanceof BigDecimal && right instanceof BigDecimal) {
return ((BigDecimal) left).compareTo((BigDecimal) right);
}
if (left instanceof Long && right instanceof Long) {
return Long.compare((Long) left, (Long) right);
}
return String.valueOf(left).compareTo(String.valueOf(right));
}
private void applyAlarmPointSort(List<AlarmPointVo> list, List<DataSourceRequest.SortDescriptor> sorts) {
if (CollUtil.isEmpty(list) || CollUtil.isEmpty(sorts)) {
return;
}
Comparator<AlarmPointVo> comparator = null;
for (DataSourceRequest.SortDescriptor sort : sorts) {
if (sort == null || StrUtil.isBlank(sort.getField()) || Boolean.FALSE.equals(sort.getNeedSortFlag())) {
continue;
}
Comparator<AlarmPointVo> current = (left, right) -> compareAlarmPointSortValue(
buildAlarmPointSortValue(getAlarmPointFieldValue(left, sort.getField())),
buildAlarmPointSortValue(getAlarmPointFieldValue(right, sort.getField()))
);
if ("desc".equalsIgnoreCase(sort.getDir()) || "des".equalsIgnoreCase(sort.getDir())) {
current = current.reversed();
}
comparator = comparator == null ? current : comparator.thenComparing(current);
}
if (comparator != null) {
list.sort(comparator);
}
}
private Comparable<?> buildAlarmPointSortValue(Object value) {
if (value == null) {
return null;
}
if (value instanceof BigDecimal) {
return (BigDecimal) value;
}
if (value instanceof Integer) {
return (Integer) value;
}
if (value instanceof Long) {
return (Long) value;
}
if (value instanceof Date) {
return ((Date) value).getTime();
}
return String.valueOf(value);
}
private int compareAlarmPointSortValue(Comparable<?> left, Comparable<?> right) {
if (left == null && right == null) {
return 0;
}
if (left == null) {
return 1;
}
if (right == null) {
return -1;
}
return String.valueOf(left).compareTo(String.valueOf(right));
}
private List<AlarmPointVo> applyAlarmPointPage(List<AlarmPointVo> source, DataSourceLoadOptionsBase loadOptions) {
if (CollUtil.isEmpty(source) || loadOptions == null || loadOptions.getTake() == null || loadOptions.getTake() <= 0) {
return source;
}
int skip = loadOptions.getSkip() == null ? 0 : Math.max(loadOptions.getSkip(), 0);
if (skip >= source.size()) {
return new ArrayList<>();
}
int endIndex = Math.min(skip + loadOptions.getTake(), source.size());
return new ArrayList<>(source.subList(skip, endIndex));
}
private List<Map<String, Object>> buildAlarmPointGroupRows(List<AlarmPointVo> source) {
List<Map<String, Object>> rows = new ArrayList<>();
if (CollUtil.isEmpty(source)) {
return rows;
}
for (AlarmPointVo item : source) {
rows.add(new LinkedHashMap<>(BeanUtil.beanToMap(item)));
}
return rows;
}
private Object getAlarmPointFieldValue(AlarmPointVo item, String field) {
if (item == null || StrUtil.isBlank(field)) {
return null;
}
switch (field) {
case "sttp":
return item.getSttp();
case "stcd":
return item.getStcd();
case "lgtd":
return item.getLgtd();
case "lttd":
return item.getLttd();
case "dtmel":
return item.getDtmel();
case "anchoPointState":
return item.getAnchoPointState();
case "sttpMap":
return item.getSttpMap();
case "titleName":
return item.getTitleName();
case "distance":
return item.getDistance();
case "rvcd":
return item.getRvcd();
case "addvcd":
return item.getAddvcd();
case "baseId":
return item.getBaseId();
case "rstcds":
return item.getRstcds();
case "sttpCode":
return item.getSttpCode();
case "ennm":
return item.getEnnm();
case "rvnm":
return item.getRvnm();
case "endInstalledType":
return item.getEndInstalledType();
case "stqCount":
return item.getStqCount();
case "wqCount":
return item.getWqCount();
case "zCount":
return item.getZCount();
case "wtCount":
return item.getWtCount();
case "yyyy":
return item.getYyyy();
case "range":
return item.getRange();
case "ttpwr":
return item.getTtpwr();
case "baseName":
return item.getBaseName();
case "rstcd":
return item.getRstcd();
case "rvcdStepSort":
return item.getRvcdStepSort();
case "rstcdStepSort":
return item.getRstcdStepSort();
case "siteStepSort":
return item.getSiteStepSort();
case "logo":
return item.getLogo();
default:
return null;
}
}
private boolean isAlarmPointVisible(String state) { private boolean isAlarmPointVisible(String state) {
return "large_eng_built".equals(state) return "large_eng_built".equals(state)
|| "mid_eng_built".equals(state) || "mid_eng_built".equals(state)

View File

@ -1342,17 +1342,17 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
"LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = eng.RVCD " + "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_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
"LEFT JOIN SD_FHBT_B_H fh ON fh.STCD = wq.FHSTCD AND NVL(fh.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_FHBT_B_H fh ON fh.STCD = wq.FHSTCD AND NVL(fh.IS_DELETED, 0) = 0 " +
"LEFT JOIN MS_ALONG_B rvAlong ON rvAlong.RVCD = eng.HBRVCD AND rvAlong.CODE = 'common' AND NVL(rvAlong.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B rvAlong ON rvAlong.BASEID = wq.BASE_ID AND rvAlong.CODE = 'common' AND NVL(rvAlong.IS_DELETED, 0) = 0 " +
"LEFT JOIN (SELECT det.SORT, along.RVCD, det.STCD " + "LEFT JOIN (SELECT det.SORT,along.BASEID, along.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " + " INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') rstAlong " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') rstAlong " +
" ON rstAlong.RVCD = eng.HBRVCD AND rstAlong.STCD = wq.RSTCD " + " ON rstAlong.BASEID = wq.BASE_ID AND rstAlong.STCD = wq.RSTCD " +
"LEFT JOIN (SELECT det.SORT, along.RVCD, det.STCD " + "LEFT JOIN (SELECT det.SORT,along.BASEID, along.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " + " INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') siteAlong " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') siteAlong " +
" ON siteAlong.RVCD = eng.HBRVCD AND siteAlong.STCD = wq.STCD " + " ON siteAlong.BASEID = wq.BASE_ID AND siteAlong.STCD = wq.STCD " +
"WHERE wq.STTP IN ('WQ', 'WQFB') AND NVL(wq.IS_DELETED, 0) = 0"; "WHERE wq.STTP IN ('WQ', 'WQFB') AND NVL(wq.IS_DELETED, 0) = 0";
} }
@ -1824,17 +1824,17 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = wq.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = wq.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = eng.RVCD " + "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_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
"LEFT JOIN MS_ALONG_B rvAlong ON rvAlong.RVCD = eng.HBRVCD AND rvAlong.CODE = 'common' AND NVL(rvAlong.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B rvAlong ON rvAlong.BASEID = wq.BASE_ID AND rvAlong.CODE = 'common' AND NVL(rvAlong.IS_DELETED, 0) = 0 " +
"LEFT JOIN (SELECT det.SORT, along.RVCD, det.STCD " + "LEFT JOIN (SELECT det.SORT,cfg.BASEID, along.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " + " INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') rstAlong " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') rstAlong " +
" ON rstAlong.RVCD = eng.HBRVCD AND rstAlong.STCD = wq.RSTCD " + " ON rstAlong.BASEID = wq.BASE_ID AND rstAlong.STCD = wq.RSTCD " +
"LEFT JOIN (SELECT det.SORT, along.RVCD, det.STCD " + "LEFT JOIN (SELECT det.SORT,cfg.BASEID, along.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " + " INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') siteAlong " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') siteAlong " +
" ON siteAlong.RVCD = eng.HBRVCD AND siteAlong.STCD = wq.STCD " + " ON siteAlong.BASEID = wq.BASE_ID AND siteAlong.STCD = wq.STCD " +
"WHERE wq.STTP = 'WQ' AND NVL(wq.IS_DELETED, 0) = 0"; "WHERE wq.STTP = 'WQ' AND NVL(wq.IS_DELETED, 0) = 0";
} }
@ -2264,17 +2264,17 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = wq.BASE_ID AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " + "LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = wq.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_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
"LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " + "LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
"LEFT JOIN MS_ALONG_B rvAlong ON rvAlong.RVCD = eng.HBRVCD AND rvAlong.CODE = 'common' AND NVL(rvAlong.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B rvAlong ON rvAlong.BASEID = wq.BASE_ID AND rvAlong.CODE = 'common' AND NVL(rvAlong.IS_DELETED, 0) = 0 " +
"LEFT JOIN (SELECT det.SORT, along.RVCD, det.STCD " + "LEFT JOIN (SELECT det.SORT,along.BASEID, along.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " + " INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') rstAlong " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') rstAlong " +
" ON rstAlong.RVCD = eng.HBRVCD AND rstAlong.STCD = wq.RSTCD " + " ON rstAlong.RVCD = wq.BASE_ID AND rstAlong.STCD = wq.RSTCD " +
"LEFT JOIN (SELECT det.SORT, along.RVCD, det.STCD " + "LEFT JOIN (SELECT det.SORT,along.BASEID, along.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " + " INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') siteAlong " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') siteAlong " +
" ON siteAlong.RVCD = eng.HBRVCD AND siteAlong.STCD = wq.STCD " + " ON siteAlong.BASEID = wq.BASE_ID AND siteAlong.STCD = wq.STCD " +
"WHERE wq.STTP = 'WQ' AND NVL(wq.IS_DELETED, 0) = 0"; "WHERE wq.STTP = 'WQ' AND NVL(wq.IS_DELETED, 0) = 0";
} }
@ -3308,6 +3308,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
String countField = row.containsKey("COUNT_STCD") ? "COUNT_STCD" : "COUNT_" + upperField; String countField = row.containsKey("COUNT_STCD") ? "COUNT_STCD" : "COUNT_" + upperField;
String aggregateKey = "COUNT_STCD".equals(countField) ? "count_stcd" : "count_" + groupField; String aggregateKey = "COUNT_STCD".equals(countField) ? "count_stcd" : "count_" + groupField;
Object countValue = row.get(countField); Object countValue = row.get(countField);
Map<String, Object> item = new LinkedHashMap<>();
if (countValue == null) { if (countValue == null) {
countValue = row.get("count_stcd"); countValue = row.get("count_stcd");
} }
@ -3321,7 +3322,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
count = Long.parseLong(String.valueOf(countValue)); count = Long.parseLong(String.valueOf(countValue));
} }
Map<String, Object> item = new LinkedHashMap<>();
item.put("key", key); item.put("key", key);
item.put("keyName", null); item.put("keyName", null);
item.put("keyExt", new HashMap<>()); item.put("keyExt", new HashMap<>());
@ -3330,7 +3331,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
detail.put(upperField, key); detail.put(upperField, key);
detail.put(countField, count); detail.put(countField, count);
item.put("items", List.of(detail)); item.put("items", List.of(detail));
item.put("count", 0); item.put("count", count);
item.put("summary", new Object[0]); item.put("summary", new Object[0]);
Map<String, Object> aggregates = new LinkedHashMap<>(); Map<String, Object> aggregates = new LinkedHashMap<>();
@ -4557,7 +4558,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
} }
@Override @Override
// @Cacheable(cacheNames = "weCache#3600", keyGenerator = "cacheKeyGenerator") @Cacheable(cacheNames = "wqCache#3600", keyGenerator = "cacheKeyByUserGenerator")
public DataSourceResult<EnvWqAnchorPointVo> getAnchorPointKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<EnvWqAnchorPointVo> getAnchorPointKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceResult<EnvWqAnchorPointVo> dataSourceResult = new DataSourceResult<>(); DataSourceResult<EnvWqAnchorPointVo> dataSourceResult = new DataSourceResult<>();
dataSourceResult.setAggregates(new HashMap<>()); dataSourceResult.setAggregates(new HashMap<>());
@ -4616,19 +4617,19 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
.append("LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND NVL(hbrv.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND NVL(hbrv.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_RVCD_DIC rvcd ON rvcd.RVCD = eng.RVCD AND NVL(rvcd.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_RVCD_DIC rvcd ON rvcd.RVCD = eng.RVCD AND NVL(rvcd.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_ADDVCD_DIC addvcd ON addvcd.ADDVCD = eng.ADDVCD ") .append("LEFT JOIN SD_ADDVCD_DIC addvcd ON addvcd.ADDVCD = eng.ADDVCD ")
.append("LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ") .append("LEFT JOIN MS_ALONG_B along ON along.BASEID = t.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT det.SORT, cfg.RVCD, det.STCD ") .append(" SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ") .append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ")
.append(") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = t.RSTCD ") .append(") rstSort ON rstSort.BASEID = t.BASE_ID AND rstSort.STCD = t.RSTCD ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT det.SORT, cfg.RVCD, det.STCD ") .append(" SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ") .append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' ")
.append(") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = t.STCD ") .append(") siteSort ON siteSort.BASEID = t.BASE_ID AND siteSort.STCD = t.STCD ")
.append("WHERE NVL(t.IS_DELETED, 0) = 0 ") .append("WHERE NVL(t.IS_DELETED, 0) = 0 ")
.append("AND NVL(t.USFL, 1) = 1 "); .append("AND NVL(t.USFL, 1) = 1 ");

View File

@ -95,6 +95,9 @@ public class SdWtBaseInfoVO implements Serializable {
@Schema(description = "基地流域编码") @Schema(description = "基地流域编码")
private String hbrvcd; private String hbrvcd;
@Schema(description = "基地流域名称")
private String hbrvcdName;
@Schema(description = "经度") @Schema(description = "经度")
private Double lgtd; private Double lgtd;

View File

@ -62,7 +62,7 @@ public interface AlongListMapper extends BaseMapper<SdAlongVO> {
" and MAB.RVCD=#{rvcd} " + " and MAB.RVCD=#{rvcd} " +
" </if>" + " </if>" +
" <if test='baseId != null and baseId != \"\"'>" + " <if test='baseId != null and baseId != \"\"'>" +
" and MAB.RVCD in (select HBRVCD from SD_HBRV_DIC where IS_DELETED=0 and ENABLED=1 and BASEID=#{baseId}) " + " and MAB.BASEID in (select BASEID from SD_HYDROBASE where IS_DELETED=0 and ENABLED=1 and BASEID=#{baseId}) " +
" </if>" + " </if>" +
" union all " + " union all " +
" select " + " select " +
@ -93,7 +93,7 @@ public interface AlongListMapper extends BaseMapper<SdAlongVO> {
" and MAB.RVCD=#{rvcd} " + " and MAB.RVCD=#{rvcd} " +
" </if>" + " </if>" +
" <if test='baseId != null and baseId != \"\"'>" + " <if test='baseId != null and baseId != \"\"'>" +
" and MAB.RVCD in (select HBRVCD from SD_HBRV_DIC where IS_DELETED=0 and ENABLED=1 and BASEID=#{baseId}) " + " and MAB.BASEID in (select BASEID from SD_HYDROBASE where IS_DELETED=0 and ENABLED=1 and BASEID=#{baseId}) " +
" </if>" + " </if>" +
") T order by rvcdSort asc, sort asc" + ") T order by rvcdSort asc, sort asc" +
"</script>") "</script>")
@ -117,7 +117,7 @@ public interface AlongListMapper extends BaseMapper<SdAlongVO> {
"and MAB.RVCD=#{rvcd} " + "and MAB.RVCD=#{rvcd} " +
"</if>" + "</if>" +
"<if test='baseId != null and baseId != \"\"'>" + "<if test='baseId != null and baseId != \"\"'>" +
"and MAB.RVCD in (select HBRVCD from SD_HBRV_DIC where IS_DELETED=0 and ENABLED=1 and BASEID=#{baseId}) " + "and MAB.BASEID in (select BASEID from SD_HYDROBASE where IS_DELETED=0 and ENABLED=1 and BASEID=#{baseId}) " +
"</if>" + "</if>" +
"order by MAB.ORDER_INDEX asc, SAD.SORT asc, SWR.TM desc" + "order by MAB.ORDER_INDEX asc, SAD.SORT asc, SWR.TM desc" +
") where ROWNUM=1" + ") where ROWNUM=1" +

View File

@ -34,6 +34,7 @@ import com.yfd.platform.utils.RedisCacheUtil;
import com.yfd.platform.utils.SecurityUtils; import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.Data; import lombok.Data;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -712,6 +713,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
.append("dw.ORDER_INDEX AS siteStepSort, ") .append("dw.ORDER_INDEX AS siteStepSort, ")
.append("dw.STNM AS stnm, ") .append("dw.STNM AS stnm, ")
.append("eng.ENNM AS ennm, ") .append("eng.ENNM AS ennm, ")
.append("eng.REACHCD_NAME AS hbrvcdName, ")
.append("dw.JCDT AS jcdt, ") .append("dw.JCDT AS jcdt, ")
.append("NULL AS stindx, ") .append("NULL AS stindx, ")
.append("CASE WHEN NVL(dw.DTIN, 0) = 1 THEN 1 ELSE 0 END AS coenvwState, ") .append("CASE WHEN NVL(dw.DTIN, 0) = 1 THEN 1 ELSE 0 END AS coenvwState, ")
@ -734,6 +736,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
.append("eng.HBRVCD AS hbrvcd ") .append("eng.HBRVCD AS hbrvcd ")
.append("FROM SD_DW_B_H dw ") .append("FROM SD_DW_B_H dw ")
.append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = dw.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = dw.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ")
// .append("LEFT JOIN SD_RVCD_DIC srd ON eng.REACHCD = srd.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID AND NVL(hbrv.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID AND NVL(hbrv.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = dw.STTP AND NVL(sttp.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = dw.STTP AND NVL(sttp.IS_DELETED, 0) = 0 ")
@ -790,9 +793,21 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
sql.append("AND wt.STTP = #{map.sttpCode} "); sql.append("AND wt.STTP = #{map.sttpCode} ");
} }
if (queryDwDirectly && StrUtil.isNotBlank(sttpCode)) { if (queryDwDirectly && StrUtil.isNotBlank(sttpCode)) {
List<String> sttpCodes = StrUtil.split(sttpCode, ",");
if(sttpCodes.size() > 1){
// 正确拼接每个值加单引号并用逗号连接
String joined = sttpCodes.stream()
.map(s -> "'" + s.replace("'", "''") + "'") // 转义单引号
.collect(Collectors.joining(","));
sql.append("AND dw.STTP NOT IN (").append(joined).append(") ");
}
if(sttpCodes.size() == 1){
paramMap.put("sttpCode", sttpCode); paramMap.put("sttpCode", sttpCode);
sql.append("AND dw.STTP = #{map.sttpCode} "); sql.append("AND dw.STTP = #{map.sttpCode} ");
} }
// paramMap.put("sttpCode", sttpCode);
// sql.append("AND dw.STTP = #{map.sttpCode} ");
}
if (queryDwDirectly && StrUtil.isNotBlank(bldsttCcode)) { if (queryDwDirectly && StrUtil.isNotBlank(bldsttCcode)) {
paramMap.put("bldsttCcode", bldsttCcode); paramMap.put("bldsttCcode", bldsttCcode);
@ -1291,21 +1306,21 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
.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 AND NVL(hb.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN (") .append("LEFT JOIN (")
.append(" SELECT det.STCD, det.SORT, along.RVCD ") .append(" SELECT det.STCD, det.SORT,along.BASEID, along.RVCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B along ON along.ID = det.ALONG_ID ") .append(" INNER JOIN MS_ALONG_B along ON along.ID = det.ALONG_ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 ")
.append(" AND NVL(along.IS_DELETED, 0) = 0 ") .append(" AND NVL(along.IS_DELETED, 0) = 0 ")
.append(" AND along.CODE = 'common'") .append(" AND along.CODE = 'common'")
.append(") rstSort ON rstSort.STCD = wt.RSTCD AND rstSort.RVCD = eng.HBRVCD ") .append(") rstSort ON rstSort.STCD = wt.RSTCD AND rstSort.BASEID = wt.BASE_ID ")
.append("LEFT JOIN (") .append("LEFT JOIN (")
.append(" SELECT det.STCD, det.SORT, along.RVCD ") .append(" SELECT det.STCD, det.SORT,along.BASEID, along.RVCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B along ON along.ID = det.ALONG_ID ") .append(" INNER JOIN MS_ALONG_B along ON along.ID = det.ALONG_ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 ")
.append(" AND NVL(along.IS_DELETED, 0) = 0 ") .append(" AND NVL(along.IS_DELETED, 0) = 0 ")
.append(" AND along.CODE = 'common'") .append(" AND along.CODE = 'common'")
.append(") siteSort ON siteSort.STCD = wt.STCD AND siteSort.RVCD = eng.HBRVCD ") .append(") siteSort ON siteSort.STCD = wt.STCD AND siteSort.BASEID = wt.BASE_ID ")
.append("WHERE NVL(wt.IS_DELETED, 0) = 0 ") .append("WHERE NVL(wt.IS_DELETED, 0) = 0 ")
.append(" AND wt.STTP = 'WTVT' ") .append(" AND wt.STTP = 'WTVT' ")
.append(" AND NVL(wt.USFL, 0) = 1 ") .append(" AND NVL(wt.USFL, 0) = 1 ")
@ -1366,21 +1381,21 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
.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 AND NVL(hb.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN (") .append("LEFT JOIN (")
.append(" SELECT det.STCD, det.SORT, along.RVCD ") .append(" SELECT det.STCD, det.SORT,along.BASEID, along.RVCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B along ON along.ID = det.ALONG_ID ") .append(" INNER JOIN MS_ALONG_B along ON along.ID = det.ALONG_ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 ")
.append(" AND NVL(along.IS_DELETED, 0) = 0 ") .append(" AND NVL(along.IS_DELETED, 0) = 0 ")
.append(" AND along.CODE = 'common'") .append(" AND along.CODE = 'common'")
.append(") rstSort ON rstSort.STCD = wt.RSTCD AND rstSort.RVCD = eng.HBRVCD ") .append(") rstSort ON rstSort.STCD = wt.RSTCD AND rstSort.BASEID = wt.BASE_ID ")
.append("LEFT JOIN (") .append("LEFT JOIN (")
.append(" SELECT det.STCD, det.SORT, along.RVCD ") .append(" SELECT det.STCD, det.SORT,along.BASEID, along.RVCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B along ON along.ID = det.ALONG_ID ") .append(" INNER JOIN MS_ALONG_B along ON along.ID = det.ALONG_ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 ")
.append(" AND NVL(along.IS_DELETED, 0) = 0 ") .append(" AND NVL(along.IS_DELETED, 0) = 0 ")
.append(" AND along.CODE = 'common'") .append(" AND along.CODE = 'common'")
.append(") siteSort ON siteSort.STCD = wt.STCD AND siteSort.RVCD = eng.HBRVCD ") .append(") siteSort ON siteSort.STCD = wt.STCD AND siteSort.BASEID = wt.BASE_ID ")
.append("WHERE NVL(wt.IS_DELETED, 0) = 0 ") .append("WHERE NVL(wt.IS_DELETED, 0) = 0 ")
.append(" AND wt.STTP = 'WTVT' ") .append(" AND wt.STTP = 'WTVT' ")
.append(" AND NVL(wt.USFL, 0) = 1 ") .append(" AND NVL(wt.USFL, 0) = 1 ")
@ -2846,6 +2861,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
} }
@Override @Override
@Cacheable(cacheNames = "dwCache#3600", keyGenerator = "cacheKeyByUserGenerator")
public DataSourceResult<DwSlowFacilityMapVO> getFacilityPointKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<DwSlowFacilityMapVO> getFacilityPointKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceResult<DwSlowFacilityMapVO> dataSourceResult = new DataSourceResult<>(); DataSourceResult<DwSlowFacilityMapVO> dataSourceResult = new DataSourceResult<>();
dataSourceResult.setAggregates(new HashMap<>()); dataSourceResult.setAggregates(new HashMap<>());
@ -2888,7 +2904,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
.append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = t.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = t.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = t.STTP AND NVL(sttp.IS_DELETED, 0) = 0 ") .append("LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = t.STTP AND NVL(sttp.IS_DELETED, 0) = 0 ")
.append("WHERE NVL(t.IS_DELETED, 0) = 0 ") .append("WHERE NVL(t.IS_DELETED, 0) = 0 ")
.append("AND NVL(t.USFL, 1) = 1 ") // .append("AND NVL(t.USFL, 1) = 1 ")
.append("AND t.LGTD IS NOT NULL ") .append("AND t.LGTD IS NOT NULL ")
.append("AND t.LTTD IS NOT NULL "); .append("AND t.LTTD IS NOT NULL ");
@ -2943,6 +2959,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
} }
@Override @Override
// @Cacheable(cacheNames = "wtCache#3600", keyGenerator = "cacheKeyByUserGenerator")
public DataSourceResult<WaterTempMapVO> getEngTempPointListKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<WaterTempMapVO> getEngTempPointListKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceResult<WaterTempMapVO> dataSourceResult = new DataSourceResult<>(); DataSourceResult<WaterTempMapVO> dataSourceResult = new DataSourceResult<>();
dataSourceResult.setAggregates(new HashMap<>()); dataSourceResult.setAggregates(new HashMap<>());
@ -3016,6 +3033,13 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
// paramMap.put("dtinType", dtinType); // paramMap.put("dtinType", dtinType);
// } // }
DataScopeApplyResult scopeApplyResult = dataScopeFilterService.appendCurrentUserStationScope(sql, paramMap, "t.RSTCD");
if (scopeApplyResult.isEmptyResult()) {
dataSourceResult.setData(new ArrayList<>());
dataSourceResult.setTotal(0L);
return dataSourceResult;
}
List<DataSourceRequest.SortDescriptor> sort = dataSourceRequest.getSort(); List<DataSourceRequest.SortDescriptor> sort = dataSourceRequest.getSort();
if (sort != null && !sort.isEmpty()) { if (sort != null && !sort.isEmpty()) {
sql.append(" ORDER BY "); sql.append(" ORDER BY ");

View File

@ -36,6 +36,15 @@ public class WeVmsstbprptVo {
@Schema(description = "河流编码") @Schema(description = "河流编码")
private String rvcd; private String rvcd;
@Schema(description = "站址/位置")
private String stlc;
@Schema(description = "地形裁剪范围")
private String box;
@Schema(description = "基地编码")
private String baseName;
@Schema(description = "排序") @Schema(description = "排序")
private Integer orderIndex; private Integer orderIndex;

View File

@ -1113,16 +1113,16 @@ public class WeFishServiceImpl implements WeFishService {
.append(" WHERE NVL(IS_DELETED, 0) = 0 AND STATUS = 1 ") .append(" WHERE NVL(IS_DELETED, 0) = 0 AND STATUS = 1 ")
.append(" GROUP BY STCD ") .append(" GROUP BY STCD ")
.append(") latest ON latest.STCD = section.STCD ") .append(") latest ON latest.STCD = section.STCD ")
.append("LEFT JOIN MS_ALONG_B along ON along.RVCD = section.HBRVCD ") .append("LEFT JOIN MS_ALONG_B along ON along.BASEID = section.BASE_ID ")
.append(" AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ") .append(" AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ")
.append("LEFT JOIN ( ") .append("LEFT JOIN ( ")
.append(" SELECT det.SORT, cfg.RVCD, det.STCD ") .append(" SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD ")
.append(" FROM MS_ALONGDET_B det ") .append(" FROM MS_ALONGDET_B det ")
.append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ") .append(" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID ")
.append(" WHERE NVL(det.IS_DELETED, 0) = 0 ") .append(" WHERE NVL(det.IS_DELETED, 0) = 0 ")
.append(" AND NVL(cfg.IS_DELETED, 0) = 0 ") .append(" AND NVL(cfg.IS_DELETED, 0) = 0 ")
.append(" AND cfg.CODE = 'common' ") .append(" AND cfg.CODE = 'common' ")
.append(") siteSort ON siteSort.RVCD = section.HBRVCD AND siteSort.STCD = section.STCD ") .append(") siteSort ON siteSort.BASEID = section.BASE_ID AND siteSort.STCD = section.STCD ")
.append("WHERE NVL(section.USFL, 1) = 1 "); .append("WHERE NVL(section.USFL, 1) = 1 ");
String filterSql = buildWePointFilterCondition(dataSourceRequest.getFilter(), paramMap, new int[]{0}); String filterSql = buildWePointFilterCondition(dataSourceRequest.getFilter(), paramMap, new int[]{0});
@ -1923,7 +1923,7 @@ public class WeFishServiceImpl implements WeFishService {
List<String> rstcdList, List<String> rstcdList,
Map<String, Object> paramMap) { Map<String, Object> paramMap) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT t.HBRVCD AS hbrvcd, t.YR AS yr ") sql.append("SELECT t.BASE_ID AS hbrvcd, t.YR AS yr ")
.append("FROM (") .append("FROM (")
.append("SELECT section.HBRVCD, section.RSTCD, section.BASE_ID, TO_CHAR(we.TM, 'yyyy') AS yr ") .append("SELECT section.HBRVCD, section.RSTCD, section.BASE_ID, TO_CHAR(we.TM, 'yyyy') AS yr ")
.append("FROM SD_WE_B_H section ") .append("FROM SD_WE_B_H section ")
@ -2753,7 +2753,16 @@ public class WeFishServiceImpl implements WeFishService {
"b.NAME AS name, " + "b.NAME AS name, " +
"b.NAME_EN AS nameEn, " + "b.NAME_EN AS nameEn, " +
"b.PROTECTLVL AS protectlvl, " + "b.PROTECTLVL AS protectlvl, " +
"b.PROTECTLVL AS protectlvlName, " + "CASE b.PROTECTLVL\n" +
" WHEN '1' THEN '国家一级'\n" +
" WHEN '2' THEN '国家二级'\n" +
" WHEN '3' THEN '国家三级'\n" +
" WHEN '4' THEN '省重点'\n" +
" WHEN '5' THEN '市一级'\n" +
" WHEN '6' THEN '市二级'\n" +
" WHEN '7' THEN '无'\n" +
" ELSE b.PROTECTLVL\n" +
"END AS protectlvlName, " +
"b.LOGO AS logo, " + "b.LOGO AS logo, " +
"b.INTRODUCE AS introduce " + "b.INTRODUCE AS introduce " +
"FROM MS_SPECANIMALS_B a " + "FROM MS_SPECANIMALS_B a " +
@ -3286,11 +3295,14 @@ public class WeFishServiceImpl implements WeFishService {
return "SELECT " + return "SELECT " +
"ai.STCD AS id, " + "ai.STCD AS id, " +
"ai.STTP AS sttpCode, " + "ai.STTP AS sttpCode, " +
"ai.STLC AS stlc, " +
"ai.STCD AS stcd, " + "ai.STCD AS stcd, " +
"ai.STNM AS stnm, " + "ai.STNM AS stnm, " +
"ai.BOX AS box, " +
"ai.RSTCD AS rstcd, " + "ai.RSTCD AS rstcd, " +
"eng.ENNM AS ennm, " + "eng.ENNM AS ennm, " +
"ai.BASE_ID AS baseId, " + "ai.BASE_ID AS baseId, " +
"hb.BASENAME AS baseName, " +
"ai.HBRVCD AS hbrvcd, " + "ai.HBRVCD AS hbrvcd, " +
"ai.RVCD AS rvcd, " + "ai.RVCD AS rvcd, " +
"ai.ORDER_INDEX AS orderIndex, " + "ai.ORDER_INDEX AS orderIndex, " +
@ -3298,6 +3310,7 @@ public class WeFishServiceImpl implements WeFishService {
"ai.LTTD AS lttd " + "ai.LTTD AS lttd " +
"FROM SD_AIMONITOR_B_H ai " + "FROM SD_AIMONITOR_B_H ai " +
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = ai.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = ai.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = ai.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"WHERE NVL(ai.IS_DELETED, 0) = 0"; "WHERE NVL(ai.IS_DELETED, 0) = 0";
} }
@ -3350,6 +3363,9 @@ public class WeFishServiceImpl implements WeFishService {
selected.add("t.sttpCode AS sttpCode"); selected.add("t.sttpCode AS sttpCode");
selected.add("t.stnm AS stnm"); selected.add("t.stnm AS stnm");
selected.add("t.stcd AS stcd"); selected.add("t.stcd AS stcd");
selected.add("t.stlc AS stlc");
selected.add("t.box AS box");
selected.add("t.baseName AS baseName");
} else { } else {
for (String field : selectFields) { for (String field : selectFields) {
String column = columns.get(field); String column = columns.get(field);

View File

@ -714,19 +714,19 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID " + "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 " + " 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_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = rb.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = rb.RSTCD " + ") rstSort ON rstSort.BASEID = rb.BASE_ID AND rstSort.STCD = rb.RSTCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = rb.STCD " + ") siteSort ON siteSort.BASEID = rb.BASE_ID AND siteSort.STCD = rb.STCD " +
"LEFT JOIN SD_VDINFO_B vdb ON vdb.CSTCD = rr.STCD AND NVL(vdb.USFL, 1) = 1 " + "LEFT JOIN SD_VDINFO_B vdb ON vdb.CSTCD = rr.STCD AND NVL(vdb.USFL, 1) = 1 " +
"LEFT JOIN SD_VDINFO_R vdr ON vdr.STCD = vdb.STCD AND vdr.TM = rr.TM AND NVL(vdr.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_VDINFO_R vdr ON vdr.STCD = vdb.STCD AND vdr.TM = rr.TM AND NVL(vdr.IS_DELETED, 0) = 0 " +
"WHERE NVL(rr.IS_DELETED, 0) = 0 " + "WHERE NVL(rr.IS_DELETED, 0) = 0 " +
@ -761,19 +761,19 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
"INNER JOIN SD_RIVER_B_H rb ON rb.STCD = day.STCD AND rb.STTP = 'ZQ' AND NVL(rb.IS_DELETED, 0) = 0 " + "INNER JOIN SD_RIVER_B_H rb ON rb.STCD = day.STCD AND rb.STTP = 'ZQ' AND NVL(rb.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = rb.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = rb.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = rb.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = rb.RSTCD " + ") rstSort ON rstSort.BASEID = rb.BASE_ID AND rstSort.STCD = rb.RSTCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = rb.STCD " + ") siteSort ON siteSort.BASEID = rb.BASE_ID AND siteSort.STCD = rb.STCD " +
"WHERE NVL(day.IS_DELETED, 0) = 0 "; "WHERE NVL(day.IS_DELETED, 0) = 0 ";
} }
@ -808,19 +808,19 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
"INNER JOIN SD_RIVER_B_H rb ON rb.STCD = drtp.STCD AND rb.STTP = 'ZQ' AND NVL(rb.IS_DELETED, 0) = 0 " + "INNER JOIN SD_RIVER_B_H rb ON rb.STCD = drtp.STCD AND rb.STTP = 'ZQ' AND NVL(rb.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = rb.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = rb.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " + "LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"LEFT JOIN MS_ALONG_B along ON along.RVCD = eng.HBRVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " + "LEFT JOIN MS_ALONG_B along ON along.BASEID = rb.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") rstSort ON rstSort.RVCD = eng.HBRVCD AND rstSort.STCD = rb.RSTCD " + ") rstSort ON rstSort.BASEID = rb.BASE_ID AND rstSort.STCD = rb.RSTCD " +
"LEFT JOIN ( " + "LEFT JOIN ( " +
" SELECT det.SORT, cfg.RVCD, det.STCD " + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " + " FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common' " +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = rb.STCD " + ") siteSort ON siteSort.BASEID = rb.BASE_ID AND siteSort.STCD = rb.STCD " +
"WHERE NVL(drtp.IS_DELETED, 0) = 0 "; "WHERE NVL(drtp.IS_DELETED, 0) = 0 ";
} }
@ -2419,11 +2419,11 @@ public class ZqMonitorServiceImpl implements ZqMonitorService {
"LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = eng.RVCD\n" + "LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = eng.RVCD\n" +
"LEFT JOIN SD_RIVER_B_H fh ON fh.STCD = rb.FHSTCD AND NVL(fh.IS_DELETED, 0) = 0\n" + "LEFT JOIN SD_RIVER_B_H fh ON fh.STCD = rb.FHSTCD AND NVL(fh.IS_DELETED, 0) = 0\n" +
"LEFT JOIN (\n" + "LEFT JOIN (\n" +
" SELECT det.SORT, cfg.RVCD, det.STCD\n" + " SELECT det.SORT,cfg.BASEID, cfg.RVCD, det.STCD\n" +
" FROM MS_ALONGDET_B det\n" + " FROM MS_ALONGDET_B det\n" +
" INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID\n" + " INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID\n" +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common'\n" + " WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common'\n" +
") siteSort ON siteSort.RVCD = eng.HBRVCD AND siteSort.STCD = rb.STCD\n" + ") siteSort ON siteSort.BASEID = rb.BASE_ID AND siteSort.STCD = rb.STCD\n" +
"WHERE NVL(rb.IS_DELETED, 0) = 0 AND rb.STTP = 'ZQ' AND rb.LGTD IS NOT NULL AND rb.LTTD IS NOT NULL "); "WHERE NVL(rb.IS_DELETED, 0) = 0 AND rb.STTP = 'ZQ' AND rb.LGTD IS NOT NULL AND rb.LTTD IS NOT NULL ");
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();

View File

@ -62,6 +62,7 @@ public class MapLegendController {
Page<MsMaplegendB> page = DataSourceRequestUtil.getPage(dataSourceRequest); Page<MsMaplegendB> page = DataSourceRequestUtil.getPage(dataSourceRequest);
Page<MsMaplegendB> resultPage; Page<MsMaplegendB> resultPage;
wrapper.eq("IS_DELETED", 0); wrapper.eq("IS_DELETED", 0);
wrapper.orderByDesc("ORDER_INDEX");
if (page != null) { if (page != null) {
resultPage = mapLegendService.page(page, wrapper); resultPage = mapLegendService.page(page, wrapper);
} else { } else {

View File

@ -3,6 +3,8 @@ package com.yfd.platform.qgc_sys.mapLayer.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yfd.platform.qgc_sys.mapLayer.domain.MsMaplegendB; import com.yfd.platform.qgc_sys.mapLayer.domain.MsMaplegendB;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
/** /**
* 地图图例表 Mapper 接口 * 地图图例表 Mapper 接口
@ -11,4 +13,10 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface MsMaplegendBMapper extends BaseMapper<MsMaplegendB> { public interface MsMaplegendBMapper extends BaseMapper<MsMaplegendB> {
/**
* 修改图例名称解决Oracle/m³变成m3的问题
*/
@Update("UPDATE MS_MAPLEGEND_B SET NAME = #{name} WHERE ID = #{id}")
void updateModelName(@Param("id") String id, @Param("name") String name);
} }

View File

@ -13,9 +13,11 @@ import com.yfd.platform.qgc_sys.mapLayer.mapper.MsMapmoduleBMapper;
import com.yfd.platform.qgc_sys.mapLayer.service.IMapLegendService; import com.yfd.platform.qgc_sys.mapLayer.service.IMapLegendService;
import com.yfd.platform.utils.SecurityUtils; import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -31,6 +33,12 @@ public class MapLegendServiceImpl extends ServiceImpl<MsMaplegendBMapper, MsMapl
@Resource @Resource
private MsMapmoduleBMapper msMapmoduleBMapper; private MsMapmoduleBMapper msMapmoduleBMapper;
@Value("${spring.datasource.druid.master.driverClassName}")
private String jdbcDriver;
@Value("${spring.datasource.druid.slave.driverClassName}")
private String slaveJdbcDriver;
@Override @Override
public void delelteByIds(List<String> ids) { public void delelteByIds(List<String> ids) {
if (CollectionUtil.isEmpty(ids)) { if (CollectionUtil.isEmpty(ids)) {
@ -101,13 +109,20 @@ public class MapLegendServiceImpl extends ServiceImpl<MsMaplegendBMapper, MsMapl
@Override @Override
public boolean saveOrUpdate(MsMaplegendB legend) { public boolean saveOrUpdate(MsMaplegendB legend) {
// 修改: 不能有编码一样的数据
if (hasSameCode(legend)) { if (hasSameCode(legend)) {
throw new BizException("存在相同编码的数据"); throw new BizException("存在相同编码的数据");
} }
if (StrUtil.isNotBlank(legend.getId())) { if (StrUtil.isNotBlank(legend.getId())) {
// 更新父级分组等
updateSetLegend(legend); updateSetLegend(legend);
legend.setModifyUser(SecurityUtils.getUserId());
legend.setModifyTime(new Date());
super.updateById(legend); super.updateById(legend);
// 对图例名称操作解决m³变成m3
updateModelName(legend);
} else { } else {
// 如果是新增数据,则必须有父级
if (legend.getDataType() == 2 && StrUtil.isBlank(legend.getParentId())) { if (legend.getDataType() == 2 && StrUtil.isBlank(legend.getParentId())) {
throw new BizException("请先创建图例父级结构再添加数据."); throw new BizException("请先创建图例父级结构再添加数据.");
} }
@ -119,22 +134,32 @@ public class MapLegendServiceImpl extends ServiceImpl<MsMaplegendBMapper, MsMapl
legend.setOrderIndex(maxOrderIndex + 1); legend.setOrderIndex(maxOrderIndex + 1);
MsMaplegendB parentLegend = null; MsMaplegendB parentLegend = null;
if (StrUtil.isNotBlank(legend.getParentId())) { if (StrUtil.isNotBlank(legend.getParentId())) {
// 获取父级信息
parentLegend = this.getById(legend.getParentId()); parentLegend = this.getById(legend.getParentId());
if (parentLegend == null) { if (parentLegend == null) {
throw new BizException("获取父级图例信息失败.请检查父级图例(parentId)是否存在."); throw new BizException("获取父级图例信息失败.请检查父级图例(parentId)是否存在.");
} }
// 设置fullPath
legend.setFullPath(parentLegend.getFullPath() + legend.getId() + ","); legend.setFullPath(parentLegend.getFullPath() + legend.getId() + ",");
legend.setTreeLevel(parentLegend.getTreeLevel() + 1); // 设置treeLevel
Integer parentLevel = parentLegend.getTreeLevel();
int newLevel = (parentLevel != null) ? parentLevel + 1 : 1; // 如果父级为空则从1开始
legend.setTreeLevel(newLevel);
// 设置hasChildren
legend.setHasChildren(0); legend.setHasChildren(0);
} else { } else {
// 无父级,则为创建的顶级图例
legend.setTreeLevel(1); legend.setTreeLevel(1);
legend.setFullPath(legend.getId() + ","); legend.setFullPath(legend.getId() + ",");
legend.setHasChildren(0); legend.setHasChildren(0);
} }
if (legend.getDataType() == 1) { if (legend.getDataType() == 1) {
// 为结构的时候,groupName,parentName 等于自己
legend.setGroupName(legend.getName()); legend.setGroupName(legend.getName());
legend.setParentName(legend.getName()); legend.setParentName(legend.getName());
} else { } else {
// 为数据的时候,groupName 取二级名称,parentName 取一级名称
// (暂时只有2级结构,如果没有二级,groupName和parentName一样,都取一级名称)
String fullPath = parentLegend.getFullPath(); String fullPath = parentLegend.getFullPath();
if (StrUtil.isNotBlank(fullPath)) { if (StrUtil.isNotBlank(fullPath)) {
String[] path = fullPath.split(","); String[] path = fullPath.split(",");
@ -155,18 +180,24 @@ public class MapLegendServiceImpl extends ServiceImpl<MsMaplegendBMapper, MsMapl
if (parentLegend != null && StrUtil.isBlank(legend.getLayerCode())) { if (parentLegend != null && StrUtil.isBlank(legend.getLayerCode())) {
legend.setLayerCode(parentLegend.getLayerCode()); legend.setLayerCode(parentLegend.getLayerCode());
} }
// 设置是否显示
legend.setIfShow(0); legend.setIfShow(0);
// 设置是否内置
legend.setInternal(0); legend.setInternal(0);
// 设置启用
legend.setEnable(0); legend.setEnable(0);
legend.setRecordUser(SecurityUtils.getUserId()); legend.setRecordUser(SecurityUtils.getUserId());
legend.setModifyUser(SecurityUtils.getUserId()); legend.setModifyUser(SecurityUtils.getUserId());
this.save(legend); this.save(legend);
// 新增完成后,设置父级hasChildren为1
if (parentLegend != null) { if (parentLegend != null) {
MsMaplegendB temp = new MsMaplegendB(); MsMaplegendB temp = new MsMaplegendB();
temp.setId(parentLegend.getId()); temp.setId(parentLegend.getId());
temp.setHasChildren(1); temp.setHasChildren(1);
this.updateById(temp); this.updateById(temp);
} }
// 对图例名称操作解决m³变成m3
updateModelName(legend);
} }
return true; return true;
} }
@ -237,4 +268,27 @@ public class MapLegendServiceImpl extends ServiceImpl<MsMaplegendBMapper, MsMapl
.list(); .list();
return !CollectionUtil.isEmpty(list) && !list.get(0).getId().equals(legend.getId()); return !CollectionUtil.isEmpty(list) && !list.get(0).getId().equals(legend.getId());
} }
/**
* 修改图例名称解决Oracle/m³变成m3的问题
*/
public void updateModelName(MsMaplegendB legend) {
if (StrUtil.isNotBlank(legend.getName())) {
String jdbcDriver = this.jdbcDriver;
if (jdbcDriver != null &&
(jdbcDriver.toLowerCase().contains("oracle")
|| jdbcDriver.toLowerCase().contains("dm")
|| jdbcDriver.toLowerCase().contains("kingbase8"))) {
String name = legend.getName();
if (name.contains("")) {
name = name.replace("", "m\\00b3");
}
if (name.contains("")) {
name = name.replace("", "m\\00b2");
}
legend.setName(name);
this.baseMapper.updateModelName(legend.getId(), legend.getName());
}
}
}
} }

View File

@ -3,6 +3,7 @@ package com.yfd.platform.qgc_sys.mapcfg.controller;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.common.DataSourceLoadOptionsBase; import com.yfd.platform.common.DataSourceLoadOptionsBase;
import com.yfd.platform.common.DataSourceRequest; import com.yfd.platform.common.DataSourceRequest;
@ -175,12 +176,23 @@ public class MapmoduleBController {
layerModule.setChildNode(mapmoduleB.getChildNode()); layerModule.setChildNode(mapmoduleB.getChildNode());
layerModule.setMultiSelect(mapmoduleB.getMultiSelect()); layerModule.setMultiSelect(mapmoduleB.getMultiSelect());
layerModule.setCanBeChecked(mapmoduleB.getCanBeChecked()); layerModule.setCanBeChecked(mapmoduleB.getCanBeChecked());
layerModule.setChecked(mapmoduleB.getChecked()); // 判断mapmoduleB.getChecked() 如果是空则默认为1
layerModule.setChecked(mapmoduleB.getChecked() == null ? 1 : mapmoduleB.getChecked());
layerModule.setDescription(mapmoduleB.getDescription()); layerModule.setDescription(mapmoduleB.getDescription());
layerModule.setEnable(mapmoduleB.getEnable()); layerModule.setEnable(mapmoduleB.getEnable());
layerModule.setOrderIndex(mapmoduleB.getOrderIndex()); layerModule.setOrderIndex(mapmoduleB.getOrderIndex());
layerModule.setFilterContent(mapmoduleB.getFilterContent()); layerModule.setFilterContent(mapmoduleB.getFilterContent());
mapmoduleBService.saveOrUpdate(layerModule); mapmoduleBService.saveOrUpdate(layerModule);
}else if(count ==1){
// 走图层修改逻辑
LambdaUpdateWrapper<MsMapmoduleB> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(MsMapmoduleB::getModuleId, mapmoduleB.getModuleId());
updateWrapper.eq(MsMapmoduleB::getSystemId, mapmoduleB.getSystemId());
updateWrapper.eq(MsMapmoduleB::getResType, "layer");
updateWrapper.eq(MsMapmoduleB::getResId, layer.getId());
updateWrapper.eq(MsMapmoduleB::getIsDeleted, 0).set(MsMapmoduleB::getChecked, mapmoduleB.getChecked());
mapmoduleBService.update(updateWrapper);
} }
} }
} }