Commit 2637650b by ning

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	common/src/main/ets/db/dao/WzcrkmxDao.ets
parents b5a156d4 cb6c4d13
......@@ -56,7 +56,7 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
* 验证物资明细是否扫描过
* "select count(1) crksl from TAB_BZGL_KNZY_APP_WZCRKMX mx where mx.WZCRKGUID = 'wzcrkguid' and ISFULL(crksl,0) <> 0"
*/
async hasScanWz(wzcrkguid: string): Promise<number> {
async hasScanWz(wzcrkguid:string): Promise<number>{
let db = await super.futureDb;
let resultSet = await db.querySql("select crksl from TAB_BZGL_KNZY_APP_WZCRKMX mx where mx.WZCRKGUID = 'wzcrkguid' and ISFULL(crksl,0) <> 0")
return resultSet.rowCount
......@@ -65,7 +65,7 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
/**
* 验证调号合计同品种号型是否等于0
*/
async checkThTest(wzcrkguid: string): Promise<Wzcrkmx[]> {
async checkThTest(wzcrkguid:string): Promise<Wzcrkmx[]>{
let db = await super.futureDb;
let resultSet = await db.querySql("select substr(pmdmcode,0,7) pmdmcode,max(hx.WZPM) wzpm,sum(ifnull(crksl,0)) crksl from TAB_BZGL_KNZY_APP_WZCRKMX mx" +
" left join TAB_XTWH_JCSJ_BZHX hx on hx.PMDMSIX = substr(pmdmcode,0,7) where mx.WZCRKGUID = 'wzcrkguid' group by substr(pmdmcode,0,7) having sum(isfull(crksl,0)) <>0")
......@@ -83,7 +83,7 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
/**
* 验证倒库合计同品种号型是否等于0
*/
async checkDKTest(wzcrkguid: string): Promise<Wzcrkmx[]> {
async checkDKTest(wzcrkguid:string): Promise<Wzcrkmx[]>{
let db = await super.futureDb;
let resultSet = await db.querySql("select pmdmcode,max(hx.WZPM) wzpm,sum(isfull(crksl,0)) crksl from TAB_BZGL_KNZY_APP_WZCRKMX mx" +
" left join TAB_XTWH_JCSJ_BZHX hx on hx.PMDMTEN = pmdmcode where mx.WZCRKGUID = 'wzcrkguid' group by pmdmcode having sum(isfull(crksl,0)) <>0")
......@@ -101,7 +101,7 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
/**
* 删除物资明细
*/
async deleteWzmx(wzcrkguid: string): Promise<number> {
async deleteWzmx(wzcrkguid:string): Promise<number>{
let predicates = this.getPredicates()
predicates.equalTo("wzcrkguid", "wzcrkguid")
return this.deleteAll(predicates);
......@@ -125,11 +125,27 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
return items;
}
async getWzcrkmx(wzcrkguid: string): Promise<Wzcrkmx[]> {
async getWzcrkmx(wzcrkguid?: string,pmdmcode?:string): Promise<Wzcrkmx[]> {
let wp = this.getPredicates();
wp.equalTo('WZCRKGUID', wzcrkguid)
if(wzcrkguid){
wp.equalTo('WZCRKGUID', wzcrkguid)
}
if(pmdmcode){
wp.equalTo('PMDMCODE', pmdmcode)
}
return this.query(wp, this.getTableColumns());
}
/**
* 更新出入库明细
*/
async updateCrkMx(guid: string, hwh?: string,crksl?:string): Promise<number> {
const valueBucket = {
"HWH": hwh,
"CRKSL":crksl
};
let wp = this.getPredicates()
wp.equalTo('guid', guid)
return this.updateData(valueBucket, wp)
/**
* 更新单据状态
......
import { WzcrkmxDao, WzcrkDao, Wzcrk, Wzcrkmx, SQLiteContext } from '@ohos/common'
import { WzcrkmxDao, WzcrkDao, Wzcrk, Wzcrkmx, SQLiteContext } from '@ohos/common'
// 物资出库入库
class WzcrkmxModel {
......@@ -6,26 +6,31 @@ class WzcrkmxModel {
async set(data: Wzcrkmx[]) {
await SQLiteContext.with(WzcrkmxDao).batchInsert(data)
}
// 单条添加
async setInsert(data: Wzcrkmx) {
let res= await SQLiteContext.with(WzcrkmxDao).insert(data)
console.log("插入成功===》"+JSON.stringify(res))
}
// 查询
async query(wzcrkguid: string): Promise<Wzcrkmx[]> {
let res = await SQLiteContext.with(WzcrkmxDao).getWzcrkmx(wzcrkguid)
async query(wzcrkguid?: string,pmdmcode?: string): Promise<Wzcrkmx[]> {
let res = await SQLiteContext.with(WzcrkmxDao).getWzcrkmx(wzcrkguid,pmdmcode)
return res;
}
async updateCrkMX(guid: string, hwh: string,crksl?:string):Promise<number> {
let res = await SQLiteContext.with(WzcrkmxDao).updateCrkMx(guid, hwh,crksl)
console.log("更新成功===》"+JSON.stringify(res))
return res;
}
// 更新单据信息
async updateWcztmxByData(guid: string, data: Partial<Wzcrkmx>):Promise<number> {
let res = await SQLiteContext.with(WzcrkmxDao).updateWcztmxByData(guid, data)
return res;
}
// 清空表
async clear() {
await SQLiteContext.with(WzcrkmxDao).clearTable()
}
}
const wzcrkmxModel = new WzcrkmxModel()
export default wzcrkmxModel
\ No newline at end of file
import { TitleBar } from '../../view/title/TitleBar'
import promptAction from '@ohos.promptAction'
import hwModel from "../../model/HwModel"
import { HwInfo, SQLiteContext, HwInfoDao,Logger} from '@ohos/common'
import { HwInfo, SQLiteContext, HwInfoDao,DsRfid,Logger,Wzcrkmx} from '@ohos/common'
import dsRfidModel from '../../model/DsRfidModel';
import wzcrkmxModel from '../../model/WzcrkmxModel';
import { uuid } from '@ohos/common/src/main/ets/utils/util'
import router from '@ohos.router'
import IdentifyService from '../../identify/IdentifySerivce'
import emitter from '@ohos.events.emitter';
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
......@@ -20,41 +24,90 @@ struct GoodsSelectHwPage{
@State model: boolean = true
@State hwInfoList:HwInfo[]=[]
@State selectValue:Array<SelectOption>=[]
@State checkedList: Array<string> = []
@State checkedList: Array<DsRfid> = []
@State hwh:string=""
@State wzcrkguid:string=""
aboutToAppear(){
this.checkedList= router.getParams() as string[];
this.checkedList= router.getParams()["checkArray"];
this.model=router.getParams()["checkType"]
this.getHwList()
}
async getHwList(){
this.hwInfoList=await hwModel.queryHw("")
this.hwInfoList=await hwModel.queryHw("")
this.selectValue=this.hwInfoList.map(item =>{
return {value:item.hwh}
return {value:item.hwh}
})
}
/*手动保存*/
onSubmit() {
async onSubmit() {
try {
Logger.info("选择上架数据===》"+JSON.stringify(this.checkedList))
this.checkedList.forEach(async (element) => {
let num = await dsRfidModel.updateSJStatus(element, this.hwh)
if (num) {// 如果更新成功就减少
promptAction.showToast({
message: "保存成功"
})
}else{
promptAction.showToast({
message: "保存失败"
})
Logger.info("选择上架数据===》" + JSON.stringify(this.checkedList))
for (const element of this.checkedList) {
Logger.info("上架数据====》" + JSON.stringify(element))
let num = await dsRfidModel.updateSJStatus(element.guid, this.hwh);
// 等待 saveCrkData 执行成功后再进行下一次迭代
await this.saveCrkData(element);
if (!num) {
// 如果更新失败,可以在此处处理,例如记录日志
Logger.error("更新失败:" + JSON.stringify(element));
}
})
} catch (e) {
}
// 所有循环完成后再显示 showToast
promptAction.showToast({
message: "保存成功"
});
} catch (e) {
// 处理错误,如果需要
promptAction.showToast({
message: "保存失败"
});
} finally {
router.back()
this.checkedList = []
}
}
/*出入库识别wz数据更新*/
async saveCrkData(row:DsRfid):Promise<number>{
Logger.info("出入库识别wz数据更新====》"+JSON.stringify(row))
const isCommon = await wzcrkmxModel.query(row.wzcrkguid,row.pmdmcode)
Logger.info("当前单据明显+++wzcrguid"+`${row.wzcrkguid}`+JSON.stringify(isCommon))
const [isHaveHwData] = isCommon.filter((HItem) => HItem.hwh === '' || HItem.hwh === this.hwh)
if (isHaveHwData) {
const newCrksl = Number(isHaveHwData.crksl) || 0
const newSl = Number(row.sl) || 0
const update_crksl = newCrksl + newSl
// 存在
const updateParams = {
mxguid: isHaveHwData.guid,
hwh: isHaveHwData.hwh || this.hwh,
crksl: update_crksl || 0
}
Logger.info("存在的明细物资======》正在更新JSON=====》"+JSON.stringify(updateParams))
/*更新crk明细*/
wzcrkmxModel.updateCrkMX(updateParams.mxguid,updateParams.hwh,updateParams.crksl.toString())
}else {
/*不存在*/
const wzcrxmx:Wzcrkmx = {
guid: uuid(),
gznd:"",
pzsl: Number(row.sl) || 0,
crksl: Number(row.sl) || 0,
pmdmcode: row.pmdmcode,
hwh: this.hwh,
wzcrkguid: row.wzcrkguid,
pzmxguid: ''
}
Logger.info("插入不存在数据===》"+JSON.stringify(wzcrxmx))
wzcrkmxModel.setInsert(wzcrxmx)
}
return 0
}
build(){
Column() {
Flex({ direction: FlexDirection.Column }) {
......@@ -83,7 +136,7 @@ struct GoodsSelectHwPage{
.backgroundColor('#fff')
.type(ButtonType.Normal)
.onClick(() => {
this.model = ! this.model
this.model = ! this.model
})
}.padding({left: 20, right: 20})
Column() {
......@@ -121,4 +174,28 @@ struct GoodsSelectHwPage{
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(data: string) {
Logger.info("扫码二维码===》"+data)
}
onPageShow() {
console.error("========onPageShow=========")
this.scanCodeListen()
IdentifyService.openScanPort()
}
onPageHide() {
IdentifyService.closeScan()
/*取消扫码订阅*/
emitter.off(2);
}
}
\ No newline at end of file
......@@ -7,7 +7,7 @@ import ProductEpc from '../../identify/analysis/label/ProductEpc';
import bzhxModal from '../../model/BzhxModel'
import { uuid } from '@ohos/common/src/main/ets/utils/util'
import {
DsRfid,Logger
DsRfid,Logger,Wzcrk
} from '@ohos/common';
import IdentifyService from '../../identify/IdentifySerivce'
import emitter from '@ohos.events.emitter';
......@@ -31,17 +31,19 @@ struct UHFScanPage{
@State rfidList:DsRfid[]=[]
private controller: TabsController = new TabsController()
private searchcontroller: SearchController = new SearchController()
@State checkedList: Array<string> = []
@State wzcrk: Wzcrk = null // 物资出入库单据信息
@State checkedList: Array<DsRfid> = []
@State doneEpcsList: string[] = []
@State pmTotal:number=0;
@State hxTotal:number=0;
@State xhTotal:number=0;
@State sumTotal:number=0;
aboutToAppear(){
this.getUPorDown()
// this.getUPorDown()
this.wzcrk=router.getParams()["wzcrkItem"]
}
/*统计品种,号型,箱号,数量*/
async countToal(){
async countToal(){
this.pmTotal=this.convertionRfid("pmdm")
this.hxTotal=this.convertionRfid("hxmc")
this.xhTotal=this.convertionRfid("xh")
......@@ -49,7 +51,7 @@ struct UHFScanPage{
}
/*获取上架或待上架数据*/
async getUPorDown(){
this.rfidList=await dsRfidModel.queryDSJ("1",this.currentIndex)
this.rfidList=await dsRfidModel.queryDSJ(this.wzcrk.guid,this.currentIndex)
this.countToal()
}
@Builder TabBuilder(index: number, name: string) {
......@@ -71,9 +73,9 @@ struct UHFScanPage{
.selectedColor('#007DFF')
.onChange((value: boolean) => {
if (value) {
this.checkedList.push(item.guid)
this.checkedList.push(item)
} else {
this.checkedList = this.checkedList.filter(i => i !== item.guid);
this.checkedList = this.checkedList.filter(i => i.guid !== item.guid);
}
console.info('Checkbox1 change is' + value)
}).margin({ right: 10,left: 10 })
......@@ -172,11 +174,21 @@ struct UHFScanPage{
})
}else {
router.pushUrl({url:"pages/metailmange/GoodsSelectHwPage"
,params:this.checkedList})
,params:{checkArray:this.checkedList,
checkType:true}})
}
})
Button("扫货位码").CommonButtonStyle().width("45%")
Button("扫货位码").CommonButtonStyle().width("45%") .onClick(()=>{
if (this.checkedList.length == 0) {
promptAction.showToast({
message: '请至少选择一条单据'
})
}else {
router.pushUrl({url:"pages/metailmange/GoodsSelectHwPage"
,params:{checkArray:this.checkedList,
checkType:false}})
}
})
}
}.margin({left:10,right:10}).height(80)
}.width("100%")
......@@ -231,7 +243,7 @@ struct UHFScanPage{
res.forEach((item) => {
let params: DsRfid = {
guid: uuid(),
wzcrkguid: "1",
wzcrkguid: this.wzcrk.guid,
pmdmcode: item.pmdmTen,
pmmc: item.wzpm,
pmdm: item.wzpm,
......@@ -264,11 +276,11 @@ struct UHFScanPage{
}
}
/*RFID统计*/
convertionRfid(rfidName:string):number{
convertionRfid(rfidName:string):number{
var finite = []
Logger.info("识别数据"+JSON.stringify(this.rfidList))
finite = this.rfidList.map(item => item[rfidName])
Logger.info("筛选"+JSON.stringify(finite))
Logger.info("识别数据"+JSON.stringify(this.rfidList))
finite = this.rfidList.map(item => item[rfidName])
Logger.info("筛选"+JSON.stringify(finite))
if (finite && finite.length > 0) {
if (rfidName == 'pmdm' || rfidName == 'hxmc' || rfidName == 'xh') {
finite = [...new Set(finite)]
......@@ -291,6 +303,7 @@ struct UHFScanPage{
}
onPageShow() {
console.error("========onPageShow=========")
this.getUPorDown()
this.rfidInvListen()
IdentifyService.openRfidPort()
}
......
......@@ -105,7 +105,7 @@ struct WzinDetail {
Row() {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Button("射频扫码").CommonButtonStyle().width("50%").onClick(() => {
router.pushUrl({ url: 'pages/metailmange/UHFScanPage' })
router.pushUrl({url:'pages/metailmange/UHFScanPage',params:{wzcrkItem:this.wzcrk}})
})
Button("保存").CommonButtonStyle().width("50%")
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论