fix: 优化代码bug
This commit is contained in:
parent
b19db9e8d2
commit
7095dd459e
@ -13,7 +13,7 @@ import java.util.Map;
|
||||
public class EngStInfoResultVo {
|
||||
|
||||
@Schema(description = "主信息兼容对象")
|
||||
private Map<String, Object> msStbprpT = new LinkedHashMap<>();
|
||||
private EngVmsstbprptVo msStbprpT;
|
||||
|
||||
@Schema(description = "测值列表")
|
||||
private List<Object> stcdValVoList = new ArrayList<>();
|
||||
|
||||
@ -14,8 +14,12 @@ public class EngVmsstbprptVo implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String id;
|
||||
private String sttp;
|
||||
private String sttpCode;
|
||||
private String sttpName;
|
||||
private String sttpFullPath;
|
||||
private String sttpTreeLevel;
|
||||
private String rvcdFullPath;
|
||||
private String stcd;
|
||||
private String stnm;
|
||||
private String ennm;
|
||||
|
||||
@ -80,7 +80,7 @@ public interface ISdEngInfoBHService extends IService<SdEngInfoBH> {
|
||||
|
||||
List<SdEngInfoBH> selectRegDropdown(SdEngInfoBHRequest sdEngInfoBHRequest);
|
||||
|
||||
EngBaseInfoVo getStInfoByStcd(String stcd);
|
||||
EngVmsstbprptVo getStInfoByStcd(String stcd);
|
||||
|
||||
EngStInfoResultVo getStcdInfo(String stcd);
|
||||
|
||||
|
||||
@ -1001,68 +1001,267 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
||||
}
|
||||
|
||||
@Override
|
||||
public EngBaseInfoVo getStInfoByStcd(String stcd) {
|
||||
SdEngInfoBH entity = this.getById(stcd);
|
||||
if (entity == null) {
|
||||
return null;
|
||||
}
|
||||
public EngVmsstbprptVo getStInfoByStcd(String stcd) {
|
||||
|
||||
EngBaseInfoVo vo = new EngBaseInfoVo();
|
||||
BeanUtil.copyProperties(entity, vo);
|
||||
vo.setId(entity.getStcd());
|
||||
vo.setStnm(entity.getEnnm());
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("SELECT *")
|
||||
|
||||
String sql = "SELECT " +
|
||||
"sttp.ID AS sttp, " +
|
||||
"sttp.STTP_CODE AS sttpCode, " +
|
||||
"sttp.STTP_NAME AS sttpName, " +
|
||||
.append(" FROM (")
|
||||
.append(buildVmsstbprptViewSqlNew())
|
||||
.append(") t WHERE 1 = 1 AND t.STCD = #{map.stcd}");
|
||||
EngVmsstbprptVo vo = microservicDynamicSQLMapper.getOneBySqlWithResultType(sql.toString(), Collections.singletonMap("stcd", stcd), EngVmsstbprptVo.class);
|
||||
// SdEngInfoBH entity = this.getById(stcd);
|
||||
// if (entity == null) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// EngBaseInfoVo vo = new EngBaseInfoVo();
|
||||
// BeanUtil.copyProperties(entity, vo);
|
||||
// vo.setId(entity.getStcd());
|
||||
// vo.setStnm(entity.getEnnm());
|
||||
//
|
||||
// String sql = "SELECT " +
|
||||
// "sttp.ID AS sttp, " +
|
||||
// "sttp.STTP_CODE AS sttpCode, " +
|
||||
// "sttp.STTP_NAME AS sttpName, " +
|
||||
// "sttp.FULL_PATH AS sttpFullPath, " +
|
||||
// "sttp.TREE_LEVEL AS sttpTreeLevel, " +
|
||||
// "hb.BASENAME AS baseName, " +
|
||||
// "hbrv.HBRVNM AS hbrvcdName, " +
|
||||
// "rv.RVNM AS rvcdName, " +
|
||||
// "rv.PATH AS rvcdFullPath, " +
|
||||
// "addv.ADDVNM AS addvcdName, " +
|
||||
// "addv.PATH AS addvcdFullPath, " +
|
||||
// "country.COUNTRY_NAME AS countryName, " +
|
||||
// "hy.HYNM AS hynm, " +
|
||||
// "topHy.HYNM AS topHynm " +
|
||||
// "FROM SD_ENGINFO_B_H eng " +
|
||||
// "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 = eng.BASE_ID " +
|
||||
// "LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID " +
|
||||
// " AND NVL(hbrv.ENABLED, 1) = 1 " +
|
||||
// "LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
|
||||
// "LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
|
||||
// "LEFT JOIN SD_COUNTRY_B country ON country.COUNTRY_ID = eng.COUNTRY AND NVL(country.ENABLED, 1) = 1 " +
|
||||
// "LEFT JOIN SD_HYCD_DIC hy ON hy.HYCD = eng.HYCD " +
|
||||
// "LEFT JOIN SD_HYCD_DIC topHy ON topHy.HYCD = eng.TOP_HYCD " +
|
||||
// "WHERE eng.STCD = #{map.stcd}";
|
||||
//
|
||||
// EngBaseInfoVo extra = microservicDynamicSQLMapper.getOneBySqlWithResultType(
|
||||
// sql, java.util.Collections.singletonMap("stcd", stcd), EngBaseInfoVo.class);
|
||||
// if (extra != null) {
|
||||
// BeanUtil.copyProperties(extra, vo, CopyOptions.create().setIgnoreNullValue(true));
|
||||
// }
|
||||
//
|
||||
// vo.setSttpCode("ENG");
|
||||
// vo.setBlprdCode(entity.getBlprd() == null ? null : String.valueOf(entity.getBlprd()));
|
||||
// vo.setBlprdCcode(entity.getBlprd() == null ? null : String.valueOf(entity.getBlprd()));
|
||||
// vo.setBlprdName(resolveBlprdName(entity.getBlprd()));
|
||||
// vo.setBlprdCname(vo.getBlprdName());
|
||||
// vo.setDtinName(resolveDtinName(entity.getDtin()));
|
||||
// vo.setBldsttName(resolveBldsttName(entity.getBldstt()));
|
||||
// vo.setBldsttCcode(entity.getBldsttCode() == null ? null : String.valueOf(entity.getBldsttCode()));
|
||||
// vo.setBldsttCcodeName(resolveBldsttCodeName(entity.getBldsttCode()));
|
||||
// vo.setDvtpName(resolveDvtpName(entity.getDvtp()));
|
||||
// vo.setRgcpName(resolveRgcpName(entity.getRgcp()));
|
||||
// vo.setEngtpName(resolveEngtpName(entity.getEngtp()));
|
||||
// vo.setPrscName(resolvePrscName(entity.getPrsc()));
|
||||
// vo.setScrscName(resolveScrscName(entity.getScrsc()));
|
||||
// vo.setPrgrName(resolvePrgrName(entity.getPrgr()));
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private String buildVmsstbprptViewSqlNew() {
|
||||
return "SELECT " +
|
||||
"eng.STCD AS id, " +
|
||||
"'ENG' AS sttpCode, " +
|
||||
"sttp.FULL_PATH AS sttpFullPath, " +
|
||||
"sttp.TREE_LEVEL AS sttpTreeLevel, " +
|
||||
"sttp.ID AS sttp, " +
|
||||
"'电站' AS sttpName, " +
|
||||
"eng.STCD AS stcd, " +
|
||||
"eng.ENNM AS stnm, " +
|
||||
"eng.LGTD AS lgtd, " +
|
||||
"eng.LTTD AS lttd, " +
|
||||
"eng.REACHCD AS reachcd, " +
|
||||
"eng.REACHCD_NAME AS reachcdName, " +
|
||||
"eng.ENNM AS ennm, " +
|
||||
"eng.BASE_ID AS baseId, " +
|
||||
"hb.BASENAME AS baseName, " +
|
||||
"eng.HBRVCD AS hbrvcd, " +
|
||||
"hbrv.HBRVNM AS hbrvcdName, " +
|
||||
"eng.RVCD AS rvcd, " +
|
||||
"rv.RVNM AS rvcdName, " +
|
||||
"rv.PATH AS rvcdFullPath, " +
|
||||
"addv.ADDVNM AS addvcdName, " +
|
||||
"addv.PATH AS addvcdFullPath, " +
|
||||
"country.COUNTRY_NAME AS countryName, " +
|
||||
"hy.HYNM AS hynm, " +
|
||||
"topHy.HYNM AS topHynm " +
|
||||
"topHy.HYNM AS topHynm, " +
|
||||
"hy.HYCD AS hycd, " +
|
||||
"topHy.HYCD AS topHycd, " +
|
||||
"eng.STLC AS stlc, " +
|
||||
"eng.JCDT AS jcdt, " +
|
||||
"eng.PIODT AS piodt, " +
|
||||
"eng.AIODT AS aiodt, " +
|
||||
"eng.BLDSTT AS bldstt, " +
|
||||
"eng.BLDSTT_CODE AS bldsttCcode, " +
|
||||
"CASE " +
|
||||
" WHEN eng.BLDSTT_CODE = 0 OR eng.BLDSTT_CODE IS NULL THEN '未建/规划' " +
|
||||
" WHEN eng.BLDSTT_CODE = 1 THEN '在建' " +
|
||||
" WHEN eng.BLDSTT_CODE = 2 THEN '已建' " +
|
||||
" ELSE NULL END AS bldsttCcodeName, " +
|
||||
"eng.NRUPAR AS nrupar, " +
|
||||
"eng.DSTCRVR AS dstcrvr, " +
|
||||
"eng.AVYRP AS avyrp, " +
|
||||
"eng.AVW AS avw, " +
|
||||
"eng.AVQ AS avq, " +
|
||||
"eng.AVQ01 AS avq01, " +
|
||||
"eng.AVQ02 AS avq02, " +
|
||||
"eng.AVQ03 AS avq03, " +
|
||||
"eng.AVQ04 AS avq04, " +
|
||||
"eng.AVQ05 AS avq05, " +
|
||||
"eng.AVQ06 AS avq06, " +
|
||||
"eng.AVQ07 AS avq07, " +
|
||||
"eng.AVQ08 AS avq08, " +
|
||||
"eng.AVQ09 AS avq09, " +
|
||||
"eng.AVQ10 AS avq10, " +
|
||||
"eng.AVQ11 AS avq11, " +
|
||||
"eng.AVQ12 AS avq12, " +
|
||||
"rbh.OBMXQ AS obmxq, " +
|
||||
"rbh.OBMNQ AS obmnq, " +
|
||||
"rbh.HMXQ AS hmxq, " +
|
||||
"eng.DSNFQFRQ AS dsnfqfrq, " +
|
||||
"eng.DSRCIN AS dsrcin, " +
|
||||
"eng.CKFQFQR AS ckfqfqr, " +
|
||||
"eng.CHRCIN AS chrcin, " +
|
||||
"eng.OBMXW3 AS obmxw3, " +
|
||||
"eng.DSW3 AS dsw3, " +
|
||||
"eng.CKW3 AS ckw3, " +
|
||||
"eng.AVSD AS avsd, " +
|
||||
"eng.AVS AS avs, " +
|
||||
"rbh.OBMXS AS obmxs, " +
|
||||
"rbh.CKFLZ AS ckflz, " +
|
||||
"rbh.DSFLZ AS dsflz, " +
|
||||
"rbh.NORMZ AS normz, " +
|
||||
"rbh.UZFC AS uzfc, " +
|
||||
"eng.FSLTDZ AS fsltdz, " +
|
||||
"eng.YDOWNZ AS ydownz, " +
|
||||
"rbh.DDZ AS ddz, " +
|
||||
"eng.NRZAR AS nrzar, " +
|
||||
"eng.BCKLEN AS bcklen, " +
|
||||
"rbh.TTCP AS ttcp, " +
|
||||
"rbh.NMZCP AS nmzcp, " +
|
||||
"b.VAL AS fldcpStr, " +
|
||||
"rbh.ACTCP AS actcp, " +
|
||||
"rbh.DDCP AS ddcp, " +
|
||||
"eng.CPSC AS cpsc, " +
|
||||
"eng.PRSC AS prsc, " +
|
||||
"eng.RGCP AS rgcp, " +
|
||||
"CASE eng.RGCP " +
|
||||
" WHEN '1' THEN '多年调节' " +
|
||||
" WHEN '2' THEN '年调节' " +
|
||||
" WHEN '3' THEN '不完全年调节' " +
|
||||
" WHEN '4' THEN '径流式(无调节)' " +
|
||||
" WHEN '5' THEN '季调节' " +
|
||||
" WHEN '6' THEN '月调节' " +
|
||||
" WHEN '7' THEN '周调节' " +
|
||||
" WHEN '8' THEN '日调节' " +
|
||||
" WHEN '9' THEN '其他' " +
|
||||
" ELSE NULL END AS rgcpName, " +
|
||||
"eng.DSMXQ AS dsflzmxq, " +
|
||||
"rbh.DSFLZXYZ AS dsflzxyz, " +
|
||||
"eng.CHMXQ AS ckflzmxq, " +
|
||||
"rbh.CKFLZXYZ AS ckflzxyz, " +
|
||||
"rbh.KSQADJQ AS ksqadjq, " +
|
||||
"rbh.KSQXYZ AS ksqxyz, " +
|
||||
"eng.GEMAXRQ AS gemaxrq, " +
|
||||
"rbh.MXGEQXYZ AS mxgeqxyz, " +
|
||||
"pwr.TTPWR AS ttpwr, " +
|
||||
"pwr.GNCNT AS gncnt, " +
|
||||
"eng.GNTP AS gntp, " +
|
||||
"pwr.GRNTPWR AS grntpwr, " +
|
||||
"pwr.YRGE AS yrge, " +
|
||||
"pwr.USHR AS ushr, " +
|
||||
"pwr.K AS k, " +
|
||||
"eng.DMTP AS dmtp, " +
|
||||
"eng.DMCREL AS dmcrel, " +
|
||||
"eng.MXDMHG AS mxdmhg, " +
|
||||
"eng.DMLEN AS dmlen, " +
|
||||
"pwr.SGYGE AS sgyge, " +
|
||||
"UNYGE AS unyge, " +
|
||||
"eng.GAP AS gap, " +
|
||||
"eng.DVTP AS dvtp, " +
|
||||
"CASE eng.DVTP " +
|
||||
" WHEN '1' THEN '堤坝式' " +
|
||||
" WHEN '2' THEN '引水式' " +
|
||||
" WHEN '3' THEN '混合式' " +
|
||||
" ELSE NULL END AS dvtpName, " +
|
||||
"eng.DTIN AS dtin, " +
|
||||
"eng.RUN_STATE AS runSTATE, " +
|
||||
"eng.DTIN_ENV AS dtinEnv, " +
|
||||
"CASE NVL(eng.DTIN, 0) " +
|
||||
" WHEN 0 THEN '否' " +
|
||||
" WHEN 1 THEN '是' " +
|
||||
" ELSE NULL END AS dtinName, " +
|
||||
"NVL(hb.ORDER_INDEX, 999999) AS baseStepSort, " +
|
||||
"NVL(along.ORDER_INDEX, 999999) AS rvcdStepSort, " +
|
||||
"NVL(rstSort.SORT, 999999) AS rstcdStepSort, " +
|
||||
"NVL(siteSort.SORT, 999999) AS siteStepSort " +
|
||||
"FROM SD_ENGINFO_B_H eng " +
|
||||
"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 = eng.BASE_ID " +
|
||||
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
|
||||
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID " +
|
||||
" AND NVL(hbrv.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_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
|
||||
"LEFT JOIN SD_COUNTRY_B country ON country.COUNTRY_ID = eng.COUNTRY AND NVL(country.ENABLED, 1) = 1 " +
|
||||
"LEFT JOIN SD_HYCD_DIC hy ON hy.HYCD = eng.HYCD " +
|
||||
"LEFT JOIN SD_HYCD_DIC topHy ON topHy.HYCD = eng.TOP_HYCD " +
|
||||
"WHERE eng.STCD = #{map.stcd}";
|
||||
|
||||
EngBaseInfoVo extra = microservicDynamicSQLMapper.getOneBySqlWithResultType(
|
||||
sql, java.util.Collections.singletonMap("stcd", stcd), EngBaseInfoVo.class);
|
||||
if (extra != null) {
|
||||
BeanUtil.copyProperties(extra, vo, CopyOptions.create().setIgnoreNullValue(true));
|
||||
}
|
||||
|
||||
vo.setSttpCode("ENG");
|
||||
vo.setBlprdCode(entity.getBlprd() == null ? null : String.valueOf(entity.getBlprd()));
|
||||
vo.setBlprdCcode(entity.getBlprd() == null ? null : String.valueOf(entity.getBlprd()));
|
||||
vo.setBlprdName(resolveBlprdName(entity.getBlprd()));
|
||||
vo.setBlprdCname(vo.getBlprdName());
|
||||
vo.setDtinName(resolveDtinName(entity.getDtin()));
|
||||
vo.setBldsttName(resolveBldsttName(entity.getBldstt()));
|
||||
vo.setBldsttCcode(entity.getBldsttCode() == null ? null : String.valueOf(entity.getBldsttCode()));
|
||||
vo.setBldsttCcodeName(resolveBldsttCodeName(entity.getBldsttCode()));
|
||||
vo.setDvtpName(resolveDvtpName(entity.getDvtp()));
|
||||
vo.setRgcpName(resolveRgcpName(entity.getRgcp()));
|
||||
vo.setEngtpName(resolveEngtpName(entity.getEngtp()));
|
||||
vo.setPrscName(resolvePrscName(entity.getPrsc()));
|
||||
vo.setScrscName(resolveScrscName(entity.getScrsc()));
|
||||
vo.setPrgrName(resolvePrgrName(entity.getPrgr()));
|
||||
return vo;
|
||||
"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_PWR_B_H pwr ON pwr.STCD = eng.STCD AND NVL(pwr.IS_DELETED, 0) = 0 " +
|
||||
"LEFT JOIN SD_RSVRFCCH_B_H rbh ON rbh.STCD = eng.STCD " +
|
||||
"LEFT JOIN ( SELECT STCD\n" +
|
||||
" , MAX(CASE WHEN RN = 1 THEN TM END) AS TM\n" +
|
||||
" , MAX(CASE WHEN RN = 1 THEN VAL END) AS VAL\n" +
|
||||
" , MAX(VLSR) AS VLSR\n" +
|
||||
" , MAX(VLSR_TM) AS VLSR_TM\n" +
|
||||
" , LISTAGG('起始时间' || TO_CHAR(TM, 'YYYY-MM-DD') || '(' || VAL || ')' ||\n" +
|
||||
" CASE WHEN VLSR IS NOT NULL THEN '来源' || VLSR ELSE '' END ||\n" +
|
||||
" CASE WHEN VLSR_TM IS NOT NULL THEN ',来源时间' || TO_CHAR(VLSR_TM, 'YYYY-MM-DD') ELSE '' END,\n" +
|
||||
" CHR(10)) WITHIN GROUP (ORDER BY TM DESC) AS ALL_VAL\n" +
|
||||
" FROM ( SELECT STCD\n" +
|
||||
" , TM\n" +
|
||||
" , MAX(VLSR) AS VLSR\n" +
|
||||
" , MAX(VLSR_TM) AS VLSR_TM\n" +
|
||||
" , LISTAGG(\n" +
|
||||
" SUBSTR(BGMD, 0, 2) || '月' || SUBSTR(BGMD, 3, 2) || '日' || '~' || SUBSTR(EDMD, 0, 2) || '月' ||\n" +
|
||||
" SUBSTR(EDMD, 3, 2) || '日' || '限值为' ||\n" +
|
||||
" (CASE WHEN FLDCPMN IS NOT NULL THEN (DECODE(SUBSTR(FLDCPMN, 1, 1), '.', '0' || FLDCPMN, FLDCPMN) ||\n" +
|
||||
" '~' || DECODE(SUBSTR(FLDCP, 1, 1), '.', '0' || FLDCP, FLDCP))\n" +
|
||||
" ELSE TO_CHAR(FLDCP) END), ',') WITHIN GROUP (ORDER BY BGMD) AS VAL\n" +
|
||||
" , ROW_NUMBER() OVER (PARTITION BY STCD ORDER BY TM DESC) RN\n" +
|
||||
" FROM SD_RSVRFSR_B\n" +
|
||||
" WHERE BGMD IS NOT NULL\n" +
|
||||
" AND EDMD IS NOT NULL\n" +
|
||||
" AND FLDCPMN IS NOT NULL\n" +
|
||||
" AND FLDCPMN > 0\n" +
|
||||
" GROUP BY STCD, TM ) temp\n" +
|
||||
" GROUP BY STCD) b ON b.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 ( " +
|
||||
" 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 = eng.BASE_ID AND rstSort.STCD = eng.STCD " +
|
||||
"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 = eng.BASE_ID AND siteSort.STCD = eng.STCD " +
|
||||
"WHERE NVL(eng.IS_DELETED, 0) = 0 ";
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1070,27 +1269,27 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
||||
if (StrUtil.isBlank(stcd)) {
|
||||
return null;
|
||||
}
|
||||
EngVmsstbprptVo baseInfo = getStInfoByStcd(stcd);
|
||||
if (baseInfo == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Map<String, Object> stInfoMap = microservicDynamicSQLMapper.getOneBySql(buildStcdInfoViewSql(), Collections.singletonMap("stcd", stcd));
|
||||
if (stInfoMap != null && !stInfoMap.isEmpty()) {
|
||||
EngStInfoResultVo result = new EngStInfoResultVo();
|
||||
result.setMsStbprpT(buildCamelCaseMsStbprpTMap(stInfoMap));
|
||||
result.setMsStbprpT(baseInfo);
|
||||
result.setStBaseInfo(buildStBaseInfo(stInfoMap));
|
||||
return result;
|
||||
}
|
||||
|
||||
EngBaseInfoVo baseInfo = getStInfoByStcd(stcd);
|
||||
if (baseInfo == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
EngStBaseInfoVo stBaseInfo = new EngStBaseInfoVo();
|
||||
stBaseInfo.setStcd(baseInfo.getStcd());
|
||||
stBaseInfo.setStnm(baseInfo.getStnm());
|
||||
stBaseInfo.setSttpCode(baseInfo.getSttpCode());
|
||||
stBaseInfo.setSttpName(baseInfo.getSttpName());
|
||||
stBaseInfo.setSttpFullPath(baseInfo.getSttpFullPath());
|
||||
stBaseInfo.setSttpTreeLevel(baseInfo.getSttpTreeLevel());
|
||||
// stBaseInfo.setSttpFullPath(baseInfo.getSttpFullPath());
|
||||
// stBaseInfo.setSttpTreeLevel(baseInfo.getSttpTreeLevel());
|
||||
stBaseInfo.setStCode(null);
|
||||
stBaseInfo.setStName(null);
|
||||
stBaseInfo.setBaseId(baseInfo.getBaseId());
|
||||
@ -1340,7 +1539,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
||||
"rbh.KSQXYZ AS ksqxyz, " +
|
||||
"eng.GEMAXRQ AS gemaxrq, " +
|
||||
"rbh.MXGEQXYZ AS mxgeqxyz, " +
|
||||
"eng.YRGEB AS ttpwr, " +
|
||||
"pwr.TTPWR AS ttpwr, " +
|
||||
"pwr.GNCNT AS gncnt, " +
|
||||
"eng.GNTP AS gntp, " +
|
||||
"pwr.GRNTPWR AS grntpwr, " +
|
||||
@ -3120,7 +3319,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
||||
"eng.LGTD AS lgtd, " +
|
||||
"eng.LTTD AS lttd, " +
|
||||
"eng.ELEV AS dtmel, " +
|
||||
"eng.YRGEB AS ttpwr, " +
|
||||
"pwr.TTPWR AS ttpwr, " +
|
||||
"'ENG' AS sttpMap, " +
|
||||
"CASE WHEN eng.PRSC IN (1, 2) THEN 1 WHEN eng.PRSC = 3 THEN 2 END AS endInstalledType, " +
|
||||
"CASE " +
|
||||
@ -3138,6 +3337,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
||||
"NVL(rstSort.SORT, 999999) AS rstcdStepSort, " +
|
||||
"NVL(siteSort.SORT, 999999) AS siteStepSort " +
|
||||
"FROM SD_ENGINFO_B_H eng " +
|
||||
"LEFT JOIN SD_PWR_B_H pwr ON pwr.STCD = eng.STCD AND NVL(pwr.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.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
|
||||
"LEFT JOIN ( " +
|
||||
|
||||
@ -1138,7 +1138,7 @@ public class WarnDataServiceImpl implements WarnDataService {
|
||||
"eng.LGTD AS lgtd, " +
|
||||
"eng.LTTD AS lttd, " +
|
||||
"eng.ELEV AS dtmel, " +
|
||||
"eng.YRGEB AS ttpwr, " +
|
||||
"pwr.TTPWR AS ttpwr, " +
|
||||
"'ENG' AS sttpMap, " +
|
||||
"CASE WHEN eng.PRSC IN (1, 2) THEN 1 WHEN eng.PRSC = 3 THEN 2 END AS endInstalledType, " +
|
||||
"CASE " +
|
||||
@ -1153,6 +1153,7 @@ public class WarnDataServiceImpl implements WarnDataService {
|
||||
"NVL(rstSort.SORT, 999999) AS rstcdStepSort, " +
|
||||
"NVL(siteSort.SORT, 999999) AS siteStepSort " +
|
||||
"FROM SD_ENGINFO_B_H eng " +
|
||||
"LEFT JOIN SD_PWR_B_H pwr ON pwr.STCD = eng.STCD AND NVL(pwr.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.BASEID = eng.BASE_ID AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 " +
|
||||
"LEFT JOIN ( " +
|
||||
|
||||
@ -1866,27 +1866,34 @@ public class QgcExportServiceImpl implements IQgcExportService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 按沿程排序测站
|
||||
* 按沿程排序测站(通过 STCD 匹配沿程配置表)
|
||||
*/
|
||||
private List<StationInfo> sortStationsByOrder(List<StationInfo> stations) {
|
||||
// 按 RSTCD 收集沿程排序
|
||||
List<String> rstcds = stations.stream().map(StationInfo::getRstcd).filter(Objects::nonNull).distinct().toList();
|
||||
if (rstcds.isEmpty()) return stations;
|
||||
// 收集所有测站的 STCD(沿程表匹配的是 STCD 测站编码)
|
||||
List<String> stcds = stations.stream().map(StationInfo::getStcd).filter(Objects::nonNull).distinct().toList();
|
||||
if (stcds.isEmpty()) return stations;
|
||||
|
||||
List<Map<String, Object>> orderList = msAlongdetBMapper.selectAlongSortOrder(rstcds);
|
||||
// 查询沿程排序(MS_ALONGDET_B.STCD + MS_ALONG_B.ORDER_INDEX)
|
||||
List<Map<String, Object>> orderList = msAlongdetBMapper.selectAlongSortOrder(stcds);
|
||||
Map<String, Integer> orderMap = new LinkedHashMap<>();
|
||||
for (Map<String, Object> m : orderList) {
|
||||
String rstcd = (String) m.get("RSTCD");
|
||||
Object sortObj = m.get("SORT");
|
||||
if (rstcd != null && sortObj instanceof Number) {
|
||||
orderMap.put(rstcd, ((Number) sortObj).intValue());
|
||||
String stcd = (String) m.get("STCD");
|
||||
Object orderObj = m.get("ORDER_INDEX");
|
||||
if (stcd != null && orderObj instanceof Number) {
|
||||
orderMap.put(stcd, ((Number) orderObj).intValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (orderMap.isEmpty()) {
|
||||
// 无沿程配置时按电站名称排序
|
||||
stations.sort(Comparator.comparing(s -> s.getEnnm() != null ? s.getEnnm() : s.getStnm() != null ? s.getStnm() : ""));
|
||||
return stations;
|
||||
}
|
||||
|
||||
List<StationInfo> sorted = new ArrayList<>(stations);
|
||||
sorted.sort((a, b) -> {
|
||||
Integer oa = orderMap.get(a.getRstcd());
|
||||
Integer ob = orderMap.get(b.getRstcd());
|
||||
Integer oa = orderMap.get(a.getStcd());
|
||||
Integer ob = orderMap.get(b.getStcd());
|
||||
if (oa != null && ob != null) return oa.compareTo(ob);
|
||||
if (oa != null) return -1;
|
||||
if (ob != null) return 1;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user