fix: 优化逻辑
This commit is contained in:
parent
b895e989c9
commit
c24c4e8645
@ -300,11 +300,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
||||
"TOP_HYNM"
|
||||
));
|
||||
sql.append(", ");
|
||||
sql.append(buildScalarNameSelect(
|
||||
StringUtils.hasText((String) paramMap.get("reachcd")),
|
||||
"(SELECT rv.RVNM FROM SD_RVCD_DIC rv WHERE rv.RVCD = #{map.reachcd} AND ROWNUM = 1)",
|
||||
"REACHCD_NAME"
|
||||
));
|
||||
sql.append(buildReachcdNameSelect(paramMap));
|
||||
sql.append(" FROM DUAL");
|
||||
return sql.toString();
|
||||
}
|
||||
@ -328,6 +324,19 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
||||
return querySql + " AS " + alias;
|
||||
}
|
||||
|
||||
private String buildReachcdNameSelect(Map<String, Object> paramMap) {
|
||||
if (!StringUtils.hasText((String) paramMap.get("reachcd"))) {
|
||||
return "NULL AS REACHCD_NAME";
|
||||
}
|
||||
return "(SELECT LISTAGG(pathNode.RVNM, '-') WITHIN GROUP (ORDER BY pathNode.LVL DESC) " +
|
||||
"FROM ( " +
|
||||
" SELECT rv.RVNM, LEVEL AS LVL " +
|
||||
" FROM SD_RVCD_DIC rv " +
|
||||
" START WITH rv.RVCD = #{map.reachcd} " +
|
||||
" CONNECT BY PRIOR rv.PRVCD = rv.RVCD " +
|
||||
") pathNode) AS REACHCD_NAME";
|
||||
}
|
||||
|
||||
private String resolveRelatedName(String code, Map<String, Object> row, String column) {
|
||||
if (code == null) {
|
||||
return null;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user