fix: Honeywell barcode reader 적용

- 필드분리문자 [GS] 적용(제조번호에)
dev
Jonguk. Lim 5 months ago
parent 43b82a67e9
commit 5819857f20

@ -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

Loading…
Cancel
Save