Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
SmdBox
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 4c0411dd
由
zshaohui
编写于
2025-01-14 16:54:44 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
先根据xml进行解析,再根据条码规则进行解析
1 个父辈
511d2696
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
38 行增加
和
0 行删除
myproject/src/main/java/com/myproject/util/BarcodeRule.java
myproject/src/main/java/com/myproject/util/BarcodeRule.java
查看文件 @
4c0411d
...
...
@@ -5,6 +5,7 @@ import com.myproject.api.SmbUtil;
import
com.myproject.bean.CodeBean
;
import
com.myproject.bean.update.Barcode
;
import
com.myproject.webapp.controller.webService.DataCache
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
...
...
@@ -458,6 +459,14 @@ public class BarcodeRule {
}
codeBean
.
setCodeStr
(
codeStr
);
//先xml进行解析,如果没有解析出来,则按条码规则进行解析
Barcode
xmlBarcode
=
getXmlBarcode
(
codeStr
);
if
(
xmlBarcode
!=
null
){
codeBean
.
setBarcode
(
xmlBarcode
);
return
codeBean
;
}
if
(!
isValidRule
()){
codeBean
.
setError
(
"error.barcode.noRule"
,
"解析规则未定义"
);
return
codeBean
;
...
...
@@ -574,6 +583,35 @@ public class BarcodeRule {
return
codeBean
;
}
private
static
Barcode
getXmlBarcode
(
String
codeStr
)
{
log
.
info
(
"根据xml解析条码信息,内容为:"
+
codeStr
);
//先加一个根元素
String
codeStrWithRoot
=
"<root>"
+
codeStr
+
"</root>"
;
String
ri
=
XmlUtil
.
getNodeBody
(
"cbid"
,
codeStrWithRoot
);
String
partNumber
=
XmlUtil
.
getNodeBody
(
"wzbm"
,
codeStrWithRoot
);
if
(
StringUtils
.
isNotEmpty
(
ri
)
&&
StringUtils
.
isNotEmpty
(
partNumber
)){
String
qtyStr
=
XmlUtil
.
getNodeBody
(
"sl"
,
codeStrWithRoot
);
int
qty
=
1
;
try
{
qty
=
Integer
.
parseInt
(
qtyStr
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
String
batch
=
XmlUtil
.
getNodeBody
(
"ckdh"
,
codeStrWithRoot
);
if
(
StringUtils
.
isEmpty
(
batch
)){
batch
=
XmlUtil
.
getNodeBody
(
"dhdh"
,
codeStrWithRoot
);
}
Barcode
barcode
=
new
Barcode
();
barcode
.
setBarcode
(
ri
);
barcode
.
setPartNumber
(
partNumber
);
barcode
.
setAmount
(
qty
);
barcode
.
setBatch
(
batch
);
return
barcode
;
}
log
.
info
(
"xml解析失败,条码为:"
+
codeStrWithRoot
+
"按条码规则进行解析"
);
return
null
;
}
/**
* 转义正则特殊字符 ($()*+.[]?\^{}
* @return
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论