Commit 21fdadeb by 毛勇泽

包裹扫描派发

parent caa2e622
......@@ -87,7 +87,38 @@ export class BgglDao extends BaseTable<Bggl> {
throw new Error('[查询异常]|' + e)
}
}
/**
* 查询包裹数据
*/
async getBgglPageSql(params?: any): Promise<newBgglDto[]> {
try {
let val_sql = NativeSql.getBgglPageSql(params);
Logger.info('查询包裹数据>>sql', val_sql)
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toWzcrkRefWz(rs))
} while (rs.goToNextRow())
}
Logger.info(this, '最新上架>>' + JSON.stringify(items))
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
}
}
/*派发*/
async SetYpfActive(guid?:string) {
try {
let val_sql = NativeSql.SetYpfActive(guid)
let db = await this.futureDb;
let rs = await db.executeSql(val_sql);
return rs;
} catch (e) {
throw new Error('[插入异常]|' + e)
}
}
toWzcrkRefWz(cursor: relationalStore.ResultSet): newBgglDto {
let info: newBgglDto = {
......
import { Bggl } from '../../entity/Bggl';
import { uuid } from '../../utils/util';
import { uuid,dateUtils } from '../../utils/util';
export class NativeSql {
/**
......@@ -650,6 +650,23 @@ WHERE
return sql + sqlHz
}
}
/*查询包裹数据*/
static getBgglPageSql(params?: any):string{
var sql = `select bg.*,kf.kfmc from TAB_BZGL_KNZY_APP_BGGL bg left join TAB_BZGL_KNZY_APP_DWKF kf on kf.kfdm = bg.kfdm where bg.BGZT = ${params.bgzt} `
var sqlHz = ' order by bg.JSSJ desc'
if (params.ddh) {
return `${sql} and (bg.DDH like ${params.ddh})${sqlHz}`;
} else {
return sql + sqlHz
}
}
/*派发*/
static SetYpfActive(guid?:string):string{
const time = dateUtils.formatDateTime(new Date(), 'all')
const sql =
`update TAB_BZGL_KNZY_APP_BGGL set BGZT = '已领取' , sfdc = '0' ,CKSJ = '${time}' where guid in ('${guid}') `
return sql
}
}
......@@ -77,7 +77,18 @@ class BgglModel {
let res = await SQLiteContext.with(BgglDao).getNewData(data);
return res;
}
/**
* 查询包裹数据
*/
async getBgglPageSql(params?: any): Promise<newBgglDto[]> {
let res = await SQLiteContext.with(BgglDao).getBgglPageSql(params);
return res;
}
/*派发*/
async SetYpfActive(guid?:string) {
let res = await SQLiteContext.with(BgglDao).SetYpfActive(guid)
return res
}
// 清空表
async clear() {
await SQLiteContext.with(BgglDao).clearTable()
......
import { TitleBar } from '../../../view/title/TitleBar'
import { Logger, KfInfo, Gldw, WzPositionClass,SearchData,WzPositionInfo,HWFromData} from '@ohos/common';
import router from '@ohos.router'
import IdentifyService from '../../../identify/IdentifySerivce'
import {analysisQrCode} from '../../../identify/analysis/analysis_QR_code'
import emitter from '@ohos.events.emitter';
import Prompt from '@system.prompt';
import bgglModel from '../../../model/BgglModel'
import { uuid } from '@ohos/common/src/main/ets/utils/util'
import wzcrkModel from '../../../model/WzcrkModel';
@Entry
@Component
struct ScanPackPage{
@State isAutomation:boolean=true
@State datasource:Array<any>=[]
build() {
Column() {
TitleBar({ title: "扫描派发" })
Text('请扫描取件码').fontColor('#fff').fontSize(20).height("20").visibility(this.datasource.length>0?Visibility.None:Visibility.Visible)
Column() {
Flex({ justifyContent: FlexAlign.SpaceBetween , alignItems: ItemAlign.Start}) {
Row() {
List({ space: 2 }) {
ForEach(this.datasource, (item) => {
ListItem() {
Row() {
Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center }) {
Text('订单号: ' + item.ddh).fontSize(12).fontColor('#3b4144')
}
.width('50%')
Blank()
.layoutWeight(1)
Flex({
justifyContent: FlexAlign.Center,
alignItems: ItemAlign.Start
}) {
Text('箱号: ' + item.xs).fontSize(12).fontColor('#3b4144')
Text('批次: ' + item.pc).fontSize(12).fontColor('#3b4144')
}
.width('30%')
Text('状态: ' + '未领取').fontSize(12).fontColor('#3b4144')
}
.width('100%')
.backgroundColor('#fff')
.justifyContent(FlexAlign.SpaceBetween)
.padding({ left: 5, right: 5 })
}
.height(90)
})
}
.width('100%')
.backgroundColor('#fff')
.divider({ strokeWidth: 1, color: 'rgb(242,242,242)' }) // 每行之间的分界线
}.margin({ bottom: 50 })
}
.width('100%')
.height('100%')
.border({ width: 1, color: '#fff', style: BorderStyle.Dotted})
}
.padding(10)
.height('82%')
Flex({ justifyContent: FlexAlign.Center }) {
Button("派发")
.borderRadius(4)
.type(ButtonType.Normal)
.width('90%')
.fontColor('#0fa983')
.backgroundColor('#fff')
.onClick(() => {
// this.onSubmit()
this.handleScanningDistribution()
console.log("派发数据")
// this.handleSave()
})
}
.height(70)
}.onKeyEvent((e: globalThis.KeyEvent) => {
console.error('keycode====》:' + e.keyCode)
if ((e.keyCode == 2096 || e.keyCode == 2093)) {
if(e.type==1){
IdentifyService.openScan()
}
}
console.error('keycode====》:' + e.keyCode)
}).height("100%").width("100%").linearGradient({
direction: GradientDirection.Right, // 渐变方向
repeating: true, // 渐变颜色是否重复
colors: [['#36a3c0', 0.0], ['#97c6a6', 1.0], ['#c7d799', 2.0]]// 数组末尾元素占比小于1时满足重复着色效果
})
}
scanCodeListen() {
var innerEvent = { eventId: 2 }
emitter.on(innerEvent, (eventData) => {
if (innerEvent.eventId == 2) {
let result = eventData.data.scancode
console.log("扫码校验", "收到扫码信息:" + result)
this.showQRDetail(result)
}
})
}
async showQRDetail(hwQrCode: string) {
Logger.info("扫码二维码===》"+hwQrCode)
this.handleanalysisQrCode(hwQrCode)
}
async handleanalysisQrCode(value:string) {
try {
var that = this
const res = await analysisQrCode(value)
if (res.data && res.data.length > 0) {
if (!res.data[0].ddh) {
Prompt.showToast({
message: '请扫描订单信息'
})
return
}
var type = 'SF'
if (res.data[0].ddh.indexOf('JD') !== -1) {
type = 'JD'
}
if (res.data[0].ddh.indexOf('SF') !== -1) {
type = 'SF'
}
if (res.data[0].ddh.indexOf('YZ') !== -1) {
type = 'YZ'
}
var count = res.data[0].ddh.indexOf(type)
if (count == -1) {
count = 0
}
const ddh = res.data[0].ddh.slice(count, res.data[0].ddh.length - 1)
// console.log('ddh', ddh)
const [isHave] = this.datasource.filter((item) => item.ddh == ddh)
// 当前列表是否有重复的数据
if (!!isHave) {
Prompt.showToast({
message: '当前扫描数据重复'
})
} else {
var params = {
bgzt: '未领取',
ddh:''
}
if (ddh) {
params.ddh = "%" + ddh + "%"
}
const data = await bgglModel.getBgglPageSql(params)
if (data && data.length > 0) {
that.isAutomation = false
var object = {
guid: uuid(),
...data[0]
}
object.ddh = ddh
console.log('object', object)
that.datasource.push(object)
} else {
Prompt.showToast({
message: '请扫描未领取订单'
})
}
}
} else {
Prompt.showToast({
message: '请检查基础数据是否完善'
})
}
} catch (e) {
//TODO handle the exception
Prompt.showToast({
message: '解析失败'
})
}
}
async handleScanningDistribution() {
console.log('that.parcelList', this.datasource)
const date = "2024"
this.datasource.forEach(async (item) => {
await bgglModel.SetYpfActive(item.guid)
Prompt.showToast({
message: '派发成功'
})
})
}
onPageShow() {
console.error("========onPageShow=========")
this.scanCodeListen()
IdentifyService.openScanPort()
}
onPageHide() {
IdentifyService.closeScan()
/*取消扫码订阅*/
emitter.off(2);
}
}
\ No newline at end of file
......@@ -4,6 +4,7 @@
"pages/MainPage",
"pages/package/Pick",
"pages/package/Pack",
"pages/package/scanpack/ScanPackPage",
"pages/metailmange/WzInPage/WzInPage",
"pages/metailmange/WzOutPage/WzOutPage",
"pages/metailmange/WzExchangePage",
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论