From 57e3a696f4bdee665cf592463acf48ba83a6e2cd Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Mon, 24 Nov 2025 18:38:08 +0900 Subject: (김준회) dolce rebuild: 파일 업로드 개선, b4 일괄업로드 문서명 파싱 문제 해결 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/dolce/dialogs/b4-upload-validation-dialog.tsx | 30 ++++++++++++++--------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'lib/dolce/dialogs/b4-upload-validation-dialog.tsx') diff --git a/lib/dolce/dialogs/b4-upload-validation-dialog.tsx b/lib/dolce/dialogs/b4-upload-validation-dialog.tsx index b274d604..f3a7c70a 100644 --- a/lib/dolce/dialogs/b4-upload-validation-dialog.tsx +++ b/lib/dolce/dialogs/b4-upload-validation-dialog.tsx @@ -39,8 +39,11 @@ interface B4UploadValidationDialogProps { /** * B4 파일명 검증 함수 - * 형식: [버림] [DrawingNo] [RevNo].[확장자] - * 예시: "testfile GTT-DE-007 R01.pdf" → DrawingNo: "GTT-DE-007", RevNo: "R01" + * 형식: [버림] [문서번호토큰1] [문서번호토큰2] ... [리비전번호].[확장자] + * 예시: "testfile GTT DE 007 R01.pdf" → DrawingNo: "GTT-DE-007", RevNo: "R01" + * - 첫 번째 토큰은 버림 + * - 마지막 토큰은 RevNo + * - 중간 토큰들을 "-"로 연결하여 DrawingNo 생성 */ export function validateB4FileName(fileName: string): { valid: boolean; @@ -57,23 +60,25 @@ export function validateB4FileName(fileName: string): { }; } - const extension = fileName.substring(lastDotIndex + 1); const nameWithoutExt = fileName.substring(0, lastDotIndex); // 공백으로 분리 const parts = nameWithoutExt.split(" ").filter(p => p.trim() !== ""); - // 최소 3개 파트 필요: [버림], DrawingNo, RevNo + // 최소 3개 파트 필요: [버림], [문서번호토큰], [RevNo] if (parts.length < 3) { return { valid: false, - error: `공백이 최소 2개 있어야 합니다 (현재: ${parts.length - 1}개). 형식: [버림] [DrawingNo] [RevNo].[확장자]`, + error: `공백이 최소 2개 있어야 합니다 (현재: ${parts.length - 1}개). 형식: [버림] [문서번호토큰들...] [RevNo].[확장자]`, }; } // 첫 번째 토큰은 버림 - const drawingNo = parts[1]; - const revNo = parts[2]; + // 마지막 토큰은 RevNo + // 중간 토큰들을 "-"로 연결하여 DrawingNo 생성 + const revNo = parts[parts.length - 1]; + const drawingTokens = parts.slice(1, parts.length - 1); + const drawingNo = drawingTokens.join("-"); // 필수 항목이 비어있지 않은지 확인 if (!drawingNo || drawingNo.trim() === "") { @@ -307,16 +312,19 @@ export function B4UploadValidationDialog({ 📋 올바른 파일명 형식 - [버림] [DrawingNo] [RevNo].[확장자] + [버림] [문서번호토큰1] [문서번호토큰2] ... [RevNo].[확장자]
- 예: testfile GTT-DE-007 R01.pdf + 예: testfile GTT DE 007 R01.pdf → DrawingNo: GTT-DE-007, Rev: R01
- ※ 첫 번째 단어는 무시되며, 공백으로 구분됩니다 + ※ 첫 번째 단어는 무시됩니다
- ※ 네 번째 이상의 단어가 있으면 무시됩니다 + ※ 마지막 단어는 리비전 번호(RevNo)입니다 +
+
+ ※ 중간의 모든 단어는 "-"로 연결되어 문서번호(DrawingNo)가 됩니다
-- cgit v1.2.3