diff options
Diffstat (limited to 'lib/soap/mdg/mapper/project-mapper.ts')
| -rw-r--r-- | lib/soap/mdg/mapper/project-mapper.ts | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/lib/soap/mdg/mapper/project-mapper.ts b/lib/soap/mdg/mapper/project-mapper.ts index 112dd4f5..6de2b38a 100644 --- a/lib/soap/mdg/mapper/project-mapper.ts +++ b/lib/soap/mdg/mapper/project-mapper.ts @@ -76,10 +76,9 @@ export async function mapAndSaveMDGProjectData( /** * MDG 프로젝트 데이터를 비즈니스 테이블 projects 구조로 변환 - * TODO: 실제 매핑 로직은 사용자가 추가할 예정 * id: serial("id").primaryKey(), << 자동 - code: varchar("code", { length: 50 }).notNull(), << + code: varchar("code", { length: 50 }).notNull(), name: text("name").notNull(), type: varchar("type", { length: 20 }).default("ship").notNull(), pspid: char('pspid', { length: 24 }).unique(), // 프로젝트ID (ECC), TODO: 매핑 필요 @@ -94,12 +93,15 @@ function mapMDGToProject(mdgProject: MDGProjectData): ProjectData | null { return null; } - // TODO: 사용자가 실제 매핑 로직을 추가할 예정 // 현재는 기본 구조만 제공 const mappedProject: ProjectData = { code: mdgProject.PROJ_NO || '', - name: mdgProject.PROJ_NM || mdgProject.PROJ_NO || '', - type: 'ship', // 기본값, 필요시 매핑 로직 추가 + 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 값을 넣어주는 것으로 하자. + // TODO: pspid를 구해야 하는데 mdg에서 안주는 것 같음. 나프로에게 문의함. pspid: mdgProject.PROJ_NO || null, // ECC 프로젝트 ID와 연결 // id, createdAt, updatedAt는 자동 생성 }; @@ -167,3 +169,13 @@ async function saveProjectsToDatabase(mappedProjects: ProjectData[]): Promise<vo throw error; } } + +// === Utility Functions === + +function checkProjectType(type: string) { + if (type == 'H' || type == 'T' || type == 'H/T') { + return 'plant'; + } else { + return 'ship'; + } +}
\ No newline at end of file |
