From 5819857f205d6d08d07078dc5b855bef31efac37 Mon Sep 17 00:00:00 2001 From: "Jonguk. Lim" Date: Mon, 10 Jun 2024 19:35:03 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Honeywell=20barcode=20reader=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9=20=20=20=20=20=20-=20=ED=95=84=EB=93=9C=EB=B6=84?= =?UTF-8?q?=EB=A6=AC=EB=AC=B8=EC=9E=90=20[GS]=20=EC=A0=81=EC=9A=A9(?= =?UTF-8?q?=EC=A0=9C=EC=A1=B0=EB=B2=88=ED=98=B8=EC=97=90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cokr/xit/adds/biz/nims/model/BizNimsResponse.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsResponse.java b/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsResponse.java index 4662382..cca84bc 100644 --- a/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsResponse.java +++ b/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsResponse.java @@ -249,6 +249,7 @@ public class BizNimsResponse { /** *
 		 * 바코드 reader 사용시 - Barcode(GS1-128) 정보 파싱
+		 * - Honeywell 1470g 바코드 리더 사용 -  필드분리문자 [GS] 적용 : 제조번호에
 		 * 최소 30자리 이상
 		 * AI상품식별코드(2) + 상품코드(14) + AI최대유통일자(2) + 유통일자(6) + AI로트번호(2) + 제조번호(1) + AI일련번호(2) + 제품일련번호(1)
 		 * -> 상품코드(확장코드(1) + 상품코드(13)), 제조번호(1), 제품일련번호(1) 은 필수로 포함한다는 가정
@@ -300,8 +301,11 @@ public class BizNimsResponse {
 			barcode = barcode.substring(8);
 
 			// 제조번호 : AI로트번호(10)로 시작 ~ 20자 이하 제조번호 ~ AI일련번호(21) 이전
+			// 스캐너 사용시 필드분리문자 [GS] 포함
 			// 10A123421 + 0000000006
-			regx = "^10(.{1,20})21";
+			// 10A1234[GS]21 + 0000000006
+			//regx = "^10(.{1,20}?)(\\[GS\\]21|21])";
+			regx = "^10(.{1,20}?)(?:\\[GS\\]21|21)";
 			pattern = Pattern.compile(regx);
 			matcher = pattern.matcher(barcode);
 			if(matcher.find()) {
@@ -310,6 +314,9 @@ public class BizNimsResponse {
 				throw new IllegalArgumentException("Barcode(GS1-128) 제조번호는 AI로트번호(10)로 시작 되어 AI일련번호(21)로 끝나야 합니다.");
 			}
 			barcode = barcode.substring(mnfSeqInfo.getMnfNo().length()+2);
+			if(barcode.startsWith("[GS]")){
+				barcode = barcode.substring(4);
+			}
 
 			// 제품일련번호 : AI일련번호(21)로 시작 ~ 20자 이하 제조일련번호
 			// 210000000006