Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jump_hm_warehouse
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
毛勇泽
jump_hm_warehouse
Commits
8caed643
Commit
8caed643
authored
Jan 24, 2024
by
毛勇泽
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
扫描解析
parent
f93bbf76
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
278 行增加
和
6 行删除
+278
-6
BzhxDao.ets
common/src/main/ets/db/dao/BzhxDao.ets
+32
-0
ScanParser.ets
entry/src/main/ets/identify/analysis/ScanParser.ets
+240
-0
analysis_QR_code.ets
entry/src/main/ets/identify/analysis/analysis_QR_code.ets
+2
-2
BzhxModel.ets
entry/src/main/ets/model/BzhxModel.ets
+2
-2
UHFScanPage.ets
entry/src/main/ets/pages/metailmange/UHFScanPage.ets
+2
-2
没有找到文件。
common/src/main/ets/db/dao/BzhxDao.ets
View file @
8caed643
...
...
@@ -72,4 +72,35 @@ export class BzhxDao extends BaseTable<Bzhx> {
wp.orderByAsc('LSM');
return this.query(wp, this.getTableColumns())
}
async selectHXList(hx_map?: any): Promise<Bzhx[]> {
let wp = this.getPredicates();
if (hx_map) {
wp.equalTo('pmdmSix', hx_map['wzdm']);
wp.or()
wp.in('pmdmSix',[`${hx_map['pmdm_hxmc']}`])
wp.or()
wp.equalTo('pmdmten',hx_map['wzdm']);
wp.or()
wp.beginWrap()
wp.equalTo('wzpm', hx_map['wzdm'])
wp.and()
wp.equalTo("pmdmten","0000")
wp.or()
wp.in("pmdmten",[`${hx_map['pmdm_hxmc']}`])
wp.endWrap()
wp.or()
wp.beginWrap()
wp.equalTo('wzpm', hx_map['wzdm'])
wp.and()
wp.beginWrap()
wp.equalTo('hxmc', "无号配号")
wp.or()
wp.in('hxmc', [`${hx_map['pmdm_hxmc']}`])
wp.endWrap()
wp.endWrap()
}
console.log("执行语句==="+JSON.stringify(hx_map))
console.log("执行语句==="+JSON.stringify(wp))
return this.query(wp, this.getTableColumns())
}
}
\ No newline at end of file
entry/src/main/ets/identify/analysis/ScanParser.ets
0 → 100644
View file @
8caed643
import HashMap from '@ohos.util.HashMap';
interface ParserResult {
data?: any,
success: boolean,
status: number,
msg?: string
}
const JsonResult = {
EXCEPTION_CODE: 500,
SUCCESS_CODE: 200
}
export class ScanParser {
/**
* @param bqData 待解析的标签数据
*/
async analysisQrCode(bqData: string,): Promise<ParserResult> {
var str = bqData
let result: ParserResult;
//是否为货架码
if (str.indexOf('hjguid') !== -1 && str.indexOf('hwh') !== -1) {
result.data = [JSON.parse(bqData)];
result.success = true;
result.status = JsonResult.SUCCESS_CODE;
return result
}
//是否为包裹码
if (str.indexOf('SF') !== -1 || str.indexOf('YZ') !== -1 || str.indexOf('JD') !== -1) {
result.data = [{
ddh: bqData,
bgzt: '待上架'
}];
result.success = true;
result.status = JsonResult.SUCCESS_CODE;
return result
}
//数据对象
let bqObj = { wzdm: '', pmdm: '', pmsl: 0 };
//数量键值对象
let bqMap = new HashMap();
//若信息包含A909说明是15所标签
if (str.indexOf("A909") !== -1) {
const indexOfA002 = str.indexOf("A002");
const res1 = str.substring(indexOfA002 + 4, indexOfA002 + 4 + 9);
//设置品名代码
bqObj.pmdm = res1;
const indexOfA051 = str.indexOf("A051");
if (indexOfA051 == -1) {
result.msg = "标签解析异常,请扫描正确的标签"
result.success = false
result.status = JsonResult.EXCEPTION_CODE
return result;
}
const strA051 = str.substring(indexOfA051 + 4, str.length);
const indexOfA = strA051.indexOf("A");
const tmpPmsl = parseInt(strA051.substring(0, indexOfA));
//设置数量
bqObj.pmsl = tmpPmsl;
//品名代码与数量映射
bqMap.set(bqObj.pmdm, tmpPmsl);
} else {
//单品标签GM
if (str.indexOf("A950") !== -1 && str.indexOf("A010") !== -1 && str.indexOf("A005") !== -1) {
str = str.replace("07A950", "BZDPGM|")
.replace("A002", "|")
.replace("A006", "|")
.replace("A010", "|")
.replace("A005", "|");
}
//单品标签QR
if (str.indexOf("A001") !== -1 && str.indexOf("A010") !== -1 && str.indexOf("A061") == -1) {
str = str.replace("07A001", "BZDPQR|")
.replace("A002", "|")
.replace("A006", "|")
.replace("A010", "|")
.replace("A005", "|");
}
// //内包标签GM
// if (str.indexOf("A950") !== -1 && str.indexOf("A005") !== -1 && str.indexOf("A010") == -1) {
// str = str.replace("07A950", "BZNBZGM|").replace("A002", "|").replace("A006", "|").replace("A005", "|");
// }
//内包标签QR
if (str.indexOf("A950") !== -1 && str.indexOf("A001") !== -1) {
str = str.replace("07A950", "BZNBZQR|")
.replace("A001", "|")
.replace("A002", "|")
.replace("A006", "|")
.replace("A005", "|");
}
//中包标签GM
if (str.indexOf("A950") !== -1 && str.indexOf("A051") !== -1 && str.indexOf("A010") == -1) {
let s = str.replace("07A950", "BZZBZGM|").replace("A002", "|").replace("A006", "|").replace("A051",
"|");
let res = s.split("|");
//BZZBZGM|品名代码|物资标识码:数量
str = res[0] + "|" + res[1] + "|" + res[2] + ":" + res[4];
}
//中包标签QR
if (str.indexOf("A001") !== -1 && str.indexOf("A051") !== -1 && str.indexOf("A010") == -1) {
let s = str.replace("07A001", "BZZBZQR|").replace("A002", "|").replace("A006", "|").replace("A051",
"|");
let res = s.split("|");
let wzbsm = res[4].split(':');
if (wzbsm.length > 1) {
str = res[0] + "|" + res[1] + "|" + res[4];
} else {
//BZZBZQR|品名名称|物资标识码:数量
str = res[0] + "|" + res[1] + "|" + res[2] + ":" + res[4];
}
}
//外包标签GM
if (str.indexOf("A950") !== -1 && str.indexOf("A051") !== -1) {
let s = str.replace("07A950", "BZWBZGM|")
.replace("A002", "|")
.replace("A006", "|")
.replace("A051", "|")
.replace("A061", "|")
.replace("A010", "|")
.replace("A015", "|");
let res = s.split("|");
//BZWBZGM|品名代码|物资标识码:数量
str = res[0] + "|" + res[1] + "|" + res[2] + ":" + res[4];
}
//外包(混)标签GM
if (str.indexOf("A951") !== -1 && str.indexOf("A015") !== -1) {
let s = str.replace("07A951", "BZWBZGM|").replace("A061", "|").replace("A010", "|").replace("A015",
"|");
let res = s.split("|");
let wzbsm = res[1].split(":"); //获取物资标识码:数量
let sql = "select wzdm from tab_xtwh_jcsj_wzdm where lsm = " + wzbsm[0] + "";
// 查询数据库
let wzdm = await bzhxModal.queryLsm(wzbsm[0])
//BZWBZGM|品名代码|物资标识码:数量
str = res[0] + "|" + wzdm['wzdm'] + "|" + res[1] + "|" + res[2] + "|" + res[4];
}
//外包标签QR
if (str.indexOf("A051") !== -1 && str.indexOf("A005") !== -1) {
let s = str.replace("07A001", "BZWBZQR|")
.replace("A002", "|")
.replace("A006", "|")
.replace("A051", "|")
.replace("A061", "|")
.replace("A010", "|")
.replace("A005", "|");
let res = s.split("|");
//BZWBZGM|品名代码|物资标识码:数量
str = res[0] + "|" + res[1] + "|" + res[2] + ":" + res[4];
}
//外包(混)标签QR
if (str.indexOf("A001") !== -1 && str.indexOf("A951") !== -1) {
str = str.replace("07A001", "BZWBZQR|")
.replace("A951", "|")
.replace("A061", "|")
.replace("A010", "|")
.replace("A005", "|");
}
//外包装/中包装/内包装按照|截取标签数据
let res = str.split("|");
//res[0]-取标签识别头信息
//res[1]-物资名称|物资代码
//res[2]-物资识别码:数量|号型:数量
//res[3]-
let firstRes = res[0];
//解析外包装和中包装二维码数据
//外包装--BZWBZGM|502118|865825756:5;864609135:2;867395786:3;861051856:1;861260280:1|600|500|480|18|20190304|3Y|2018-ZZ-被装-ZHTJ-2046|68993514
//外包装--BZWBZQR|17作战靴|280:5;270:2;265:3;260:1;250:1|18|20190304|3514工厂
//中包装--BZZBZGM|501469|869982051:20|68993514-----BZZBZQR|07A内手套|大号:20|3514工厂
if (firstRes.indexOf("BZWBZGM") !== -1 || firstRes.indexOf("BZWBZQR") !== -1 || firstRes.indexOf(
"BZZBZGM") !== -1 || firstRes.indexOf("BZZBZQR") !== -1) {
//外包装/中包装/截取品名代码或者品名名称
//var res1 = res[1];
bqObj.wzdm = res[1];
//res[2]类似这样:865825756:5;864609135:2;867395786:3;861051856:1;861260280:1
let res2 = res[2].split(";");
for (let i = 0; i < res2.length; i++) {
//物资识别码:数量
let ss = res2[i].split(":");
//把物资标识码(号型名称)和号型数量放入Map
//拼接物资标识码(号型名称)
//设置Map,键:物资识别码|号型,值:数量
bqMap.set(ss[0], ss[1]);
if (bqObj.pmdm) {
bqObj.pmdm += ",'" + ss[0] + "'";
} else {
bqObj.pmdm = "'" + ss[0] + "'";
}
//合计号型数量
let tmp1 = bqObj.pmsl;
tmp1 += parseInt(ss[1]);
bqObj.pmsl = tmp1;
//测试没问题可以用
//bqMap.pmsl += parseInt(ss[1]);
}
//解析内包装二维码数据
//内包装GM--BZNBZGM|503719|861859749|4号|68993543-----
//内包装QR--BZNBZQR|07陆下士肩章|861859749|4号|3543工厂
} else if (firstRes.indexOf("BZNBZGM") !== -1 || firstRes.indexOf("BZNBZQR") !== -1) {
//外包装/中包装/内包装截取品名代码或者品名名称
//把物资标识码(号型名称)和号型数量放入Map,内包的默认数量1
bqMap.set(res[3], 1)
bqObj.pmdm = "'" + res[3] + "'";
bqObj.pmsl += 1;
} else if (firstRes.indexOf(
"BZDPGM") !== -1 || firstRes.indexOf("BZDPQR") !== -1) {
//外包装/中包装/内包装截取品名代码或者品名名称
bqObj.wzdm = res[1];
//把物资标识码(号型名称)和号型数量放入Map,内包的默认数量1
bqMap.set(res[2], 1);
bqObj.pmdm = "'" + res[2] + "'";
bqObj.pmsl += 1;
} else if (str.length == 6 || str.length == 9 || str.length == 10) {
//6位为无号配号,9位为物资标识代码,10位为带号型号码
//一维码标签截取物资标识码或者号型代码
//res1 = str;
bqObj.wzdm = str;
//解析内包装一维码标签数据
//把物资标识码/号型代码和数量放入Map,内包装一维码标签默认数量1
bqMap.set(str, 1);
bqObj.pmdm = "'" + str + "'";
bqObj.pmsl += 1;
}
}
return result;
}
getHjInfo(str: string) {
}
}
\ No newline at end of file
entry/src/main/ets/identify/analysis/analysis_QR_code.ets
View file @
8caed643
...
...
@@ -266,8 +266,8 @@ async function analysisQrCode(bqData:string, isData:boolean = false) {
Object.keys(hx_map).forEach((item) => {
if (item == wzdm["LSM"] || item == wzdm["HXMC"] || item == wzdm["HXDM"]) {
let Pzmx = {
pmdm: wzdm.
wzdm
,
pmdmcode: wzdm.
hxdm
,
pmdm: wzdm.
pmdmSix
,
pmdmcode: wzdm.
pmdmTen
,
srsl: hx_map[item],
wzpm: wzdm.wzpm,
hxmc: wzdm.hxmc
...
...
entry/src/main/ets/model/BzhxModel.ets
View file @
8caed643
...
...
@@ -39,8 +39,8 @@ class BzhxModel {
Logger.info("查询LSM结果"+JSON.stringify(res))
return res;
}
async queryHXlist(hx_map?: any):Promise<
Wzhxdm
[]> {
let res = await SQLiteContext.with(
Wzhxdm
Dao).selectHXList(hx_map);
async queryHXlist(hx_map?: any):Promise<
Bzhx
[]> {
let res = await SQLiteContext.with(
Bzhx
Dao).selectHXList(hx_map);
return res;
}
// 清空表
...
...
entry/src/main/ets/pages/metailmange/UHFScanPage.ets
View file @
8caed643
...
...
@@ -226,8 +226,8 @@ struct UHFScanPage{
showList(epc?:string){
this.doneEpcsList.push(epc)
try {
//
this.handleanalysisQrCode("050400000000000016033C62BF2A111F0000A10040E220419000");
this.handleanalysisQrCode(epc);
this.handleanalysisQrCode("050400000000000016033C62BF2A111F0000A10040E220419000");
//
this.handleanalysisQrCode(epc);
}catch (err){
Logger.info("解析失败1"+epc+JSON.stringify(err))
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论