summaryrefslogtreecommitdiff
path: root/lib/soap/mdg/mapper/project-mapper.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/soap/mdg/mapper/project-mapper.ts')
-rw-r--r--lib/soap/mdg/mapper/project-mapper.ts22
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