fix: 优化电站基本数据查询
This commit is contained in:
parent
527eb5ea86
commit
1d120cd170
@ -1009,6 +1009,18 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
||||
|
||||
@Override
|
||||
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);
|
||||
if (baseInfo == null) {
|
||||
return null;
|
||||
@ -1035,6 +1047,132 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
||||
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() {
|
||||
return "SELECT " +
|
||||
"eng.STCD AS id, " +
|
||||
|
||||
Loading…
Reference in New Issue
Block a user