Commit 4c0411dd zshaohui

先根据xml进行解析,再根据条码规则进行解析

1 个父辈 511d2696
...@@ -5,6 +5,7 @@ import com.myproject.api.SmbUtil; ...@@ -5,6 +5,7 @@ import com.myproject.api.SmbUtil;
import com.myproject.bean.CodeBean; import com.myproject.bean.CodeBean;
import com.myproject.bean.update.Barcode; import com.myproject.bean.update.Barcode;
import com.myproject.webapp.controller.webService.DataCache; import com.myproject.webapp.controller.webService.DataCache;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
...@@ -458,6 +459,14 @@ public class BarcodeRule { ...@@ -458,6 +459,14 @@ public class BarcodeRule {
} }
codeBean.setCodeStr(codeStr); codeBean.setCodeStr(codeStr);
//先xml进行解析,如果没有解析出来,则按条码规则进行解析
Barcode xmlBarcode = getXmlBarcode(codeStr);
if (xmlBarcode != null){
codeBean.setBarcode(xmlBarcode);
return codeBean;
}
if(!isValidRule()){ if(!isValidRule()){
codeBean.setError("error.barcode.noRule","解析规则未定义"); codeBean.setError("error.barcode.noRule","解析规则未定义");
return codeBean; return codeBean;
...@@ -574,6 +583,35 @@ public class BarcodeRule { ...@@ -574,6 +583,35 @@ public class BarcodeRule {
return codeBean; 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 * @return
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!