fix: 优化逻辑
This commit is contained in:
parent
59ff341aa0
commit
eb9fe31b31
@ -25,7 +25,7 @@ public class SdEngMonitorController {
|
|||||||
private ISdEngInfoBHService engInfoBHService;
|
private ISdEngInfoBHService engInfoBHService;
|
||||||
|
|
||||||
@GetMapping("/msstbprpt/getStInfoByStcd")
|
@GetMapping("/msstbprpt/getStInfoByStcd")
|
||||||
@Operation(summary = "根据站码查询单条电站基础数据")
|
@Operation(summary = "根据站码查询电站基础数据及关联站点列表")
|
||||||
public ResponseResult getStInfoByStcd(@RequestParam String stcd) {
|
public ResponseResult getStInfoByStcd(@RequestParam String stcd) {
|
||||||
return ResponseResult.successData(engInfoBHService.getStInfoByStcd(stcd));
|
return ResponseResult.successData(engInfoBHService.getStInfoByStcd(stcd));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,7 +19,7 @@ public class EngStInfoResultVo {
|
|||||||
private List<Object> stcdValVoList = new ArrayList<>();
|
private List<Object> stcdValVoList = new ArrayList<>();
|
||||||
|
|
||||||
@Schema(description = "关联列表")
|
@Schema(description = "关联列表")
|
||||||
private List<Object> relList = new ArrayList<>();
|
private List<EngStBaseInfoVo> relList = new ArrayList<>();
|
||||||
|
|
||||||
@Schema(description = "站点基础信息")
|
@Schema(description = "站点基础信息")
|
||||||
private EngStBaseInfoVo stBaseInfo;
|
private EngStBaseInfoVo stBaseInfo;
|
||||||
|
|||||||
@ -6,7 +6,9 @@ import lombok.Data;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Schema(description = "电站统计查询")
|
@Schema(description = "电站统计查询")
|
||||||
@ -246,4 +248,8 @@ public class EngVmsstbprptVo implements Serializable {
|
|||||||
private String bhhl;
|
private String bhhl;
|
||||||
/** 保护核心长度 */
|
/** 保护核心长度 */
|
||||||
private BigDecimal qxdbhhxcd;
|
private BigDecimal qxdbhhxcd;
|
||||||
|
|
||||||
|
@Schema(description = "关联列表")
|
||||||
|
private List<EngStBaseInfoVo> relList = new ArrayList<>();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -84,6 +84,8 @@ public interface ISdEngInfoBHService extends IService<SdEngInfoBH> {
|
|||||||
|
|
||||||
EngVmsstbprptVo getStInfoByStcd(String stcd);
|
EngVmsstbprptVo getStInfoByStcd(String stcd);
|
||||||
|
|
||||||
|
EngStInfoResultVo getStInfoResultByStcd(String stcd);
|
||||||
|
|
||||||
EngStInfoResultVo getStcdInfo(String stcd);
|
EngStInfoResultVo getStcdInfo(String stcd);
|
||||||
|
|
||||||
DataSourceResult<EngEiaapprovalVo> getEiaapprovalKendoList(DataSourceRequest dataSourceRequest);
|
DataSourceResult<EngEiaapprovalVo> getEiaapprovalKendoList(DataSourceRequest dataSourceRequest);
|
||||||
|
|||||||
@ -1023,9 +1023,41 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
|||||||
String sttpCode = checkResult != null ? (String) checkResult.get("STTP_CODE") : null;
|
String sttpCode = checkResult != null ? (String) checkResult.get("STTP_CODE") : null;
|
||||||
|
|
||||||
if (!"ENG".equals(sttpCode)) {
|
if (!"ENG".equals(sttpCode)) {
|
||||||
|
// 关联站点列表(站类全路径包含当前站点的其他站点)
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
paramMap.put("stcd", stcd);
|
||||||
|
|
||||||
|
String selectCols = "STCD AS stcd, STNM AS stnm, STTP_CODE AS sttpCode, STTP_NAME AS sttpName, " +
|
||||||
|
"STTP_FULL_PATH AS sttpFullPath, STTP_TREE_LEVEL AS sttpTreeLevel, " +
|
||||||
|
"BASE_ID AS baseId, BASE_NAME AS baseName, HBRVCD AS hbrvcd, " +
|
||||||
|
"HBRVCD_NAME AS hbrvcdName, RVCD AS rvcd, RVCD_NAME AS rvcdName ";
|
||||||
|
|
||||||
|
EngStInfoResultVo vo = new EngStInfoResultVo();
|
||||||
|
|
||||||
|
// 主站点基础信息
|
||||||
|
vo.setStBaseInfo(microservicDynamicSQLMapper.getOneBySqlWithResultType(
|
||||||
|
"SELECT " + selectCols +
|
||||||
|
"FROM V_MS_STBPRP_T " +
|
||||||
|
"WHERE STCD = #{map.stcd} AND NVL(IS_DELETED, 0) = 0",
|
||||||
|
paramMap,
|
||||||
|
EngStBaseInfoVo.class));
|
||||||
|
|
||||||
|
// 关联站点列表(站类全路径包含当前站点的其他站点)
|
||||||
|
List<EngStBaseInfoVo> relList = microservicDynamicSQLMapper.getAllListWithResultType(
|
||||||
|
"SELECT " + selectCols +
|
||||||
|
"FROM V_MS_STBPRP_T " +
|
||||||
|
"WHERE NVL(IS_DELETED, 0) = 0 " +
|
||||||
|
"AND ST_FULL_PATH LIKE CONCAT(CONCAT('%', #{map.stcd}), '%')",
|
||||||
|
paramMap,
|
||||||
|
EngStBaseInfoVo.class);
|
||||||
|
if (relList != null) {
|
||||||
|
vo.setRelList(relList);
|
||||||
|
}
|
||||||
// 非 ENG:直接从 V_MS_STBPRP_T 视图返回
|
// 非 ENG:直接从 V_MS_STBPRP_T 视图返回
|
||||||
String viewSql = "SELECT *,SWDT STSTDT FROM V_MS_STBPRP_T WHERE STCD = #{map.stcd} AND IS_DELETED = 0";
|
String viewSql = "SELECT *,SWDT STSTDT FROM V_MS_STBPRP_T WHERE STCD = #{map.stcd} AND IS_DELETED = 0";
|
||||||
return microservicDynamicSQLMapper.getOneBySqlWithResultType(viewSql, Collections.singletonMap("stcd", stcd), EngVmsstbprptVo.class);
|
EngVmsstbprptVo engVmsstbprptVo= microservicDynamicSQLMapper.getOneBySqlWithResultType(viewSql, Collections.singletonMap("stcd", stcd), EngVmsstbprptVo.class);
|
||||||
|
engVmsstbprptVo.setRelList(relList);
|
||||||
|
return engVmsstbprptVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ENG 走原有逻辑
|
// ENG 走原有逻辑
|
||||||
@ -1037,6 +1069,43 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
|||||||
return microservicDynamicSQLMapper.getOneBySqlWithResultType(sql.toString(), Collections.singletonMap("stcd", stcd), EngVmsstbprptVo.class);
|
return microservicDynamicSQLMapper.getOneBySqlWithResultType(sql.toString(), Collections.singletonMap("stcd", stcd), EngVmsstbprptVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EngStInfoResultVo getStInfoResultByStcd(String stcd) {
|
||||||
|
if (StrUtil.isBlank(stcd)) {
|
||||||
|
throw new BizException("站点编码(stcd)不能为空!");
|
||||||
|
}
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
paramMap.put("stcd", stcd);
|
||||||
|
|
||||||
|
String selectCols = "STCD AS stcd, STNM AS stnm, STTP_CODE AS sttpCode, STTP_NAME AS sttpName, " +
|
||||||
|
"STTP_FULL_PATH AS sttpFullPath, STTP_TREE_LEVEL AS sttpTreeLevel, " +
|
||||||
|
"BASE_ID AS baseId, BASE_NAME AS baseName, HBRVCD AS hbrvcd, " +
|
||||||
|
"HBRVCD_NAME AS hbrvcdName, RVCD AS rvcd, RVCD_NAME AS rvcdName ";
|
||||||
|
|
||||||
|
EngStInfoResultVo vo = new EngStInfoResultVo();
|
||||||
|
|
||||||
|
// 主站点基础信息
|
||||||
|
vo.setStBaseInfo(microservicDynamicSQLMapper.getOneBySqlWithResultType(
|
||||||
|
"SELECT " + selectCols +
|
||||||
|
"FROM V_MS_STBPRP_T " +
|
||||||
|
"WHERE STCD = #{map.stcd} AND NVL(IS_DELETED, 0) = 0",
|
||||||
|
paramMap,
|
||||||
|
EngStBaseInfoVo.class));
|
||||||
|
|
||||||
|
// 关联站点列表(站类全路径包含当前站点的其他站点)
|
||||||
|
List<EngStBaseInfoVo> relList = microservicDynamicSQLMapper.getAllListWithResultType(
|
||||||
|
"SELECT " + selectCols +
|
||||||
|
"FROM V_MS_STBPRP_T " +
|
||||||
|
"WHERE NVL(IS_DELETED, 0) = 0 " +
|
||||||
|
"AND ST_FULL_PATH LIKE CONCAT(CONCAT('%', #{map.stcd}), '%')",
|
||||||
|
paramMap,
|
||||||
|
EngStBaseInfoVo.class);
|
||||||
|
if (relList != null) {
|
||||||
|
vo.setRelList(relList);
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private String buildVmsstbprptViewSqlNew() {
|
private String buildVmsstbprptViewSqlNew() {
|
||||||
|
|||||||
@ -625,19 +625,19 @@ public class VdMonitorServiceImpl implements VdMonitorService {
|
|||||||
"src.STNM AS stnm, " +
|
"src.STNM AS stnm, " +
|
||||||
"src.MNTP AS mntp, " +
|
"src.MNTP AS mntp, " +
|
||||||
"src.STTP AS sttpCode, " +
|
"src.STTP AS sttpCode, " +
|
||||||
"sttp.STTP_NAME AS sttpName, " +
|
"src.STTP_NAME AS sttpName, " +
|
||||||
"sttp.FULL_PATH AS sttpFullPath, " +
|
"src.STTP_FULL_PATH AS sttpFullPath, " +
|
||||||
"src.RSTCD AS rstcd, " +
|
"src.RSTCD AS rstcd, " +
|
||||||
"eng.ENNM AS ennm, " +
|
"src.ENNM AS ennm, " +
|
||||||
"src.FHSTCD AS fhstcd, " +
|
"src.FHSTCD AS fhstcd, " +
|
||||||
"fh.STNM AS fhstnm, " +
|
"src.FHSTNM AS fhstnm, " +
|
||||||
"src.CSTCD AS stCode, " +
|
"src.STCODE AS stCode, " +
|
||||||
"cst.STNM AS stName, " +
|
"src.STNAME AS stName, " +
|
||||||
"NVL(eng.BASE_ID, src.BASE_ID) AS baseId, " +
|
"src.BASE_ID AS baseId, " +
|
||||||
"hb.BASENAME AS baseName, " +
|
"src.BASE_NAME AS baseName, " +
|
||||||
"NVL(eng.HBRVCD, src.HBRVCD) AS hbrvcd, " +
|
"src.HBRVCD AS hbrvcd, " +
|
||||||
"NVL(eng.RVCD, src.RVCD) AS rvcd, " +
|
"src.RVCD AS rvcd, " +
|
||||||
"NVL(eng.ADDVCD, src.ADDVCD) AS addvcd, " +
|
"src.ADDVCD AS addvcd, " +
|
||||||
"src.STLC AS stlc, " +
|
"src.STLC AS stlc, " +
|
||||||
"src.LGTD AS lgtd, " +
|
"src.LGTD AS lgtd, " +
|
||||||
"src.LTTD AS lttd, " +
|
"src.LTTD AS lttd, " +
|
||||||
@ -656,20 +656,12 @@ public class VdMonitorServiceImpl implements VdMonitorService {
|
|||||||
"src.VLSR AS vlsr, " +
|
"src.VLSR AS vlsr, " +
|
||||||
"src.VLSR_TM AS vlsrTm, " +
|
"src.VLSR_TM AS vlsrTm, " +
|
||||||
"src.URL AS url, " +
|
"src.URL AS url, " +
|
||||||
"CASE WHEN src.URL IS NULL THEN NULL WHEN INSTR(src.URL, 'm3u8') > 0 THEN 1 ELSE 0 END AS playWay, " +
|
"src.PLAYWAY AS playWay, " +
|
||||||
"NVL(hb.ORDER_INDEX, 999999) AS baseStepSort, " +
|
"NVL(src.BASESTEPSORT, 999999) AS baseStepSort, " +
|
||||||
"NVL(eng.ORDER_INDEX, 999999) AS rstcdStepSort, " +
|
"NVL(src.RSTCDSTEPSORT, 999999) AS rstcdStepSort, " +
|
||||||
"NVL(src.ORDER_INDEX, 999999) AS siteStepSort, " +
|
"NVL(src.SITESTEPSORT, 999999) AS siteStepSort, " +
|
||||||
"src.SOURCE_TABLE AS sourceTable " +
|
"src.SOURCE_TABLE AS sourceTable " +
|
||||||
"FROM (" +
|
"FROM V_MS_STBPRP_T src ";
|
||||||
buildVdDeviceBaseSql() +
|
|
||||||
") src " +
|
|
||||||
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = src.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
|
|
||||||
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = NVL(eng.BASE_ID, src.BASE_ID) AND NVL(hb.IS_DELETED, 0) = 0 " +
|
|
||||||
"LEFT JOIN SD_FHBT_B_H fh ON fh.STCD = src.FHSTCD AND NVL(fh.IS_DELETED, 0) = 0 " +
|
|
||||||
"LEFT JOIN (" + buildStationBaseSql() + ") cst ON cst.STCD = src.CSTCD " +
|
|
||||||
"LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = src.STTP " +
|
|
||||||
" AND NVL(sttp.IS_DELETED, 0) = 0 AND NVL(sttp.ENABLE, 1) = 1 ";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String buildVdTreeCoreSql() {
|
private String buildVdTreeCoreSql() {
|
||||||
@ -716,26 +708,32 @@ public class VdMonitorServiceImpl implements VdMonitorService {
|
|||||||
"WHERE base.STTP LIKE 'VD_%' ";
|
"WHERE base.STTP LIKE 'VD_%' ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private String buildVdDeviceBaseSql() {
|
private String buildVdDeviceBaseSql() {
|
||||||
return "SELECT vd.STCD, vd.STNM, vd.MNTP, vd.STTP, vd.LGTD, vd.LTTD, vd.ELEV, vd.STLC, " +
|
return "SELECT * FROM V_MS_STBPRP_T";
|
||||||
" vd.JCDT, vd.WDDT, vd.BLDSTT_CODE, vd.USFL, vd.DTIN, vd.STINDX, vd.RSTCD, vd.BASE_ID, " +
|
|
||||||
" vd.HBRVCD, vd.RVCD, vd.ADDVCD, vd.CSTCD, vd.FHSTCD, CAST(NULL AS VARCHAR2(3000)) AS INTRODUCE, " +
|
|
||||||
" CAST(NULL AS VARCHAR2(255)) AS LOGO, CAST(NULL AS VARCHAR2(1000)) AS INFFILE, " +
|
|
||||||
" vd.DTFRQCY, vd.REMARK, vd.VLSR, vd.VLSR_TM, vd.URL AS URL, vd.DEVICE_SERIAL, vd.ACCESS_WAY, " +
|
|
||||||
" vd.PROTOCOL, vd.QUALITY, vd.CONTROL_MODE, CAST(NULL AS NUMBER(8,0)) AS ORDER_INDEX, " +
|
|
||||||
" 'SD_VDINFO_B' AS SOURCE_TABLE " +
|
|
||||||
"FROM SD_VDINFO_B vd WHERE 1=1 " +
|
|
||||||
// " AND vd.STTP = 'VD_FP' "+
|
|
||||||
"UNION ALL " +
|
|
||||||
"SELECT sonar.STCD, sonar.STNM, sonar.MNTP, sonar.STTP, sonar.LGTD, sonar.LTTD, sonar.ELEV, sonar.STLC, " +
|
|
||||||
" sonar.JCDT, sonar.WDDT, sonar.BLDSTT_CODE, sonar.USFL, sonar.DTIN, sonar.STINDX, sonar.RSTCD, sonar.BASE_ID, " +
|
|
||||||
" sonar.HBRVCD, sonar.RVCD, sonar.ADDVCD, CAST(NULL AS VARCHAR2(36)) AS CSTCD, CAST(NULL AS VARCHAR2(36)) AS FHSTCD, " +
|
|
||||||
" sonar.INTRODUCE, sonar.LOGO, sonar.INFFILE, sonar.DTFRQCY, sonar.REMARK, sonar.VLSR, sonar.VLSR_TM, CAST(NULL AS VARCHAR2(512)) AS URL, " +
|
|
||||||
" CAST(NULL AS VARCHAR2(255)) AS DEVICE_SERIAL, CAST(NULL AS VARCHAR2(10)) AS ACCESS_WAY, " +
|
|
||||||
" CAST(NULL AS VARCHAR2(50)) AS PROTOCOL, CAST(NULL AS VARCHAR2(50)) AS QUALITY, CAST(NULL AS VARCHAR2(2048)) AS CONTROL_MODE, sonar.ORDER_INDEX, " +
|
|
||||||
" 'SD_SONAR_B_H' AS SOURCE_TABLE " +
|
|
||||||
"FROM SD_SONAR_B_H sonar WHERE NVL(sonar.IS_DELETED, 0) = 0 AND sonar.STTP IN ('VD_WVD', 'VD_SN') ";
|
|
||||||
}
|
}
|
||||||
|
//
|
||||||
|
// private String buildVdDeviceBaseSql() {
|
||||||
|
// return "SELECT vd.STCD, vd.STNM, vd.MNTP, vd.STTP, vd.LGTD, vd.LTTD, vd.ELEV, vd.STLC, " +
|
||||||
|
// " vd.JCDT, vd.WDDT, vd.BLDSTT_CODE, vd.USFL, vd.DTIN, vd.STINDX, vd.RSTCD, vd.BASE_ID, " +
|
||||||
|
// " vd.HBRVCD, vd.RVCD, vd.ADDVCD, vd.CSTCD, vd.FHSTCD, CAST(NULL AS VARCHAR2(3000)) AS INTRODUCE, " +
|
||||||
|
// " CAST(NULL AS VARCHAR2(255)) AS LOGO, CAST(NULL AS VARCHAR2(1000)) AS INFFILE, " +
|
||||||
|
// " vd.DTFRQCY, vd.REMARK, vd.VLSR, vd.VLSR_TM, vd.URL AS URL, vd.DEVICE_SERIAL, vd.ACCESS_WAY, " +
|
||||||
|
// " vd.PROTOCOL, vd.QUALITY, vd.CONTROL_MODE, CAST(NULL AS NUMBER(8,0)) AS ORDER_INDEX, " +
|
||||||
|
// " 'SD_VDINFO_B' AS SOURCE_TABLE " +
|
||||||
|
// "FROM SD_VDINFO_B vd WHERE 1=1 " +
|
||||||
|
//// " AND vd.STTP = 'VD_FP' "+
|
||||||
|
// "UNION ALL " +
|
||||||
|
// "SELECT sonar.STCD, sonar.STNM, sonar.MNTP, sonar.STTP, sonar.LGTD, sonar.LTTD, sonar.ELEV, sonar.STLC, " +
|
||||||
|
// " sonar.JCDT, sonar.WDDT, sonar.BLDSTT_CODE, sonar.USFL, sonar.DTIN, sonar.STINDX, sonar.RSTCD, sonar.BASE_ID, " +
|
||||||
|
// " sonar.HBRVCD, sonar.RVCD, sonar.ADDVCD, CAST(NULL AS VARCHAR2(36)) AS CSTCD, CAST(NULL AS VARCHAR2(36)) AS FHSTCD, " +
|
||||||
|
// " sonar.INTRODUCE, sonar.LOGO, sonar.INFFILE, sonar.DTFRQCY, sonar.REMARK, sonar.VLSR, sonar.VLSR_TM, CAST(NULL AS VARCHAR2(512)) AS URL, " +
|
||||||
|
// " CAST(NULL AS VARCHAR2(255)) AS DEVICE_SERIAL, CAST(NULL AS VARCHAR2(10)) AS ACCESS_WAY, " +
|
||||||
|
// " CAST(NULL AS VARCHAR2(50)) AS PROTOCOL, CAST(NULL AS VARCHAR2(50)) AS QUALITY, CAST(NULL AS VARCHAR2(2048)) AS CONTROL_MODE, sonar.ORDER_INDEX, " +
|
||||||
|
// " 'SD_SONAR_B_H' AS SOURCE_TABLE " +
|
||||||
|
// "FROM SD_SONAR_B_H sonar WHERE NVL(sonar.IS_DELETED, 0) = 0 AND sonar.STTP IN ('VD_WVD', 'VD_SN') ";
|
||||||
|
// }
|
||||||
|
|
||||||
private String buildVdPointCoreSql() {
|
private String buildVdPointCoreSql() {
|
||||||
return "SELECT " +
|
return "SELECT " +
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user