타입 관리 개선 및 화면 비율조정 중간커밋

This commit is contained in:
kjs
2025-09-19 18:43:55 +09:00
parent baa656dee5
commit 4b28530fec
47 changed files with 13149 additions and 1230 deletions

View File

@@ -1,8 +1,9 @@
import { Response } from "express";
import { dynamicFormService } from "../services/dynamicFormService";
import { enhancedDynamicFormService } from "../services/enhancedDynamicFormService";
import { AuthenticatedRequest } from "../types/auth";
// 폼 데이터 저장
// 폼 데이터 저장 (기존 버전 - 레거시 지원)
export const saveFormData = async (
req: AuthenticatedRequest,
res: Response
@@ -55,6 +56,55 @@ export const saveFormData = async (
}
};
// 개선된 폼 데이터 저장 (새 버전)
export const saveFormDataEnhanced = async (
req: AuthenticatedRequest,
res: Response
): Promise<Response | void> => {
try {
const { companyCode, userId } = req.user as any;
const { screenId, tableName, data } = req.body;
// 필수 필드 검증
if (screenId === undefined || screenId === null || !tableName || !data) {
return res.status(400).json({
success: false,
message: "필수 필드가 누락되었습니다. (screenId, tableName, data)",
});
}
// 메타데이터 추가
const formDataWithMeta = {
...data,
created_by: userId,
updated_by: userId,
screen_id: screenId,
};
// company_code 처리
if (data.company_code !== undefined) {
formDataWithMeta.company_code = data.company_code;
} else if (companyCode && companyCode !== "*") {
formDataWithMeta.company_code = companyCode;
}
// 개선된 서비스 사용
const result = await enhancedDynamicFormService.saveFormData(
screenId,
tableName,
formDataWithMeta
);
res.json(result);
} catch (error: any) {
console.error("❌ 개선된 폼 데이터 저장 실패:", error);
res.status(500).json({
success: false,
message: error.message || "데이터 저장에 실패했습니다.",
});
}
};
// 폼 데이터 업데이트
export const updateFormData = async (
req: AuthenticatedRequest,