summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-09-26 08:01:42 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-09-26 08:01:42 +0000
commit9966b9709884713d296d74073714e5c4acef2521 (patch)
treeeb6ef80bad03a5b9ec72bed014d4f27eaee6394a /lib
parente9f707b10b81d9759243473dd03fa463573d0772 (diff)
(김준회) MDG 수신 프로젝트 매핑시 조선/해양 기준을 나준규 프로 답변대로 변경 처리
Diffstat (limited to 'lib')
-rw-r--r--lib/soap/mdg/mapper/project-mapper.ts18
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/soap/mdg/mapper/project-mapper.ts b/lib/soap/mdg/mapper/project-mapper.ts
index a4000bc0..95dd69a7 100644
--- a/lib/soap/mdg/mapper/project-mapper.ts
+++ b/lib/soap/mdg/mapper/project-mapper.ts
@@ -91,10 +91,7 @@ function mapMDGToProject(mdgProject: MDGProjectData): ProjectData | null {
// 기존 매핑 컬럼들
code: mdgProject.PROJ_NO || '',
name: mdgProject.PROJ_DSC || '',
- type: checkProjectType(mdgProject.TYPE || ''), // 기본값, 필요시 매핑 로직 추가
- // type 매핑 방법: TYPE 네임스페이스에서 null 값을 수신한 경우 조선(ship)이고, 그 외는 해양(plant)이다.
- // 수신할 수 있는 경우의 수는 H, T, H/T, null 인데, 필요시 hull / top 구분 처리하자. 현재는 조선/해양 구분만 필요하고, 기존 코드들도 plant 값인지 ship 값인지만 따지고 있다.
- // 의미상으로는 H = 해양 Hull, T = 해양 Top, H/T = 해양 Hull과 Top 둘 다 하는 프로젝트 인데, 일단은 조선/해양 구분만 ship/plant 값을 넣어주는 것으로 하자.
+ type: checkProjectType(mdgProject.BIZCLS || '', mdgProject.QM_CLS || ''), // BIZCLS와 QM_CLS를 기준으로 판단
// MDG의 모든 컬럼 매핑 (그대로 수신)
AS_GRNT_PRD: mdgProject.AS_GRNT_PRD || null,
@@ -319,10 +316,15 @@ async function saveProjectsToDatabase(mappedProjects: ProjectData[]): Promise<vo
// === Utility Functions ===
-function checkProjectType(type: string) {
- if (type == 'H' || type == 'T' || type == 'H/T') {
- return 'plant';
- } else {
+function checkProjectType(bizCls: string, qmCls: string) {
+ // 둘 다 null이면 ship
+ if (!bizCls && !qmCls) {
return 'ship';
}
+ // 하나라도 'S'이면 ship
+ if (bizCls === 'S' || qmCls === 'S') {
+ return 'ship';
+ }
+ // 그 외는 plant
+ return 'plant';
} \ No newline at end of file