전체 카테고리 키 목록 조회 API 및 관련 기능 추가

- 카테고리 트리 컨트롤러에 전체 카테고리 키 목록 조회 라우트 추가: GET /api/category-tree/test/all-category-keys
- 카테고리 트리 서비스에 전체 카테고리 키 목록 조회 메서드 구현: 모든 테이블과 컬럼 조합을 반환
- 채번규칙 컨트롤러에서 폼 데이터 처리 기능 추가: 코드 미리보기 시 카테고리 기반 폼 데이터 사용
- 관련 API 클라이언트 및 타입 정의 업데이트: 카테고리 키 조회 및 채번규칙 API에 대한 요청 처리 개선

이로 인해 카테고리 관리 및 채번규칙 테스트의 효율성이 향상되었습니다.
This commit is contained in:
kjs
2026-01-21 17:51:59 +09:00
parent ae4e21e1ac
commit 623ade4f28
14 changed files with 1601 additions and 138 deletions
+24 -2
View File
@@ -4,13 +4,14 @@
*/
/**
* 코드 파트 유형 (4가지)
* 코드 파트 유형 (5가지)
*/
export type CodePartType =
| "sequence" // 순번 (자동 증가 숫자)
| "number" // 숫자 (고정 자릿수)
| "date" // 날짜 (다양한 날짜 형식)
| "text"; // 문자 (텍스트)
| "text" // 문자 (텍스트)
| "category"; // 카테고리 (카테고리 값에 따른 형식)
/**
* 생성 방식
@@ -30,6 +31,17 @@ export type DateFormat =
| "YYYYMMDD" // 20251104
| "YYMMDD"; // 251104
/**
* 카테고리 값별 형식 매핑
* 예: 가스켓 → ITM, 벌브 → VLV
*/
export interface CategoryFormatMapping {
categoryValueId: number; // 카테고리 값 ID
categoryValueLabel: string; // 카테고리 값 라벨 (표시용)
categoryValuePath?: string; // 전체 경로 (예: "원자재/벌크/가스켓")
format: string; // 생성할 형식 (예: "ITM", "VLV")
}
/**
* 단일 규칙 파트
*/
@@ -57,6 +69,10 @@ export interface NumberingRulePart {
// 문자용
textValue?: string; // 텍스트 값 (예: "PRJ", "CODE")
// 카테고리용
categoryKey?: string; // 카테고리 키 (테이블.컬럼 형식, 예: "item_info.type")
categoryMappings?: CategoryFormatMapping[]; // 카테고리 값별 형식 매핑
};
// 직접 입력 설정
@@ -91,6 +107,11 @@ export interface NumberingRuleConfig {
tableName?: string; // 적용할 테이블명
columnName?: string; // 적용할 컬럼명
// 카테고리 조건 (특정 카테고리 값일 때만 이 규칙 적용)
categoryColumn?: string; // 카테고리 조건 컬럼명 (예: 'type', 'material')
categoryValueId?: number; // 카테고리 값 ID (category_values_test.value_id)
categoryValueLabel?: string; // 카테고리 값 라벨 (조회 시 조인)
// 메타 정보
companyCode?: string;
createdAt?: string;
@@ -106,6 +127,7 @@ export const CODE_PART_TYPE_OPTIONS: Array<{ value: CodePartType; label: string;
{ value: "number", label: "숫자", description: "고정 자릿수 숫자 (001, 002...)" },
{ value: "date", label: "날짜", description: "날짜 형식 (2025-11-04)" },
{ value: "text", label: "문자", description: "텍스트 또는 코드" },
{ value: "category", label: "카테고리", description: "카테고리 값에 따른 형식" },
];
export const DATE_FORMAT_OPTIONS: Array<{ value: DateFormat; label: string; example: string }> = [