From 2ecdac866c19abea0b5389708fcdf5b3889c969a Mon Sep 17 00:00:00 2001
From: joonhoekim <26rote@gmail.com>
Date: Wed, 29 Oct 2025 15:59:04 +0900
Subject: (김준회) SWP 파일 업로드 취소 기능 추가, 업로드 파일명 검증로직에서
 파일명 비필수로 변경
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lib/swp/table/swp-help-dialog.tsx | 66 ++++++++++++++++++++++++++++++---------
 1 file changed, 51 insertions(+), 15 deletions(-)

(limited to 'lib/swp/table/swp-help-dialog.tsx')

diff --git a/lib/swp/table/swp-help-dialog.tsx b/lib/swp/table/swp-help-dialog.tsx
index 6880a8c7..c6c5296b 100644
--- a/lib/swp/table/swp-help-dialog.tsx
+++ b/lib/swp/table/swp-help-dialog.tsx
@@ -21,7 +21,7 @@ export function SwpUploadHelpDialog() {
           업로드 가이드
         </Button>
       </DialogTrigger>
-      <DialogContent className="max-w-2xl" opacityControl={false}>
+      <DialogContent className="max-w-2xl max-h-[80vh] overflow-y-auto">
         <DialogHeader>
           <DialogTitle>파일 업로드 가이드</DialogTitle>
           <DialogDescription>
@@ -34,10 +34,13 @@ export function SwpUploadHelpDialog() {
           <div className="space-y-2">
             <h3 className="text-sm font-semibold">파일명 형식</h3>
             <div className="rounded-lg bg-muted p-4 font-mono text-sm">
-              [OWN_DOC_NO]_[REV_NO]_[STAGE]_[YYYYMMDDhhmmss].[확장자]
+              [DOC_NO]_[REV_NO]_[STAGE].[확장자]
             </div>
             <p className="text-xs text-muted-foreground">
-              ⚠️ 언더스코어(_)가 정확히 3개 있어야 합니다
+              ⚠️ 언더스코어(_)가 최소 2개 이상 있어야 합니다
+            </p>
+            <p className="text-xs text-muted-foreground">
+              ℹ️ 선택사항: 4번째 항목으로 파일명을 추가할 수 있습니다 (예: [DOC_NO]_[REV_NO]_[STAGE]_[파일명].[확장자])
             </p>
           </div>
 
@@ -47,7 +50,7 @@ export function SwpUploadHelpDialog() {
             
             <div className="flex items-center gap-3 rounded-lg border p-3">
               <Badge variant="secondary" className="font-mono shrink-0">
-                OWN_DOC_NO
+                DOC_NO
               </Badge>
               <div className="text-sm">
                 <span className="font-medium">벤더의 문서번호</span>
@@ -77,11 +80,11 @@ export function SwpUploadHelpDialog() {
 
             <div className="flex items-center gap-3 rounded-lg border p-3">
               <Badge variant="secondary" className="font-mono shrink-0">
-                YYYYMMDDhhmmss
+                파일명
               </Badge>
               <div className="text-sm">
-                <span className="font-medium">날짜 및 시간</span>
-                <span className="text-muted-foreground"> - 업로드 날짜 정보를 기입합니다 (14자리 숫자)</span>
+                <span className="font-medium">자유 파일명 (선택사항)</span>
+                <span className="text-muted-foreground"> - 문서를 식별할 수 있는 이름 (언더스코어 포함 가능, 생략 가능)</span>
               </div>
             </div>
           </div>
@@ -92,13 +95,35 @@ export function SwpUploadHelpDialog() {
             <div className="space-y-2">
               <div className="rounded-lg bg-green-50 dark:bg-green-950/30 border border-green-200 dark:border-green-800 p-3">
                 <code className="text-xs font-mono text-green-700 dark:text-green-300">
-                  VD-DOC-001_01_IFA_20250124143000.pdf
+                  VD-DOC-001_01_IFA.pdf
+                </code>
+                <p className="text-xs text-green-600 dark:text-green-400 mt-1">
+                  ✓ 기본 형식 (파일명 생략)
+                </p>
+              </div>
+              <div className="rounded-lg bg-green-50 dark:bg-green-950/30 border border-green-200 dark:border-green-800 p-3">
+                <code className="text-xs font-mono text-green-700 dark:text-green-300">
+                  VD-DOC-001_01_IFA_drawing_final.pdf
+                </code>
+                <p className="text-xs text-green-600 dark:text-green-400 mt-1">
+                  ✓ 파일명 추가 (파일명에 언더스코어 포함 가능)
+                </p>
+              </div>
+              <div className="rounded-lg bg-green-50 dark:bg-green-950/30 border border-green-200 dark:border-green-800 p-3">
+                <code className="text-xs font-mono text-green-700 dark:text-green-300">
+                  TECH-SPEC-002_02_IFC.dwg
                 </code>
+                <p className="text-xs text-green-600 dark:text-green-400 mt-1">
+                  ✓ 기본 형식 사용
+                </p>
               </div>
               <div className="rounded-lg bg-green-50 dark:bg-green-950/30 border border-green-200 dark:border-green-800 p-3">
                 <code className="text-xs font-mono text-green-700 dark:text-green-300">
-                  TECH-SPEC-002_02_IFC_20250124150000.dwg
+                  DOC-003_03_IFA_test_result_data.xlsx
                 </code>
+                <p className="text-xs text-green-600 dark:text-green-400 mt-1">
+                  ✓ 파일명 추가 (여러 단어 조합 가능)
+                </p>
               </div>
             </div>
           </div>
@@ -109,7 +134,7 @@ export function SwpUploadHelpDialog() {
             <div className="space-y-2">
               <div className="rounded-lg bg-red-50 dark:bg-red-950/30 border border-red-200 dark:border-red-800 p-3">
                 <code className="text-xs font-mono text-red-700 dark:text-red-300">
-                  VD-DOC-001-01-IFA-20250124.pdf
+                  VD-DOC-001-01-IFA.pdf
                 </code>
                 <p className="text-xs text-red-600 dark:text-red-400 mt-1">
                   ✗ 언더스코어(_) 대신 하이픈(-) 사용
@@ -117,18 +142,26 @@ export function SwpUploadHelpDialog() {
               </div>
               <div className="rounded-lg bg-red-50 dark:bg-red-950/30 border border-red-200 dark:border-red-800 p-3">
                 <code className="text-xs font-mono text-red-700 dark:text-red-300">
-                  VD-DOC-001_01_IFA.pdf
+                  VD-DOC-001_01.pdf
+                </code>
+                <p className="text-xs text-red-600 dark:text-red-400 mt-1">
+                  ✗ STAGE 정보 누락 (최소 3개 항목 필요)
+                </p>
+              </div>
+              <div className="rounded-lg bg-red-50 dark:bg-red-950/30 border border-red-200 dark:border-red-800 p-3">
+                <code className="text-xs font-mono text-red-700 dark:text-red-300">
+                  VD DOC 001_01_IFA.pdf
                 </code>
                 <p className="text-xs text-red-600 dark:text-red-400 mt-1">
-                  ✗ 날짜/시간 정보 누락
+                  ✗ 공백 포함 (언더스코어 사용 필요)
                 </p>
               </div>
               <div className="rounded-lg bg-red-50 dark:bg-red-950/30 border border-red-200 dark:border-red-800 p-3">
                 <code className="text-xs font-mono text-red-700 dark:text-red-300">
-                  VD-DOC-001_01_IFA_20250124.pdf
+                  VD-DOC-001__IFA.pdf
                 </code>
                 <p className="text-xs text-red-600 dark:text-red-400 mt-1">
-                  ✗ 시간 정보 누락 (14자리가 아님)
+                  ✗ REV_NO 비어있음 (빈 항목 불가)
                 </p>
               </div>
             </div>
@@ -140,7 +173,10 @@ export function SwpUploadHelpDialog() {
               ⚠️ 주의사항
             </h3>
             <ul className="text-xs text-amber-800 dark:text-amber-200 space-y-1 list-disc list-inside">
-              <li>파일명 형식이 올바르지 않으면 업로드가 실패합니다</li>
+              <li>파일명은 최소 [DOC_NO]_[REV_NO]_[STAGE].[확장자] 형식이어야 합니다</li>
+              <li>DOC_NO는 현재 프로젝트에 할당된 문서번호여야 합니다</li>
+              <li>4번째 항목(파일명)은 선택사항으로 생략 가능합니다</li>
+              <li>업로드 날짜/시간은 시스템에서 자동으로 생성됩니다</li>
               <li>같은 파일명으로 이미 업로드된 파일이 있으면 덮어쓰지 않고 오류 처리됩니다</li>
               <li>프로젝트와 업체 코드를 먼저 선택해야 업로드 버튼이 활성화됩니다</li>
             </ul>
-- 
cgit v1.2.3

