From 7dd2b9fc1856306652f311d19697d9880955bfab Mon Sep 17 00:00:00 2001 From: dujinkim Date: Fri, 22 Aug 2025 02:12:15 +0000 Subject: (최겸) 공지사항, 인포메이션 기능 수정 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/vendor-regular-registrations/repository.ts | 35 +++++++++++++++++++++++++- lib/vendor-regular-registrations/service.ts | 13 ++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) (limited to 'lib/vendor-regular-registrations') diff --git a/lib/vendor-regular-registrations/repository.ts b/lib/vendor-regular-registrations/repository.ts index 38bf4aaf..aec3d275 100644 --- a/lib/vendor-regular-registrations/repository.ts +++ b/lib/vendor-regular-registrations/repository.ts @@ -75,6 +75,8 @@ export async function getVendorRegularRegistrations( status: basicContract.status, templateName: basicContractTemplates.templateName, createdAt: basicContract.createdAt, + filePath: basicContract.filePath, + fileName: basicContract.fileName, }) .from(basicContract) .leftJoin(basicContractTemplates, eq(basicContract.templateId, basicContractTemplates.id)) @@ -153,6 +155,35 @@ export async function getVendorRegularRegistrations( auditResult: investigationFiles, }; + // 디버깅용 로그 추가 + console.log(`🔍 벤더 ID ${registration.vendorId} documentFiles 구조:`, { + businessRegistration: documentFiles.businessRegistration.map(f => ({ + fileName: f.fileName, + filePath: f.filePath, + attachmentType: f.attachmentType, + allKeys: Object.keys(f) + })), + creditEvaluation: documentFiles.creditEvaluation.map(f => ({ + fileName: f.fileName, + filePath: f.filePath, + attachmentType: f.attachmentType, + allKeys: Object.keys(f) + })), + bankCopy: documentFiles.bankCopy.map(f => ({ + fileName: f.fileName, + filePath: f.filePath, + attachmentType: f.attachmentType, + allKeys: Object.keys(f) + })), + auditResult: documentFiles.auditResult.map(f => ({ + fileName: f.fileName, + attachmentType: f.attachmentType, + allKeys: Object.keys(f) + })), + totalVendorFiles: vendorFiles.length, + totalInvestigationFiles: investigationFiles.length + }); + // 문서 제출 현황 로그 console.log(`📊 벤더 ID ${registration.vendorId} 문서 제출 현황:`, { documentSubmissionsStatus, @@ -230,11 +261,13 @@ export async function getVendorRegularRegistrations( gtcSkipped: registration.gtcSkipped || false, additionalInfo: additionalInfoCompleted, // 기본계약 정보 - basicContracts: vendorContracts.map(contract => ({ + basicContracts: vendorContracts.map((contract: any) => ({ templateId: contract.templateId, templateName: contract.templateName, status: contract.status, createdAt: contract.createdAt, + filePath: contract.filePath, + fileName: contract.fileName, })), registrationRequestDate: registration.registrationRequestDate || null, assignedDepartment: registration.assignedDepartment, diff --git a/lib/vendor-regular-registrations/service.ts b/lib/vendor-regular-registrations/service.ts index d64c7b8b..7ec433b4 100644 --- a/lib/vendor-regular-registrations/service.ts +++ b/lib/vendor-regular-registrations/service.ts @@ -714,6 +714,8 @@ export async function fetchVendorRegistrationStatus(vendorId: number) { const investigationFiles = await db .select({ attachmentId: vendorInvestigationAttachments.id, + fileName: vendorInvestigationAttachments.fileName, + filePath: vendorInvestigationAttachments.filePath, createdAt: vendorInvestigationAttachments.createdAt, }) .from(vendorInvestigationAttachments) @@ -735,6 +737,8 @@ export async function fetchVendorRegistrationStatus(vendorId: number) { templateName: basicContractTemplates.templateName, status: basicContract.status, createdAt: basicContract.createdAt, + filePath: basicContract.filePath, + fileName: basicContract.fileName, }) .from(basicContract) .leftJoin(basicContractTemplates, eq(basicContract.templateId, basicContractTemplates.id)) @@ -796,6 +800,14 @@ export async function fetchVendorRegistrationStatus(vendorId: number) { safetyQualification: investigationFiles.length > 0, } + // 문서별 파일 정보 (다운로드용) + const documentFiles = { + businessRegistration: vendorFiles.filter(f => f.attachmentType === "BUSINESS_REGISTRATION"), + creditEvaluation: vendorFiles.filter(f => f.attachmentType === "CREDIT_REPORT"), + bankCopy: vendorFiles.filter(f => f.attachmentType === "BANK_ACCOUNT_COPY"), + auditResult: investigationFiles, + } + // 미완성 항목 계산 const missingDocuments = Object.entries(documentStatus) .filter(([, value]) => !value) @@ -831,6 +843,7 @@ export async function fetchVendorRegistrationStatus(vendorId: number) { vendor: vendor[0], registration: registration[0] || null, documentStatus, + documentFiles, // 문서별 파일 정보 추가 missingDocuments, businessContacts, missingContactTypes, -- cgit v1.2.3