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