diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-09-05 11:44:32 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-09-05 11:44:32 +0000 |
| commit | 50adedf48ee4674ebe00f1ee72d93485183cdc51 (patch) | |
| tree | 18053ab04d94c750028eee5d5d2f16ba4f38f50e /lib/forms/vendor-completion-examples.ts | |
| parent | 66d64b482f2b6b52b0dd396ef998f27d491c70dd (diff) | |
(대표님, 최겸, 임수민) EDP 입력 진행률, 견적목록관리, EDP excel import 오류수정, GTC-Contract
Diffstat (limited to 'lib/forms/vendor-completion-examples.ts')
| -rw-r--r-- | lib/forms/vendor-completion-examples.ts | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/lib/forms/vendor-completion-examples.ts b/lib/forms/vendor-completion-examples.ts deleted file mode 100644 index b2cac730..00000000 --- a/lib/forms/vendor-completion-examples.ts +++ /dev/null @@ -1,205 +0,0 @@ -/** - * 벤더 입력 완성도 서버 액션 사용 예제 - * - * 이 파일은 실제 사용 방법을 보여주는 예제입니다. - */ - -import { - calculateVendorFormCompletion, - getProjectVendorCompletionSummary, - calculateVendorContractCompletion, - getVendorAllContractsCompletionSummary, - getAllVendorsContractsCompletionSummary, - getAllProjectsVendorCompletionSummary -} from './vendor-completion-stats'; - -/** - * 예제 1: 특정 벤더의 특정 Form 완성도 확인 - */ -export async function exampleVendorFormCompletion() { - const contractItemId = 123; - const formCode = "SPR_LST"; - - const stats = await calculateVendorFormCompletion(contractItemId, formCode); - - if (stats) { - console.log(`벤더: ${stats.vendorName}`); - console.log(`폼: ${stats.formName} (${stats.formCode})`); - console.log(`완성도: ${stats.completionPercentage}%`); - console.log(`입력 현황: ${stats.totalFilledFields}/${stats.totalRequiredFields} 필드 완료`); - console.log(`미입력 필드: ${stats.totalEmptyFields}개`); - console.log(`총 태그 수: ${stats.tagCount}개`); - - // 태그별 세부 현황 - stats.detailsByTag.forEach(tag => { - console.log(` 태그 ${tag.tagNo}: ${tag.completionPercentage}% (${tag.filledFields}/${tag.requiredFields})`); - }); - } - - return stats; -} - -/** - * 예제 2: 프로젝트의 모든 벤더들의 특정 Form 완성도 요약 - */ -export async function exampleProjectFormCompletion() { - const projectId = 456; - const formCode = "SPR_LST"; - - const summary = await getProjectVendorCompletionSummary(projectId, formCode); - - if (summary) { - console.log(`프로젝트: ${summary.projectName} (${summary.projectCode})`); - console.log(`평균 완성도: ${summary.averageCompletionPercentage}%`); - console.log(`참여 벤더 수: ${summary.totalVendors}개`); - - // 벤더별 완성도 - summary.vendors.forEach(vendor => { - console.log(` ${vendor.vendorName}: ${vendor.completionPercentage}%`); - }); - } - - return summary; -} - -/** - * 예제 3: 특정 벤더의 특정 계약에 대한 모든 Form 완성도 - */ -export async function exampleVendorContractCompletion() { - const vendorId = 789; - const contractItemId = 123; - - const stats = await calculateVendorContractCompletion(vendorId, contractItemId); - - if (stats) { - console.log(`벤더: ${stats.contracts?.[0]?.forms?.[0]?.vendorName || 'Unknown'}`); - console.log(`프로젝트: ${stats.projectName} (${stats.projectCode})`); - console.log(`아이템: ${stats.itemName} (${stats.itemCode})`); - console.log(`전체 완성도: ${stats.averageCompletionPercentage}%`); - console.log(`총 폼 수: ${stats.totalForms}개`); - console.log(`총 필드 수: ${stats.totalRequiredFields}개`); - console.log(`입력된 필드: ${stats.totalFilledFields}개`); - - // 폼별 완성도 - stats.forms.forEach(form => { - console.log(` ${form.formName}: ${form.completionPercentage}%`); - }); - } - - return stats; -} - -/** - * 예제 4: 특정 벤더의 모든 계약에 대한 입력 완성도 요약 - */ -export async function exampleVendorAllContractsCompletion() { - const vendorId = 789; - - const summary = await getVendorAllContractsCompletionSummary(vendorId); - - if (summary) { - console.log(`벤더: ${summary.vendorName}`); - console.log(`전체 완성도: ${summary.overallCompletionPercentage}%`); - console.log(`총 계약 수: ${summary.totalContracts}개`); - console.log(`총 폼 수: ${summary.totalForms}개`); - console.log(`총 필드 수: ${summary.totalRequiredFields}개`); - console.log(`입력된 필드: ${summary.totalFilledFields}개`); - - // 프로젝트별 요약 - console.log('\n프로젝트별 완성도:'); - summary.projectBreakdown.forEach(project => { - console.log(` ${project.projectName}: ${project.completionPercentage}% (계약 ${project.contractsCount}개, 폼 ${project.formsCount}개)`); - }); - - // 계약별 세부 현황 - console.log('\n계약별 세부 현황:'); - summary.contracts.forEach(contract => { - console.log(` ${contract.itemName}: ${contract.averageCompletionPercentage}% (폼 ${contract.totalForms}개)`); - }); - } - - return summary; -} - -/** - * 예제 5: 모든 벤더들의 계약 완성도 요약 (관리자용) - */ -export async function exampleAllVendorsCompletion() { - const summary = await getAllVendorsContractsCompletionSummary(); - - console.log(`전체 벤더 수: ${summary.totalVendors}개`); - console.log(`전체 평균 완성도: ${summary.overallAverageCompletion}%`); - - // 상위 성과 벤더들 - console.log('\n상위 성과 벤더들:'); - summary.topPerformingVendors.forEach((vendor, index) => { - console.log(` ${index + 1}. ${vendor.vendorName}: ${vendor.completionPercentage}%`); - }); - - // 하위 성과 벤더들 - console.log('\n개선이 필요한 벤더들:'); - summary.lowPerformingVendors.forEach((vendor, index) => { - console.log(` ${index + 1}. ${vendor.vendorName}: ${vendor.completionPercentage}%`); - }); - - return summary; -} - -/** - * 예제 6: 모든 프로젝트의 벤더 완성도 요약 (관리자용) - */ -export async function exampleAllProjectsCompletion() { - const summary = await getAllProjectsVendorCompletionSummary(); - - console.log(`전체 프로젝트 수: ${summary.totalProjects}개`); - console.log(`전체 평균 완성도: ${summary.overallAverageCompletion}%`); - - // 프로젝트별 완성도 - console.log('\n프로젝트별 완성도:'); - summary.projects.forEach(project => { - console.log(` ${project.projectName}: ${project.averageCompletionPercentage}% (벤더 ${project.totalVendors}개)`); - }); - - return summary; -} - -/** - * 예제 7: 대시보드용 완성도 통계 생성 - */ -export async function generateCompletionDashboard() { - console.log('=== 벤더 입력 완성도 대시보드 ===\n'); - - // 전체 벤더 요약 - const allVendors = await getAllVendorsContractsCompletionSummary(); - console.log(`📊 전체 통계`); - console.log(`- 총 벤더 수: ${allVendors.totalVendors}개`); - console.log(`- 평균 완성도: ${allVendors.overallAverageCompletion}%`); - - // 전체 프로젝트 요약 - const allProjects = await getAllProjectsVendorCompletionSummary(); - console.log(`- 총 프로젝트 수: ${allProjects.totalProjects}개`); - console.log(`- 프로젝트 평균 완성도: ${allProjects.overallAverageCompletion}%\n`); - - // 우수 벤더 - console.log('🏆 우수 벤더 (완성도 90% 이상):'); - const excellentVendors = allVendors.vendors.filter(v => v.overallCompletionPercentage >= 90); - excellentVendors.forEach(vendor => { - console.log(` ✅ ${vendor.vendorName}: ${vendor.overallCompletionPercentage}%`); - }); - - // 주의 필요 벤더 - console.log('\n⚠️ 주의 필요 벤더 (완성도 50% 미만):'); - const warningVendors = allVendors.vendors.filter(v => v.overallCompletionPercentage < 50); - warningVendors.forEach(vendor => { - console.log(` 🔴 ${vendor.vendorName}: ${vendor.overallCompletionPercentage}%`); - }); - - return { - totalVendors: allVendors.totalVendors, - averageCompletion: allVendors.overallAverageCompletion, - excellentVendors: excellentVendors.length, - warningVendors: warningVendors.length, - topVendors: allVendors.topPerformingVendors, - lowVendors: allVendors.lowPerformingVendors - }; -} |
