diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/soap/mdg/mapper/project-mapper.ts | 18 |
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 |
