품의서 개발 & DB에 저장된 메뉴명 표시

This commit is contained in:
2025-11-27 17:26:06 +09:00
parent 25ddce6480
commit ef9a6d2ac1
9 changed files with 722 additions and 121 deletions

View File

@@ -1917,6 +1917,76 @@ public class CommonUtils {
return concatenatedValues;
}
/**
* menuObjId로 메뉴명을 조회한다 (상위메뉴_하위메뉴 형식)
*
* @param menuObjId 메뉴 OBJID
* @param defaultMenuName 기본 메뉴명 (조회 실패 시 반환)
* @return 메뉴명 (상위메뉴_하위메뉴 형식)
*/
public static String getMenuName(String menuObjId, String defaultMenuName) {
String menuName = defaultMenuName;
org.apache.ibatis.session.SqlSession sqlSession = null;
try {
if(menuObjId == null || menuObjId.isEmpty()) {
logger.debug("menuObjId가 null 또는 빈 문자열입니다. 기본값 반환: " + defaultMenuName);
return menuName;
}
sqlSession = com.pms.common.SqlMapConfig.getInstance().getSqlSession();
Map<String, Object> menuParam = new HashMap<String, Object>();
menuParam.put("OBJID", menuObjId);
// MyBatis resultType="map"은 컬럼명을 소문자로 반환하므로 대문자로 변환 필요
Map menuInfo = (Map)sqlSession.selectOne("admin.selectMenuInfo", menuParam);
if(menuInfo != null) {
// Map의 key를 대문자로 변환
menuInfo = toUpperCaseMapKey(menuInfo);
logger.debug("메뉴 정보 조회 성공: " + menuInfo);
if(menuInfo.get("MENU_NAME_KOR") != null) {
// 상위 메뉴 이름 조회
String parentObjId = checkNull(menuInfo.get("PARENT_OBJ_ID"));
if(!parentObjId.isEmpty() && !"0".equals(parentObjId)) {
menuParam.put("OBJID", parentObjId);
Map parentMenuInfo = (Map)sqlSession.selectOne("admin.selectMenuInfo", menuParam);
if(parentMenuInfo != null) {
// 상위 메뉴도 대문자로 변환
parentMenuInfo = toUpperCaseMapKey(parentMenuInfo);
if(parentMenuInfo.get("MENU_NAME_KOR") != null) {
menuName = checkNull(parentMenuInfo.get("MENU_NAME_KOR")) + "_" + checkNull(menuInfo.get("MENU_NAME_KOR"));
} else {
menuName = checkNull(menuInfo.get("MENU_NAME_KOR"));
}
} else {
menuName = checkNull(menuInfo.get("MENU_NAME_KOR"));
}
} else {
menuName = checkNull(menuInfo.get("MENU_NAME_KOR"));
}
logger.debug("최종 메뉴명: " + menuName);
} else {
logger.warn("MENU_NAME_KOR이 null입니다. menuObjId: " + menuObjId);
}
} else {
logger.warn("메뉴 정보를 찾을 수 없습니다. menuObjId: " + menuObjId);
}
} catch(Exception e) {
logger.error("메뉴명 조회 중 오류 발생 (menuObjId: " + menuObjId + "): " + e.getMessage(), e);
} finally {
if(sqlSession != null) {
try {
sqlSession.close();
} catch(Exception e) {
logger.error("SqlSession 종료 중 오류 발생: " + e.getMessage(), e);
}
}
}
return menuName;
}
}