summaryrefslogtreecommitdiff
path: root/app/api/(S-ERP)/(MDG)/IF_MDZ_EVCP_PROJECT_MASTER/route.ts
diff options
context:
space:
mode:
Diffstat (limited to 'app/api/(S-ERP)/(MDG)/IF_MDZ_EVCP_PROJECT_MASTER/route.ts')
-rw-r--r--app/api/(S-ERP)/(MDG)/IF_MDZ_EVCP_PROJECT_MASTER/route.ts18
1 files changed, 15 insertions, 3 deletions
diff --git a/app/api/(S-ERP)/(MDG)/IF_MDZ_EVCP_PROJECT_MASTER/route.ts b/app/api/(S-ERP)/(MDG)/IF_MDZ_EVCP_PROJECT_MASTER/route.ts
index fd7fb027..a1a016c2 100644
--- a/app/api/(S-ERP)/(MDG)/IF_MDZ_EVCP_PROJECT_MASTER/route.ts
+++ b/app/api/(S-ERP)/(MDG)/IF_MDZ_EVCP_PROJECT_MASTER/route.ts
@@ -15,6 +15,9 @@ import {
withSoapLogging
} from "@/lib/soap/utils";
import { bulkUpsert } from "@/lib/soap/batch-utils"; // 서브테이블 없음
+import {
+ mapAndSaveMDGProjectData
+} from "@/lib/soap/mdg/mapper/project-mapper";
// 스키마에서 직접 타입 추론
@@ -51,7 +54,7 @@ export async function POST(request: NextRequest) {
'IF_MDZ_EVCP_PROJECT_MASTER',
body,
async () => {
- console.log('Request Body 일부:', body.substring(0, 200) + (body.length > 200 ? '...' : ''));
+ console.log('🚀 PROJECT_MASTER 수신 시작, 데이터 길이:', body.length);
const parser = createXMLParser(['CMCTB_PROJ_MAST']);
const parsedData = parser.parse(body);
@@ -83,10 +86,19 @@ export async function POST(request: NextRequest) {
}
}
- // 데이터베이스 저장
+ // 1) 원본 MDG 데이터 저장 (기존 로직 유지)
await saveToDatabase(processedProjects);
- console.log(`Processed ${processedProjects.length} projects`);
+ // 2) 비즈니스 테이블 projects에 매핑하여 저장
+ const projectMappingResult = await mapAndSaveMDGProjectData(
+ processedProjects.map(p => p.project)
+ );
+
+ if (!projectMappingResult.success) {
+ throw new Error(`프로젝트 비즈니스 테이블 매핑 실패: ${projectMappingResult.message}`);
+ }
+
+ console.log(`🎉 처리 완료: ${processedProjects.length}개 프로젝트, ${projectMappingResult.processedCount}개 비즈니스 테이블 매핑`);
return createSuccessResponse('http://60.101.108.100/api/IF_MDZ_EVCP_PROJECT_MASTER/');
}