마약류바코드 parse 정리

dev
Jonguk. Lim 6 months ago
parent af8a1f67a7
commit 7d26c74c3c

@ -265,12 +265,14 @@ public class BizNimsResponse {
throw new IllegalArgumentException("Barcode는 최소 30자리 이상이어야 합니다."); throw new IllegalArgumentException("Barcode는 최소 30자리 이상이어야 합니다.");
} }
// AI상품식별코드(01)로 시작 // AI상품식별코드(01)로 시작
// 01 + 088065780457311717050110A1234210000000006
if(barcodeStr.startsWith(this.gsId) == false){ if(barcodeStr.startsWith(this.gsId) == false){
throw new IllegalArgumentException("Barcode(GS1-128)는 AI상품식별코드(01)로 시작 되어야 합니다."); throw new IllegalArgumentException("Barcode(GS1-128)는 AI상품식별코드(01)로 시작 되어야 합니다.");
} }
String barcode = barcodeStr.substring(barcodeStr.indexOf(this.gsId)+this.gsId.length()); String barcode = barcodeStr.substring(barcodeStr.indexOf(this.gsId)+this.gsId.length());
// 상품코드(확장코드(0) + 상품코드(13)) // 상품코드(확장코드(0) + 상품코드(13))
// 08806578045731 + 1717050110A1234210000000006
String temp = barcode.substring(0, 14); String temp = barcode.substring(0, 14);
String regx = "^0(\\d{13})"; String regx = "^0(\\d{13})";
Pattern pattern = Pattern.compile(regx); Pattern pattern = Pattern.compile(regx);
@ -283,6 +285,7 @@ public class BizNimsResponse {
barcode = barcode.substring(14); barcode = barcode.substring(14);
// 유통일자 : AI최대유통일자(17) + 6자리 유통일자 // 유통일자 : AI최대유통일자(17) + 6자리 유통일자
// 17170501 + 10A1234210000000006
temp = barcode.substring(0, 8); temp = barcode.substring(0, 8);
regx = "^17(\\d{6})"; regx = "^17(\\d{6})";
pattern = Pattern.compile(regx); pattern = Pattern.compile(regx);
@ -296,6 +299,7 @@ public class BizNimsResponse {
barcode = barcode.substring(8); barcode = barcode.substring(8);
// 제조번호 : AI로트번호(10)로 시작 ~ 20자 이하 제조번호 ~ AI일련번호(21) 이전 // 제조번호 : AI로트번호(10)로 시작 ~ 20자 이하 제조번호 ~ AI일련번호(21) 이전
// 10A123421 + 0000000006
regx = "^10(.{1,20})21"; regx = "^10(.{1,20})21";
pattern = Pattern.compile(regx); pattern = Pattern.compile(regx);
matcher = pattern.matcher(barcode); matcher = pattern.matcher(barcode);
@ -307,6 +311,7 @@ public class BizNimsResponse {
barcode = barcode.substring(mnfSeqInfo.getMnfNo().length()+2); barcode = barcode.substring(mnfSeqInfo.getMnfNo().length()+2);
// 제품일련번호 : AI일련번호(21)로 시작 ~ 20자 이하 제조일련번호 // 제품일련번호 : AI일련번호(21)로 시작 ~ 20자 이하 제조일련번호
// 210000000006
regx = "^21(.{1,20}$)"; regx = "^21(.{1,20}$)";
pattern = Pattern.compile(regx); pattern = Pattern.compile(regx);
matcher = pattern.matcher(barcode); matcher = pattern.matcher(barcode);

Loading…
Cancel
Save