공통코드 수정중
This commit is contained in:
@@ -275,8 +275,22 @@ export class CommonCodeController {
|
||||
const { categoryCode } = req.params;
|
||||
const codeData: CreateCodeData = req.body;
|
||||
const userId = req.user?.userId || "SYSTEM";
|
||||
// 사용자의 회사 코드 사용 (회사별 코드 관리)
|
||||
const companyCode = req.user?.companyCode || "*";
|
||||
const menuObjid = req.body.menuObjid;
|
||||
|
||||
// 카테고리 조회 - 존재 여부 확인 및 menuObjid 가져오기
|
||||
const category = await this.commonCodeService.getCategoryByCode(categoryCode);
|
||||
if (!category) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: `카테고리를 찾을 수 없습니다: ${categoryCode}`,
|
||||
});
|
||||
}
|
||||
|
||||
// 카테고리의 menuObjid 사용 (카테고리는 공통, 코드는 회사별)
|
||||
const menuObjid = category.menu_objid;
|
||||
|
||||
logger.info(`코드 생성 - 사용자 회사로 저장: categoryCode=${categoryCode}, companyCode=${companyCode}, menuObjid=${menuObjid}`);
|
||||
|
||||
// 입력값 검증
|
||||
if (!codeData.codeValue || !codeData.codeName) {
|
||||
@@ -286,13 +300,6 @@ export class CommonCodeController {
|
||||
});
|
||||
}
|
||||
|
||||
if (!menuObjid) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: "메뉴 OBJID는 필수입니다.",
|
||||
});
|
||||
}
|
||||
|
||||
const code = await this.commonCodeService.createCode(
|
||||
categoryCode,
|
||||
codeData,
|
||||
@@ -588,4 +595,100 @@ export class CommonCodeController {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 테이블.컬럼 기반 카테고리 옵션 조회 (레거시 호환용)
|
||||
* GET /api/common-codes/category-options/:tableName/:columnName
|
||||
*
|
||||
* 기존 카테고리 타입이 공통코드로 마이그레이션된 후에도
|
||||
* 기존 API 호출이 동작하도록 호환성 제공
|
||||
*/
|
||||
async getCategoryOptionsAsCode(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const { tableName, columnName } = req.params;
|
||||
const userCompanyCode = req.user?.companyCode;
|
||||
|
||||
logger.info(`카테고리 → 공통코드 호환 조회: ${tableName}.${columnName}`);
|
||||
|
||||
const options = await this.commonCodeService.getCategoryOptionsAsCode(
|
||||
tableName,
|
||||
columnName,
|
||||
userCompanyCode
|
||||
);
|
||||
|
||||
return res.json({
|
||||
success: true,
|
||||
data: options,
|
||||
message: `카테고리 옵션 조회 성공 (${tableName}.${columnName})`,
|
||||
});
|
||||
} catch (error) {
|
||||
logger.error(`카테고리 옵션 조회 실패 (${req.params.tableName}.${req.params.columnName}):`, error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "카테고리 옵션 조회 중 오류가 발생했습니다.",
|
||||
error: error instanceof Error ? error.message : "Unknown error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 계층 구조 코드 조회 (트리 형태)
|
||||
* GET /api/common-codes/categories/:categoryCode/hierarchy
|
||||
*/
|
||||
async getCodesHierarchy(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const { categoryCode } = req.params;
|
||||
const userCompanyCode = req.user?.companyCode;
|
||||
|
||||
const hierarchy = await this.commonCodeService.getCodesHierarchy(
|
||||
categoryCode,
|
||||
userCompanyCode
|
||||
);
|
||||
|
||||
return res.json({
|
||||
success: true,
|
||||
data: hierarchy,
|
||||
message: `계층 코드 조회 성공 (${categoryCode})`,
|
||||
});
|
||||
} catch (error) {
|
||||
logger.error(`계층 코드 조회 실패 (${req.params.categoryCode}):`, error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "계층 코드 조회 중 오류가 발생했습니다.",
|
||||
error: error instanceof Error ? error.message : "Unknown error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 자식 코드 조회 (연쇄 선택용)
|
||||
* GET /api/common-codes/categories/:categoryCode/children
|
||||
* Query: parentCodeValue (optional)
|
||||
*/
|
||||
async getChildCodes(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const { categoryCode } = req.params;
|
||||
const { parentCodeValue } = req.query;
|
||||
const userCompanyCode = req.user?.companyCode;
|
||||
|
||||
const children = await this.commonCodeService.getChildCodes(
|
||||
categoryCode,
|
||||
parentCodeValue as string | null,
|
||||
userCompanyCode
|
||||
);
|
||||
|
||||
return res.json({
|
||||
success: true,
|
||||
data: children,
|
||||
message: `자식 코드 조회 성공 (${categoryCode}, 부모: ${parentCodeValue || '최상위'})`,
|
||||
});
|
||||
} catch (error) {
|
||||
logger.error(`자식 코드 조회 실패 (${req.params.categoryCode}):`, error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "자식 코드 조회 중 오류가 발생했습니다.",
|
||||
error: error instanceof Error ? error.message : "Unknown error",
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user