코드 할당 요청 시 폼 데이터 추가: numberingRuleController에서 코드 할당 요청 시 폼 데이터를 포함하도록 수정하였습니다. 이를 통해 날짜 컬럼 기준 생성 시 필요한 정보를 전달할 수 있도록 개선하였습니다.

This commit is contained in:
kjs
2026-01-19 18:21:30 +09:00
parent 95da69ec70
commit d3701cfe1e
27 changed files with 1148 additions and 295 deletions

View File

@@ -146,10 +146,34 @@ export class AutoGenerationUtils {
}
/**
* 자동생성 값 생성 메인 함수
* 채번 규칙 API 호출하여 코드 생성
*/
static generateValue(config: AutoGenerationConfig, columnName?: string): string | null {
console.log("🔧 AutoGenerationUtils.generateValue 호출:", {
static async generateNumberingRuleCode(ruleId: string, formData?: Record<string, any>): Promise<string | null> {
try {
const { apiClient } = await import("@/lib/api/client");
const response = await apiClient.post(`/numbering-rules/${ruleId}/allocate`, {
formData: formData || {},
});
if (response.data.success && response.data.data) {
// API 응답에서 생성된 코드 추출
const generatedCode = response.data.data.generatedCode || response.data.data;
console.log("채번 규칙 코드 생성 성공:", generatedCode);
return generatedCode;
}
console.error("채번 규칙 코드 생성 실패:", response.data.message);
return null;
} catch (error) {
console.error("채번 규칙 API 호출 실패:", error);
return null;
}
}
/**
* 자동생성 값 생성 메인 함수 (비동기)
*/
static async generateValue(config: AutoGenerationConfig, columnName?: string, formData?: Record<string, any>): Promise<string | null> {
console.log("AutoGenerationUtils.generateValue 호출:", {
config,
columnName,
enabled: config.enabled,
@@ -157,7 +181,7 @@ export class AutoGenerationUtils {
});
if (!config.enabled || config.type === "none") {
console.log("⚠️ AutoGenerationUtils.generateValue 스킵:", {
console.log("AutoGenerationUtils.generateValue 스킵:", {
enabled: config.enabled,
type: config.type,
});
@@ -174,17 +198,25 @@ export class AutoGenerationUtils {
return this.getCurrentUserId();
case "current_time":
console.log("🕒 AutoGenerationUtils.generateCurrentTime 호출:", {
console.log("AutoGenerationUtils.generateCurrentTime 호출:", {
format: options.format,
options,
});
const timeValue = this.generateCurrentTime(options.format);
console.log("🕒 AutoGenerationUtils.generateCurrentTime 결과:", timeValue);
console.log("AutoGenerationUtils.generateCurrentTime 결과:", timeValue);
return timeValue;
case "sequence":
return this.generateSequence(columnName || "default", options.startValue || 1, options.prefix, options.suffix);
case "numbering_rule":
// 채번 규칙 ID가 있으면 API 호출
if (options.numberingRuleId) {
return await this.generateNumberingRuleCode(options.numberingRuleId, formData);
}
console.warn("numbering_rule 타입인데 numberingRuleId가 없습니다");
return null;
case "random_string":
return this.generateRandomString(options.length || 8, options.prefix, options.suffix);