From dec7dedd9409f1ee1afa2ac1ca7c17ff611c3df8 Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Tue, 2 Sep 2025 08:50:02 +0000 Subject: (김준회) MDG 프로젝트 마스터 수신시 전체 데이터 projects 비지니스 테이블에 매핑처리 - 테이블 컬럼 확장 - projects 페이지 프론트엔드 처리 - mdg 수신 route에서 mapper 확장 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/projects/dialog/project-detail-dialog.tsx | 431 ++++++++++++++++++++++++++ 1 file changed, 431 insertions(+) create mode 100644 lib/projects/dialog/project-detail-dialog.tsx (limited to 'lib/projects/dialog') diff --git a/lib/projects/dialog/project-detail-dialog.tsx b/lib/projects/dialog/project-detail-dialog.tsx new file mode 100644 index 00000000..2ecb37a5 --- /dev/null +++ b/lib/projects/dialog/project-detail-dialog.tsx @@ -0,0 +1,431 @@ +"use client" + +import * as React from "react" +import { type Project } from "@/db/schema/projects" + +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog" +import { + Table, + TableBody, + TableCell, + TableRow, +} from "@/components/ui/table" +import { Badge } from "@/components/ui/badge" +import { formatDate } from "@/lib/utils" + +interface ProjectDetailDialogProps { + project: Project + open: boolean + onOpenChange: (open: boolean) => void +} + +export function ProjectDetailDialog({ + project, + open, + onOpenChange, +}: ProjectDetailDialogProps) { + const formatValue = (value: string | null | undefined) => { + return value || "-" + } + + return ( + + + + + 프로젝트 상세 정보 + {project.code} + + + 프로젝트코드: {project.code} | {project.name} + + + +
+
+

프로젝트 전체 정보

+ + + {/* 기본 프로젝트 정보 */} + + 프로젝트 코드 + {formatValue(project.code)} + + + 프로젝트명 + {formatValue(project.name)} + + + 프로젝트 타입 + + + {project.type === "ship" ? "조선" : "해양"} + + + + + {/* 선주 및 기본 정보 */} + + 선주명 + {formatValue(project.OWN_NM)} + + + 선주약어 + {formatValue(project.OWN_AB)} + + + 선주1 + {formatValue(project.OWN_1)} + + + {/* 선급 정보 */} + + 선급1 + {formatValue(project.CLS_1)} + + + 선급2 + {formatValue(project.CLS_2)} + + + {/* 선박 정보 */} + + 선종 + {formatValue(project.SKND)} + + + 선형 + {formatValue(project.SHTYPE)} + + + 선형코드 + {formatValue(project.SHTYPE_CD)} + + + 선형군 + {formatValue(project.SHTYPE_GRP)} + + + 선형단위 + {formatValue(project.SHTYPE_UOM)} + + + {/* 도크 및 건조 정보 */} + + 도크 + {formatValue(project.DOCK_CD)} + + + 기준호선 + {formatValue(project.MSHIP_NO)} + + + {/* 계약 정보 */} + + 계약일자 + {formatValue(project.CNRT_DT)} + + + 계약인도일자 + {formatValue(project.CNRT_DL_DT)} + + + 실인도일자 + {formatValue(project.RL_DL_DT)} + + + 선표인도일자 + {formatValue(project.BP_DL_DT)} + + + Sail Away Date + {formatValue(project.SA_DT)} + + + 고객발주번호 + {formatValue(project.CSTM_PO_NO)} + + + 계약존속여부 + {formatValue(project.CNRT_CNTN_YN)} + + + 계약유보여부 + {formatValue(project.CNRT_RESV_YN)} + + + 전체 계약 대수 + {formatValue(project.TOT_CNRT_CNT)} + + + {/* 프로젝트 상태 */} + + 진행상태 + {formatValue(project.PRGS_STAT)} + + + 공사진행여부 + {formatValue(project.PROJ_PRGS_YN)} + + + 시작일자 + {formatValue(project.STDT)} + + + 인터페이스 진행단계 + {formatValue(project.IF_STAT)} + + + {/* 기술 정보 */} + + IMO 번호 + {formatValue(project.IMO_NO)} + + + 국적 + {formatValue(project.NTTP)} + + + Main engine type code + {formatValue(project.MN_ENGN_TP_CD)} + + + 관청명 + {formatValue(project.GOV)} + + + {/* 조직 정보 */} + + 사업부 + {formatValue(project.BIZCLS)} + + + 사업장코드 + {formatValue(project.BIZLOC_CD)} + + + 사업영역 + {formatValue(project.BIZ_DMN)} + + + 영업그룹 + {formatValue(project.SALE_GRP)} + + + 영업조직 + {formatValue(project.SALE_ORG_CD)} + + + 손익센터 + {formatValue(project.PRCTR)} + + + 설계담당자 + {formatValue(project.DSN_CHRGR)} + + + 회사코드 + {formatValue(project.CO_CD)} + + + 플랜트 코드 + {formatValue(project.PLNT_CD)} + + + 관리회계영역 + {formatValue(project.MNG_ACOT_DMN)} + + + 품질사업부 + {formatValue(project.QM_CLS)} + + + {/* 프로젝트 세부 정보 */} + + 프로젝트 세부타입 + {formatValue(project.PROJ_DTL_TP)} + + + 프로젝트 기타타입 + {formatValue(project.PROJ_ETC_TP)} + + + 프로젝트구분 + {formatValue(project.PROJ_GB)} + + + 프로젝트 프로파일 + {formatValue(project.PROJ_PROF)} + + + 프로젝트범위 + {formatValue(project.PROJ_SCP)} + + + 프로젝트 WBS타입 + {formatValue(project.PROJ_WBS_TP)} + + + 원본 TYPE + {formatValue(project.TYPE)} + + + (중국)프로젝트타입 + {formatValue(project.CHN_PROJ_TP)} + + + (풍력)프로젝트타입 + {formatValue(project.WP_PROJ_TP)} + + + {/* 시리즈 정보 */} + + 시리즈여부 + {formatValue(project.SERS_YN)} + + + 시리즈첫공사번호 + {formatValue(project.SERS_NO)} + + + 시리즈번호 + {formatValue(project.REF_NO)} + + + 세대수/시리즈 + {formatValue(project.GENT_CNT)} + + + 연관프로젝트 + {formatValue(project.RLTD_PROJ)} + + + {/* 제품 정보 */} + + 제품 Level 4 + {formatValue(project.PDT_LVL_4)} + + + 전기전자 제품군 + {formatValue(project.DIGT_PDT_GRP)} + + + {/* 프로젝트 관리 정보 */} + + 프로젝트 생성요청일 + {formatValue(project.PROJ_CRTE_REQ_DT)} + + + 프로젝트 생성요청자 + {formatValue(project.PROJ_CRTE_REQ_EMPNO)} + + + 모프로젝트 인도계획일 + {formatValue(project.PROJ_DL_PLN_DT)} + + + 모프로젝트 인도실적일 + {formatValue(project.PROJ_DL_RT_DT)} + + + 프로포절 프로젝트 + {formatValue(project.PRO_PROJ_NO)} + + + {/* 안건 정보 */} + + 안건번호 + {formatValue(project.INQY_NO)} + + + 안건순번 + {formatValue(project.INQY_SEQ)} + + + {/* 보증 정보 */} + + A/S 보증기간 + {formatValue(project.AS_GRNT_PRD)} + + + Project Warranty Start Date + {formatValue(project.GRNT_STDT)} + + + 주문주 보증기간 + {formatValue(project.ORDR_GRNT_PRD)} + + + 주문주 보증종료일 + {formatValue(project.ORDR_GRNT_FN_DT)} + + + 최종수요자 보증종료일 + {formatValue(project.FIN_GRNT_FN_DT)} + + + {/* 기타 정보 */} + + MC YN + {formatValue(project.NEW_MC_YN)} + + + 사내외 구분 + {formatValue(project.IO_GB)} + + + 유통경로 + {formatValue(project.DIST_PATH)} + + + 인도전선명 + {formatValue(project.DL_BF_PROJ_NM)} + + + 인도고객 ID + {formatValue(project.DL_CSTM_CD)} + + + {/* 시스템 정보 */} + + 시스템회계마감일자 + {formatValue(project.SYS_ACOT_CLSD_DT)} + + + Source System + {formatValue(project.SRC_SYS_ID)} + + + 삭제 여부 + + {project.DEL_YN ? ( + 삭제됨 + ) : ( + 활성 + )} + + + + {/* 생성/수정 정보 */} + + 생성일시 + {formatDate(project.createdAt, "KR")} + + + 수정일시 + {formatDate(project.updatedAt, "KR")} + + +
+
+
+
+
+ ) +} -- cgit v1.2.3