|
|
|
@ -249,6 +249,7 @@ public class BizNimsResponse {
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 바코드 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
|
|
|
|
|