From a41c75c0f8edc39ba1305ffeecd9e8748fb62398 Mon Sep 17 00:00:00 2001 From: Johngreen Date: Fri, 31 Oct 2025 11:17:05 +0900 Subject: [PATCH] =?UTF-8?q?=ED=92=88=EB=B2=88.=ED=99=95=EC=9E=A5=EC=9E=90?= =?UTF-8?q?=E2=80=9D=20=EB=A1=9C=20=ED=96=88=EC=9D=84=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=EC=8B=9C=20=EC=A0=95=ED=99=95?= =?UTF-8?q?=ED=95=9C=20=EC=9C=84=EC=B9=98=20=EC=97=85=EB=A1=9C=EB=93=9C=20?= =?UTF-8?q?=EB=B2=84=EA=B7=B8=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/partMng/structurePopupLeft.jsp | 4 +-- src/com/pms/controller/PartMngController.java | 28 ++++++++++--------- src/com/pms/mapper/partMng.xml | 1 + 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/WebContent/WEB-INF/view/partMng/structurePopupLeft.jsp b/WebContent/WEB-INF/view/partMng/structurePopupLeft.jsp index 9ffdbd2..02a7baa 100644 --- a/WebContent/WEB-INF/view/partMng/structurePopupLeft.jsp +++ b/WebContent/WEB-INF/view/partMng/structurePopupLeft.jsp @@ -479,7 +479,7 @@ function fn_uploadDrawingFiles(files) { msg += '- PDF: ' + filesByType['PDF'].length + '개'; Swal.fire({ - title: '도면 업로드', + title: '도면 다증 업로드', text: msg, icon: 'question', showCancelButton: true, @@ -596,7 +596,7 @@ function fn_processDrawingUpload(bomObjId, filesByType) { - +
diff --git a/src/com/pms/controller/PartMngController.java b/src/com/pms/controller/PartMngController.java index 22a80e7..fe4e20d 100644 --- a/src/com/pms/controller/PartMngController.java +++ b/src/com/pms/controller/PartMngController.java @@ -2267,23 +2267,25 @@ public class PartMngController { continue; } - // 파일명에서 품번 찾기 (파일명에 품번이 포함되어 있는 경우) + // 파일명에서 확장자 제거하여 품번 추출 + String fileNameWithoutExt = originalFileName; + int lastDotIndex = originalFileName.lastIndexOf('.'); + if(lastDotIndex > 0) { + fileNameWithoutExt = originalFileName.substring(0, lastDotIndex); + } + + // 품번과 정확히 일치하는 경우만 매칭 String matchedPartNo = null; - System.out.println("품번 매칭 시작 - 파일명: " + originalFileName); - for(String partNo : partNoMap.keySet()) { - System.out.println(" 품번 확인: " + partNo + " -> " + (originalFileName.contains(partNo) ? "매칭!" : "미매칭")); - if(originalFileName.contains(partNo)) { - matchedPartNo = partNo; - System.out.println(" ✓ 품번 매칭 성공: " + partNo); - break; - } - } - - if(matchedPartNo == null) { - System.out.println(" ✗ 품번 매칭 실패 - 파일명에서 품번을 찾을 수 없음"); + System.out.println("품번 매칭 시작 - 파일명(확장자 제외): " + fileNameWithoutExt); + + // 정확한 매칭 (품번과 파일명이 정확히 일치) + if(partNoMap.containsKey(fileNameWithoutExt)) { + matchedPartNo = fileNameWithoutExt; + System.out.println(" ✓ 품번 정확 매칭 성공: " + matchedPartNo); } if(matchedPartNo == null) { + System.out.println(" ✗ 품번 매칭 실패 - 파일명과 일치하는 품번이 없음"); notFoundCount++; continue; } diff --git a/src/com/pms/mapper/partMng.xml b/src/com/pms/mapper/partMng.xml index 78ee0c2..7b5bf4c 100644 --- a/src/com/pms/mapper/partMng.xml +++ b/src/com/pms/mapper/partMng.xml @@ -2020,6 +2020,7 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.* --> AND OBJID IN (SELECT NVL(LAST_PART_OBJID, PART_NO) FROM BOM_PART_QTY Q WHERE BOM_REPORT_OBJID = #{SEARCH_BOM_OBJID} + AND (Q.STATUS IS NULL OR Q.STATUS NOT IN ('deleted', 'deleting')) AND Q.CHILD_OBJID = #{qtyObjId}