Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit c0a9630b
由
sunke
编写于
2023-02-24 11:34:34 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
条码解析添加生产商物料编号字段mpn
1 个父辈
93d0803f
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
32 行增加
和
53 行删除
src/main/java/com/neotel/smfcore/core/barcode/bean/BarcodeRule.java
src/main/java/com/neotel/smfcore/core/barcode/service/po/Barcode.java
src/main/java/com/neotel/smfcore/core/barcode/bean/BarcodeRule.java
查看文件 @
c0a9630
...
@@ -24,6 +24,7 @@ import java.util.Map;
...
@@ -24,6 +24,7 @@ import java.util.Map;
* BATCH 为批次
* BATCH 为批次
* MSL 为MSL等级
* MSL 为MSL等级
* MEMO 备注信息
* MEMO 备注信息
* MPN 生产商物料编号
*
*
*
*
*
*
...
@@ -135,9 +136,11 @@ public class BarcodeRule {
...
@@ -135,9 +136,11 @@ public class BarcodeRule {
for
(
int
i
=
0
;
i
<
tempArr
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
tempArr
.
length
;
i
++)
{
String
fieldValue
=
tempArr
[
i
];
String
fieldValue
=
tempArr
[
i
];
fieldValue
=
resolveField
(
newRule
.
mpn_item
,
fieldValue
,
i
);
if
(!
newRule
.
partNumber_item
.
hasThisField
()){
if
(!
newRule
.
partNumber_item
.
hasThisField
()){
if
(
newRule
.
partNumber_item
.
matchRule
(
fieldValue
,
i
)){
if
(
newRule
.
partNumber_item
.
matchRule
(
fieldValue
,
i
)){
log
.
info
(
"partNumber: 为"
+
newRule
.
partNumber_item
.
toString
());
log
.
info
(
"partNumber: 为"
+
newRule
.
partNumber_item
.
toString
());
fieldValue
=
fieldValue
.
replace
(
newRule
.
partNumber_item
.
name
,
""
);
}
}
}
}
if
(!
newRule
.
whole_reelId_item
.
hasThisField
()
&&
!
newRule
.
reelId_item
.
hasThisField
()){
if
(!
newRule
.
whole_reelId_item
.
hasThisField
()
&&
!
newRule
.
reelId_item
.
hasThisField
()){
...
@@ -216,6 +219,17 @@ public class BarcodeRule {
...
@@ -216,6 +219,17 @@ public class BarcodeRule {
return
newRule
;
return
newRule
;
}
}
private
static
String
resolveField
(
RuleItem
ruleItem
,
String
fieldValue
,
int
ruleIndex
){
if
(!
ruleItem
.
hasThisField
()){
if
(
ruleItem
.
matchRule
(
fieldValue
,
ruleIndex
)){
log
.
info
(
ruleItem
.
name
+
" 为"
+
ruleItem
.
toString
());
fieldValue
=
fieldValue
.
replace
(
ruleItem
.
name
,
""
);
}
}
return
fieldValue
;
}
private
String
ruleStr
;
private
String
ruleStr
;
private
String
separator
;
private
String
separator
;
private
int
length
=
0
;
private
int
length
=
0
;
...
@@ -234,6 +248,7 @@ public class BarcodeRule {
...
@@ -234,6 +248,7 @@ public class BarcodeRule {
private
RuleItem
batch_item
=
new
RuleItem
(
"BATCH"
);
private
RuleItem
batch_item
=
new
RuleItem
(
"BATCH"
);
private
RuleItem
msl_item
=
new
RuleItem
(
"MSL"
);
private
RuleItem
msl_item
=
new
RuleItem
(
"MSL"
);
private
RuleItem
memo_item
=
new
RuleItem
(
"MEMO"
);
private
RuleItem
memo_item
=
new
RuleItem
(
"MEMO"
);
private
RuleItem
mpn_item
=
new
RuleItem
(
"MPN"
);
private
class
RuleItem
{
private
class
RuleItem
{
private
RuleItem
(
String
ruleName
)
{
private
RuleItem
(
String
ruleName
)
{
...
@@ -476,10 +491,6 @@ public class BarcodeRule {
...
@@ -476,10 +491,6 @@ public class BarcodeRule {
}
}
}
}
public
static
void
toRule
(
String
codeStr
){
String
[]
codeArr
=
new
String
[]{
codeStr
};
}
/**
/**
* 从条码中解析尺寸和条码
* 从条码中解析尺寸和条码
...
@@ -540,54 +551,6 @@ public class BarcodeRule {
...
@@ -540,54 +551,6 @@ public class BarcodeRule {
log
.
info
(
"开始解析条码["
+
codeStr
+
"]"
);
log
.
info
(
"开始解析条码["
+
codeStr
+
"]"
);
CodeBean
codeBean
=
splitCodeAndSize
(
codeStr
);
CodeBean
codeBean
=
splitCodeAndSize
(
codeStr
);
// CodeBean codeBean = new CodeBean();
// codeBean.setCodeStr(codeStr);
// //是否带有位置信息
// float locationX = -1f;
// float locationY = -1f;
// int reelWidth = -1;
// int reelHeight = -1;
// //=摄像头编号+条码X坐标x条码Y坐标-料盘尺寸=CODE
// //=1+123.4x100.5-7x12=CODE或者7x12=CODE
// if(codeStr.startsWith("=") && codeStr.contains("x")){
// codeStr = codeStr.substring(1);
// String[] arr = codeStr.split("=", 2);
// String sizeStr = arr[0];
// if(sizeStr.contains("+") && sizeStr.contains("-")){
// String[] locationSizeArr = sizeStr.split("-",2);
// //尺寸信息
// sizeStr = locationSizeArr[1];
//
// String[] locationInfoArr = locationSizeArr[0].split("\\+");
// String cameraIndexStr = locationInfoArr[0];
// //摄像头编号信息
// int cameraIndex = Integer.valueOf(cameraIndexStr);
//
// codeBean.setCameraIndex(cameraIndex);
//
// String locationStr = locationInfoArr[1];
//
// //带有位置信息
// String[] locationArr = locationStr.split("x");
// locationX = Float.valueOf(locationArr[0].trim());
// locationY = Float.valueOf(locationArr[1].trim());
// }
//
// //带有料盘宽高信息
// if(!Strings.isNullOrEmpty(sizeStr)){
// String[] sizeInfoArr = sizeStr.split("x",2);
// reelWidth = Integer.parseInt(sizeInfoArr[0].trim());
// reelHeight = Integer.parseInt(sizeInfoArr[1].trim());
// }
//
// codeBean.setLocationX(locationX);
// codeBean.setLocationY(locationY);
// codeBean.setReelWidth(reelWidth);
// codeBean.setReelHeight(reelHeight);
// codeStr = arr[1];
//
// }
// codeBean.setCodeStr(codeStr);
if
(!
isValidRule
()){
if
(!
isValidRule
()){
codeBean
.
setError
(
"smfcore.error.barcode.noRule"
,
"解析规则未定义"
);
codeBean
.
setError
(
"smfcore.error.barcode.noRule"
,
"解析规则未定义"
);
return
codeBean
;
return
codeBean
;
...
@@ -629,6 +592,16 @@ public class BarcodeRule {
...
@@ -629,6 +592,16 @@ public class BarcodeRule {
codeBean
.
setError
(
"smfcore.error.barcode.noField"
,
new
String
[]{
"PN"
},
"条码解析失败,未找到{0}字段"
);
codeBean
.
setError
(
"smfcore.error.barcode.noField"
,
new
String
[]{
"PN"
},
"条码解析失败,未找到{0}字段"
);
return
codeBean
;
return
codeBean
;
}
}
if
(
mpn_item
.
hasThisField
()){
String
mpn
=
mpn_item
.
getStrValue
(
codeArr
);
b
.
setMpn
(
mpn
);
if
(
Strings
.
isNullOrEmpty
(
mpn
)){
log
.
info
(
"MPN解析失败"
);
codeBean
.
setError
(
"smfcore.error.mpn.noField"
,
new
String
[]{
"MPN"
},
"MPN解析失败"
);
return
codeBean
;
}
}
if
(
batch_item
.
hasThisField
()){
if
(
batch_item
.
hasThisField
()){
String
batch
=
batch_item
.
getStrValue
(
codeArr
);
String
batch
=
batch_item
.
getStrValue
(
codeArr
);
b
.
setBatch
(
batch
);
b
.
setBatch
(
batch
);
...
@@ -865,7 +838,7 @@ public class BarcodeRule {
...
@@ -865,7 +838,7 @@ public class BarcodeRule {
rule
=
"EXPDATEyyMMdd[12:0:-1]|BATCH[2:0:-1]|QTY[2:0:-1]|RI[2:0:-1]|PN[1:0:-1]|XXX"
;
rule
=
"EXPDATEyyMMdd[12:0:-1]|BATCH[2:0:-1]|QTY[2:0:-1]|RI[2:0:-1]|PN[1:0:-1]|XXX"
;
codeStr
=
"=1+0x0-400x62=zJFSRW46.11+250205|1TJFSRW46.11|7Q404|1TJFSRW46.11|P530828|1PMT29F2T08ELLEEG7-QD:E"
;
codeStr
=
"=1+0x0-400x62=zJFSRW46.11+250205|1TJFSRW46.11|7Q404|1TJFSRW46.11|P530828|1PMT29F2T08ELLEEG7-QD:E"
;
rule
=
"EXPDATEyyMMdd[12:0:-1]|BATCH[2:0:-1]|QTY[2:0:-1]|RI[2:0:-1]|PN[1:0:-1]|
XXX
"
;
rule
=
"EXPDATEyyMMdd[12:0:-1]|BATCH[2:0:-1]|QTY[2:0:-1]|RI[2:0:-1]|PN[1:0:-1]|
MPN[-1:0:2]
"
;
// rule="PN[1:0:-1]|BATCH[2:0:-1]|LOT[2:0:-1]|QTY[2_7Q:0:-1]|RI[1:0:-1]|SP[3:0:-1]|PRODATEyyyyMMdd[2:0:-1]|xxx";
// rule="PN[1:0:-1]|BATCH[2:0:-1]|LOT[2:0:-1]|QTY[2_7Q:0:-1]|RI[1:0:-1]|SP[3:0:-1]|PRODATEyyyyMMdd[2:0:-1]|xxx";
BarcodeRule
br
=
BarcodeRule
.
newRule
(
rule
);
BarcodeRule
br
=
BarcodeRule
.
newRule
(
rule
);
...
@@ -880,6 +853,7 @@ public class BarcodeRule {
...
@@ -880,6 +853,7 @@ public class BarcodeRule {
System
.
out
.
println
(
"EXPDATE:"
+
b
.
getExpireDate
());
System
.
out
.
println
(
"EXPDATE:"
+
b
.
getExpireDate
());
System
.
out
.
println
(
"Supllier:"
+
b
.
getProvider
());
System
.
out
.
println
(
"Supllier:"
+
b
.
getProvider
());
System
.
out
.
println
(
"Memo:"
+
b
.
getMemo
());
System
.
out
.
println
(
"Memo:"
+
b
.
getMemo
());
System
.
out
.
println
(
"MPN:"
+
b
.
getMpn
());
}
else
{
}
else
{
System
.
out
.
println
(
"解析失败"
);
System
.
out
.
println
(
"解析失败"
);
log
.
info
(
"解析失败"
);
log
.
info
(
"解析失败"
);
...
...
src/main/java/com/neotel/smfcore/core/barcode/service/po/Barcode.java
查看文件 @
c0a9630
...
@@ -66,6 +66,11 @@ public class Barcode extends BasePo implements Serializable {
...
@@ -66,6 +66,11 @@ public class Barcode extends BasePo implements Serializable {
* 料件编号
* 料件编号
*/
*/
private
String
partNumber
;
private
String
partNumber
;
/**
* 制造商物料编号
*/
private
String
mpn
;
/**
/**
* 供应商编号
* 供应商编号
*/
*/
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论