fix: 优化电站基本数据查询

This commit is contained in:
tangwei 2026-07-09 15:18:18 +08:00
parent 527eb5ea86
commit 1d120cd170

View File

@ -1009,6 +1009,18 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
@Override @Override
public EngStInfoResultVo getStcdInfo(String stcd) { public EngStInfoResultVo getStcdInfo(String stcd) {
if (StrUtil.isBlank(stcd)) {
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.setStBaseInfo(buildStBaseInfo(stInfoMap));
return result;
}
EngBaseInfoVo baseInfo = getStInfoByStcd(stcd); EngBaseInfoVo baseInfo = getStInfoByStcd(stcd);
if (baseInfo == null) { if (baseInfo == null) {
return null; return null;
@ -1035,6 +1047,132 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
return result; return result;
} }
private String buildStcdInfoViewSql() {
return "SELECT " +
"t.STCD AS stcd, " +
"t.ENNM AS ennm, " +
"t.STNM AS stnm, " +
"t.STTP AS sttp, " +
"t.STTP_CODE AS sttpCode, " +
"t.STTP_NAME AS sttpName, " +
"t.STTP_FULL_PATH AS sttpFullPath, " +
"t.STTP_TREE_LEVEL AS sttpTreeLevel, " +
"t.RSTCD AS rstcd, " +
"t.BASE_ID AS baseId, " +
"t.BASE_NAME AS baseName, " +
"t.HBRVCD AS hbrvcd, " +
"t.HBRVCD_NAME AS hbrvcdName, " +
"t.RVCD AS rvcd, " +
"t.RVCD_NAME AS rvcdName, " +
"t.ADDVCD AS addvcd, " +
"t.LGTD AS lgtd, " +
"t.LTTD AS lttd, " +
"t.STLC AS stlc, " +
"t.USFL AS usfl, " +
"t.DTIN AS dtin, " +
"t.DTIN_TM AS dtinTm, " +
"t.BLDSTT_CODE AS bldsttCode, " +
"t.INTRODUCE AS introduce, " +
"t.LOGO AS logo, " +
"t.INFFILE AS inffile, " +
"t.INV AS inv, " +
"t.INVINMN AS invinmn, " +
"t.STDSDT AS stdsdt, " +
"t.PSTSTDT AS pststdt, " +
"t.PESSTDT AS pesstdt, " +
"t.SWDT AS swdt, " +
"t.JCDT AS jcdt, " +
"t.WDDT AS wddt, " +
"t.ORDER_INDEX AS orderIndex, " +
"t.REMARK AS remark, " +
"t.VLSR AS vlsr, " +
"t.VLSR_TM AS vlsrTm, " +
"t.RECORD_USER AS recordUser, " +
"t.RECORD_TIME AS recordTime, " +
"t.MODIFY_USER AS modifyUser, " +
"t.MODIFY_TIME AS modifyTime, " +
"t.IS_DELETED AS isDeleted, " +
"t.DELETE_USER AS deleteUser, " +
"t.DELETE_TIME AS deleteTime, " +
"t.DATA_SOURCE AS dataSource " +
"FROM V_MS_STBPRP_T t " +
"WHERE t.STCD = #{map.stcd}";
}
private EngStBaseInfoVo buildStBaseInfo(Map<String, Object> stInfoMap) {
EngStBaseInfoVo stBaseInfo = new EngStBaseInfoVo();
stBaseInfo.setStcd(getMapString(stInfoMap, "stcd"));
stBaseInfo.setStnm(getMapString(stInfoMap, "stnm"));
stBaseInfo.setSttpCode(getMapString(stInfoMap, "sttpCode"));
stBaseInfo.setSttpName(getMapString(stInfoMap, "sttpName"));
stBaseInfo.setSttpFullPath(getMapString(stInfoMap, "sttpFullPath"));
stBaseInfo.setSttpTreeLevel(getMapInteger(stInfoMap, "sttpTreeLevel"));
stBaseInfo.setStCode(null);
stBaseInfo.setStName(null);
stBaseInfo.setBaseId(getMapString(stInfoMap, "baseId"));
stBaseInfo.setBaseName(getMapString(stInfoMap, "baseName"));
stBaseInfo.setHbrvcd(getMapString(stInfoMap, "hbrvcd"));
stBaseInfo.setHbrvcdName(getMapString(stInfoMap, "hbrvcdName"));
stBaseInfo.setRvcd(getMapString(stInfoMap, "rvcd"));
stBaseInfo.setRvcdName(getMapString(stInfoMap, "rvcdName"));
return stBaseInfo;
}
private Map<String, Object> buildCamelCaseMsStbprpTMap(Map<String, Object> stInfoMap) {
LinkedHashMap<String, Object> result = new LinkedHashMap<>();
List<String> canonicalKeys = Arrays.asList(
"stcd", "stnm","ennm", "sttp", "sttpCode", "sttpName", "sttpFullPath", "sttpTreeLevel",
"rstcd", "baseId", "baseName", "hbrvcd", "hbrvcdName", "rvcd", "rvcdName", "addvcd",
"lgtd", "lttd", "stlc", "usfl", "dtin", "dtinTm", "bldsttCode", "introduce", "logo",
"inffile", "inv", "invinmn", "stdsdt", "pststdt", "pesstdt", "swdt", "jcdt", "wddt",
"orderIndex", "remark", "vlsr", "vlsrTm", "recordUser", "recordTime", "modifyUser",
"modifyTime", "isDeleted", "deleteUser", "deleteTime", "dataSource"
);
for (String canonicalKey : canonicalKeys) {
result.put(canonicalKey, getMapValue(stInfoMap, canonicalKey));
}
return result;
}
private String getMapString(Map<String, Object> source, String key) {
Object value = getMapValue(source, key);
return value == null ? null : String.valueOf(value);
}
private Integer getMapInteger(Map<String, Object> source, String key) {
Object value = getMapValue(source, key);
if (value == null) {
return null;
}
if (value instanceof Number number) {
return number.intValue();
}
return Integer.parseInt(String.valueOf(value));
}
private Object getMapValue(Map<String, Object> source, String key) {
if (source == null || source.isEmpty() || StrUtil.isBlank(key)) {
return null;
}
if (source.containsKey(key)) {
return source.get(key);
}
String upperKey = key.toUpperCase(Locale.ROOT);
if (source.containsKey(upperKey)) {
return source.get(upperKey);
}
String lowerKey = key.toLowerCase(Locale.ROOT);
if (source.containsKey(lowerKey)) {
return source.get(lowerKey);
}
for (Map.Entry<String, Object> entry : source.entrySet()) {
if (entry.getKey() != null && entry.getKey().equalsIgnoreCase(key)) {
return entry.getValue();
}
}
return null;
}
private String buildVmsstbprptViewSql() { private String buildVmsstbprptViewSql() {
return "SELECT " + return "SELECT " +
"eng.STCD AS id, " + "eng.STCD AS id, " +