diff options
| author | joonhoekim <26rote@gmail.com> | 2025-11-13 11:26:08 +0900 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-11-13 11:26:08 +0900 |
| commit | 1cdbf77cabcead1a7f76379d3786ede6f43355fb (patch) | |
| tree | 1a9324dae4d7be50ac245c7161120fa893074c5a | |
| parent | e47c0d8bf032e9da9f2cae1b648649bd33e44589 (diff) | |
(김준회) 벤더데이터: 해양: 삭제시 Overwrite API 호출할 수 있도록 projectId 전달 추가
6 files changed, 34 insertions, 7 deletions
diff --git a/app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/[projectId]/[contractId]/page.tsx b/app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/[projectId]/[contractId]/page.tsx index 2f73e096..0467f4a2 100644 --- a/app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/[projectId]/[contractId]/page.tsx +++ b/app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/[projectId]/[contractId]/page.tsx @@ -25,6 +25,9 @@ export default async function FormPage({ params, searchParams }: IndexPageProps) // 3) 구조 분해 할당 const { lng, packageId, formId: formCode, projectId, contractId } = resolvedParams; + // 디버깅: projectId 확인 + console.log('[PAGE] projectId from URL:', projectId, 'type:', typeof projectId, 'as Number:', Number(projectId)) + // i18n 설정 const { t } = await useTranslation(lng, 'engineering'); diff --git a/components/form-data-plant/delete-form-data-dialog.tsx b/components/form-data-plant/delete-form-data-dialog.tsx index 6166b739..6ac8f67c 100644 --- a/components/form-data-plant/delete-form-data-dialog.tsx +++ b/components/form-data-plant/delete-form-data-dialog.tsx @@ -41,6 +41,7 @@ interface DeleteFormDataDialogProps formData: GenericData[] formCode: string contractItemId: number + projectId?: number showTrigger?: boolean onSuccess?: () => void triggerVariant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" @@ -50,6 +51,7 @@ export function DeleteFormDataDialog({ formData, formCode, contractItemId, + projectId, showTrigger = true, onSuccess, triggerVariant = "outline", @@ -77,6 +79,7 @@ export function DeleteFormDataDialog({ formCode, contractItemId, tagIdxs, + projectId, }) if (result.error) { @@ -90,6 +93,14 @@ export function DeleteFormDataDialog({ const deletedCount = result.deletedCount || 0 const deletedTagsCount = result.deletedTagsCount || 0 + // SEDP 삭제 결과도 포함 + if (result.sedpDeleteSuccess) { + console.log("SEDP에서도 성공적으로 삭제되었습니다.") + } else if (result.sedpDeleteError) { + console.warn("SEDP 삭제 실패:", result.sedpDeleteError) + toast.warning(`로컬 삭제는 성공했으나 SEDP 삭제 실패: ${result.sedpDeleteError}`) + } + if (deletedCount !== deletedTagsCount) { // 데이터 불일치 경고 console.warn(`Data inconsistency: FormEntries deleted: ${deletedCount}, Tags deleted: ${deletedTagsCount}`) @@ -98,12 +109,17 @@ export function DeleteFormDataDialog({ ) } else { // 정상적인 삭제 완료 - toast.success( - t("delete.successMessage", { - count: deletedCount, - items: deletedCount === 1 ? t("delete.item") : t("delete.items") - }) - ) + const successMessage = result.sedpDeleteSuccess + ? t("delete.successMessage", { + count: deletedCount, + items: deletedCount === 1 ? t("delete.item") : t("delete.items") + }) + " (SEDP 포함)" + : t("delete.successMessage", { + count: deletedCount, + items: deletedCount === 1 ? t("delete.item") : t("delete.items") + }) + + toast.success(successMessage) } onSuccess?.() diff --git a/components/form-data-plant/form-data-table.tsx b/components/form-data-plant/form-data-table.tsx index 9e7b3901..30c176bd 100644 --- a/components/form-data-plant/form-data-table.tsx +++ b/components/form-data-plant/form-data-table.tsx @@ -1245,6 +1245,7 @@ React.useEffect(() => { formData={deleteTarget} formCode={formCode} contractItemId={contractItemId} + projectId={projectId} open={deleteDialogOpen} onOpenChange={(open) => { if (!open) { diff --git a/components/form-data/delete-form-data-dialog.tsx b/components/form-data/delete-form-data-dialog.tsx index 045d0291..e7278084 100644 --- a/components/form-data/delete-form-data-dialog.tsx +++ b/components/form-data/delete-form-data-dialog.tsx @@ -75,6 +75,9 @@ export function DeleteFormDataDialog({ return } + // 디버깅: projectId 값 확인 + console.log('[DELETE DIALOG] projectId:', projectId, 'type:', typeof projectId) + const result = await deleteFormDataByTags({ formCode, contractItemId, diff --git a/components/form-data/form-data-table.tsx b/components/form-data/form-data-table.tsx index b691ee87..58cd1933 100644 --- a/components/form-data/form-data-table.tsx +++ b/components/form-data/form-data-table.tsx @@ -752,6 +752,7 @@ export default function DynamicTable({ // 개별 행 삭제 핸들러 const handleDeleteRow = (rowData: GenericData) => { + console.log('[FORM-DATA-TABLE] Opening delete dialog (single row) with projectId:', projectId) setDeleteTarget([rowData]); setDeleteDialogOpen(true); }; @@ -764,6 +765,7 @@ export default function DynamicTable({ return; } + console.log('[FORM-DATA-TABLE] Opening delete dialog with projectId:', projectId) setDeleteTarget(selectedData); setDeleteDialogOpen(true); }; @@ -1143,7 +1145,7 @@ export default function DynamicTable({ formData={deleteTarget} formCode={formCode} contractItemId={contractItemId} - projectId={projectId} + projectId={projectId} // 디버깅: {projectId} open={deleteDialogOpen} onOpenChange={(open) => { if (!open) { diff --git a/lib/sedp/get-form-tags.ts b/lib/sedp/get-form-tags.ts index b81762c6..831f1abd 100644 --- a/lib/sedp/get-form-tags.ts +++ b/lib/sedp/get-form-tags.ts @@ -932,6 +932,8 @@ async function fetchTagDataFromSEDP(projectCode: string, formCode: string): Prom body: JSON.stringify({ ProjectNo: projectCode, REG_TYPE_ID: formCode, + // TODO: 이창국 프로 요청으로, ContainDeleted: true로 변경예정, EDP에서 삭제된 데이터도 가져올 수 있어야 한다고 함. + // 삭제된 게 들어오면 eVCP내에서 지우거나, 비활성화 하는 등의 처리를 해야 할 걸로 보임 ContainDeleted: false }) } |
