summaryrefslogtreecommitdiff
path: root/lib/forms/vendor-completion-examples.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-09-05 11:44:32 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-09-05 11:44:32 +0000
commit50adedf48ee4674ebe00f1ee72d93485183cdc51 (patch)
tree18053ab04d94c750028eee5d5d2f16ba4f38f50e /lib/forms/vendor-completion-examples.ts
parent66d64b482f2b6b52b0dd396ef998f27d491c70dd (diff)
(대표님, 최겸, 임수민) EDP 입력 진행률, 견적목록관리, EDP excel import 오류수정, GTC-Contract
Diffstat (limited to 'lib/forms/vendor-completion-examples.ts')
-rw-r--r--lib/forms/vendor-completion-examples.ts205
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
- };
-}