summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-11-13 11:26:08 +0900
committerjoonhoekim <26rote@gmail.com>2025-11-13 11:26:08 +0900
commit1cdbf77cabcead1a7f76379d3786ede6f43355fb (patch)
tree1a9324dae4d7be50ac245c7161120fa893074c5a
parente47c0d8bf032e9da9f2cae1b648649bd33e44589 (diff)
(김준회) 벤더데이터: 해양: 삭제시 Overwrite API 호출할 수 있도록 projectId 전달 추가
-rw-r--r--app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/[projectId]/[contractId]/page.tsx3
-rw-r--r--components/form-data-plant/delete-form-data-dialog.tsx28
-rw-r--r--components/form-data-plant/form-data-table.tsx1
-rw-r--r--components/form-data/delete-form-data-dialog.tsx3
-rw-r--r--components/form-data/form-data-table.tsx4
-rw-r--r--lib/sedp/get-form-tags.ts2
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
})
}