fix: 优化逻辑
This commit is contained in:
parent
b895e989c9
commit
c24c4e8645
@ -300,11 +300,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
|||||||
"TOP_HYNM"
|
"TOP_HYNM"
|
||||||
));
|
));
|
||||||
sql.append(", ");
|
sql.append(", ");
|
||||||
sql.append(buildScalarNameSelect(
|
sql.append(buildReachcdNameSelect(paramMap));
|
||||||
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(" FROM DUAL");
|
sql.append(" FROM DUAL");
|
||||||
return sql.toString();
|
return sql.toString();
|
||||||
}
|
}
|
||||||
@ -328,6 +324,19 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
|||||||
return querySql + " AS " + alias;
|
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) {
|
private String resolveRelatedName(String code, Map<String, Object> row, String column) {
|
||||||
if (code == null) {
|
if (code == null) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user