Commit 73b4f62c by huangqy

扫码逻辑

parent 8e3b508e
...@@ -8,4 +8,45 @@ export interface RecommendHwDto { ...@@ -8,4 +8,45 @@ export interface RecommendHwDto {
pmguid: string, pmguid: string,
hwguid: string, hwguid: string,
hwh: string, hwh: string,
}
/**
* 验证当前货位在本方库
*/
export interface TestHwWzDto {
guid: string,
hwh: string,
pmdmcode: string,
hwsl: string,
hjguid: string,
hwzt: string,
hwxgsj: string,
gldwguid: string,
kfguid: string,
zmlx: string,
kfdm: string
}
export interface PzMxItemDto {
guid: string,
gznd: string,
pmdmcode: string,
pzsl: string,
crksl: string,
wzcrkguid: string,
hwh: string,
pzmxguid: string
}
export interface CommonHxPzMxDto {
wzpm: string,
pmdmsix: string,
pmdmcode: string,
hxmc: string,
pzsl: string,
crksl: string,
hwh: string,
mxguid: string,
pzmxguid: string
} }
\ No newline at end of file
...@@ -5,7 +5,7 @@ import { Table } from '../decorator/Decorators'; ...@@ -5,7 +5,7 @@ import { Table } from '../decorator/Decorators';
import { Logger } from '../../utils/Logger'; import { Logger } from '../../utils/Logger';
import { NativeSql } from '../sql/NativeSql'; import { NativeSql } from '../sql/NativeSql';
import { WzcrkDetailDto, WzcrkMxRefWzDto } from '../../bean/dto/WzcrkMxRefWzDto'; import { WzcrkDetailDto, WzcrkMxRefWzDto } from '../../bean/dto/WzcrkMxRefWzDto';
import { RecommendHwDto } from '../../bean/dto/RecommendHwDto.ts'; import { CommonHxPzMxDto, PzMxItemDto, RecommendHwDto, TestHwWzDto } from '../../bean/dto/RecommendHwDto.ts';
/** /**
...@@ -234,12 +234,144 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> { ...@@ -234,12 +234,144 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
*/ */
toRecommendHwDto(cursor: relationalStore.ResultSet): RecommendHwDto { toRecommendHwDto(cursor: relationalStore.ResultSet): RecommendHwDto {
let info: RecommendHwDto = { let info: RecommendHwDto = {
guid: cursor.getString(cursor.getColumnIndex('GUID')),
hjguid: cursor.getString(cursor.getColumnIndex('HJGUID')),
pmguid: cursor.getString(cursor.getColumnIndex('PMGUID')),
hwguid: cursor.getString(cursor.getColumnIndex('HWGUID')),
hwh: cursor.getString(cursor.getColumnIndex('HWH'))
};
return info;
}
async testHwWz(kfdm, hjguid, hwh): Promise<TestHwWzDto[]> {
try {
let val_sql = NativeSql.testHwWzSql(kfdm, hjguid, hwh);
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toTestHwWzDto(rs))
} while (rs.goToNextRow())
}
Logger.info(this, 'queryAll items=' + JSON.stringify(items))
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
}
}
/**
* 验证当前货位在本方库转换
*/
toTestHwWzDto(cursor: relationalStore.ResultSet): TestHwWzDto {
let info: TestHwWzDto = {
guid: cursor.getString(cursor.getColumnIndex('guid')), guid: cursor.getString(cursor.getColumnIndex('guid')),
hwh: cursor.getString(cursor.getColumnIndex('hwh')),
pmdmcode: cursor.getString(cursor.getColumnIndex('pmdmcode')),
hwsl: cursor.getString(cursor.getColumnIndex('hwsl')),
hjguid: cursor.getString(cursor.getColumnIndex('hjguid')), hjguid: cursor.getString(cursor.getColumnIndex('hjguid')),
pmguid: cursor.getString(cursor.getColumnIndex('pmguid')), hwzt: cursor.getString(cursor.getColumnIndex('hwzt')),
hwguid: cursor.getString(cursor.getColumnIndex('hwguid')), hwxgsj: cursor.getString(cursor.getColumnIndex('hwxgsj')),
hwh: cursor.getString(cursor.getColumnIndex('hwh')) gldwguid: cursor.getString(cursor.getColumnIndex('gldwguid')),
kfguid: cursor.getString(cursor.getColumnIndex('kfguid')),
zmlx: cursor.getString(cursor.getColumnIndex('zmlx')),
kfdm: cursor.getString(cursor.getColumnIndex('kfdm'))
};
return info;
}
async getPzMxItem(params, isPmSix): Promise<PzMxItemDto[]> {
try {
let val_sql = NativeSql.getPzMxItemSql(params, isPmSix);
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toPzMxItemDto(rs))
} while (rs.goToNextRow())
}
Logger.info(this, 'queryAll items=' + JSON.stringify(items))
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
}
}
/**
* 验证当前货位在本方库转换
*/
toPzMxItemDto(cursor: relationalStore.ResultSet): PzMxItemDto {
let info: PzMxItemDto = {
guid: cursor.getString(cursor.getColumnIndex('guid')),
gznd: cursor.getString(cursor.getColumnIndex('gznd')),
pmdmcode: cursor.getString(cursor.getColumnIndex('pmdmcode')),
pzsl: cursor.getString(cursor.getColumnIndex('pzsl')),
crksl: cursor.getString(cursor.getColumnIndex('crksl')),
wzcrkguid: cursor.getString(cursor.getColumnIndex('wzcrkguid')),
hwh: cursor.getString(cursor.getColumnIndex('hwh')),
pzmxguid: cursor.getString(cursor.getColumnIndex('pzmxguid'))
}; };
return info; return info;
} }
async getCommonHxPzMx(params): Promise<CommonHxPzMxDto[]> {
try {
let val_sql = NativeSql.getCommonHxPzMxSql(params);
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toCommonHxPzMx(rs))
} while (rs.goToNextRow())
}
Logger.info(this, 'queryAll items=' + JSON.stringify(items))
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
}
}
toCommonHxPzMx(cursor: relationalStore.ResultSet): CommonHxPzMxDto {
let info: CommonHxPzMxDto = {
wzpm: cursor.getString(cursor.getColumnIndex('wzpm')),
pmdmsix: cursor.getString(cursor.getColumnIndex('pmdmsix')),
pmdmcode: cursor.getString(cursor.getColumnIndex('pmdmcode')),
hxmc: cursor.getString(cursor.getColumnIndex('hxmc')),
pzsl: cursor.getString(cursor.getColumnIndex('pzsl')),
crksl: cursor.getString(cursor.getColumnIndex('crksl')),
hwh: cursor.getString(cursor.getColumnIndex('hwh')),
mxguid: cursor.getString(cursor.getColumnIndex('mxguid')),
pzmxguid: cursor.getString(cursor.getColumnIndex('pzmxguid'))
};
return info;
}
async insertWz(params) {
try {
let val_sql = NativeSql.insertWzSql(params)
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
return rs;
} catch (e) {
throw new Error('[插入异常]|' + e)
}
}
async updateWzmx(params) {
try {
let val_sql = NativeSql.updateWzmxSql(params)
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
return rs;
} catch (e) {
throw new Error('[更新异常]|' + e)
}
}
} }
\ No newline at end of file
import { uuid } from '../../utils/util';
export class NativeSql { export class NativeSql {
/** /**
* 构建出入库明细查询语句 * 构建出入库明细查询语句
...@@ -51,18 +52,60 @@ WHERE ...@@ -51,18 +52,60 @@ WHERE
* @param kfdm 库房代码 * @param kfdm 库房代码
*/ */
static getRecommendHwSql(pmguid, kfdm): string { static getRecommendHwSql(pmguid, kfdm): string {
let sql_val = `SELECT tjhw.*, hw.hwh let sql_val = `SELECT tjhw.*,hw.hwh from HW_PROJECT_TABLE tjhw left join tab_bzgl_knzy_app_hwb hw on tjhw.hwguid = hw.guid left join TAB_BZGL_KNZY_APP_HJB hj ON tjhw.hjguid=hj.guid left join TAB_BZGL_KNZY_APP_QYB qy on hj.qyguid=qy.guid where tjhw.pmguid='${pmguid}' and qy.kfguid in (select guid from TAB_BZGL_KNZY_APP_DWKF where kfdm = '${kfdm}' )`
return sql_val
}
/**
* 验证当前货位在本方库
*/
static testHwWzSql(kfdm, hjguid, hwh): string {
let sql_val = `SELECT
*
FROM
(
SELECT
hw.*,
qy.kfdm kfdm
FROM FROM
HW_PROJECT_TABLE tjhw tab_bzgl_knzy_app_hwb hw
LEFT JOIN tab_bzgl_knzy_app_hwb hw ON tjhw.hwguid = hw.guid LEFT JOIN tab_bzgl_knzy_app_hjb hj ON hj.guid = hw.hjguid
LEFT JOIN TAB_BZGL_KNZY_APP_HJB hj ON tjhw.hjguid = hj.guid LEFT JOIN tab_bzgl_knzy_app_qyb qy ON qy.guid = hj.qyguid
LEFT JOIN TAB_BZGL_KNZY_APP_QYB qy ON hj.qyguid = qy.guid )
WHERE WHERE
tjhw.pmguid =${pmguid} kfdm = '${kfdm}'
AND qy.kfguid IN ( SELECT guid FROM TAB_BZGL_KNZY_APP_DWKF WHERE kfdm = ${kfdm} )` AND hjguid = '${hjguid}'
AND hwh = '${hwh}'`
return sql_val return sql_val
} }
// 查询物资明细是否含有对应物资数据
static getPzMxItemSql(params, isPmSix): string {
if (isPmSix) {
return `select * from TAB_BZGL_KNZY_APP_WZCRKMX where wzcrkguid='${params.wzcrkguid}' and substr(PMDMCODE,1,6)='${params.pmdmcode}'`
} else {
return `select * from TAB_BZGL_KNZY_APP_WZCRKMX where wzcrkguid='${params.wzcrkguid}' and PMDMCODE='${params.pmdmcode}'`
}
}
// 查询同号型
static getCommonHxPzMxSql(params): string {
// pmdm前6位
return `select hx.wzpm wzpm, hx.pmdmsix pmdmsix,hx.pmdmten pmdmcode, hx.hxmc hxmc, mx.pzsl pzsl, mx.crksl crksl, mx.hwh hwh, mx.guid mxguid,mx.pzmxguid pzmxguid from tab_bzgl_knzy_app_wzcrk crk left join tab_bzgl_knzy_app_wzcrkmx mx on crk.GUID = mx.wzcrkguid left join tab_xtwh_jcsj_bzhx hx on mx.pmdmcode = hx.pmdmten where crk.guid = '${(params.guid)}' and hx.PMDMSIX= '${(params.pmdm)}' order by hx.PMDMSIX, hx.XH`
}
// 出入盘库
// 入库修改
static updateWzmxSql(params): string {
return `update tab_bzgl_knzy_app_wzcrkmx set crksl = '${params.crksl}' , hwh = '${params.hwh}' where guid = '${params.mxguid}'`
}
// 不存在物资,进行物资新增
static insertWzSql(params): string {
const sql =
`insert into tab_bzgl_knzy_app_hwb (guid, hwh, pmdmcode, hwsl, hjguid, hwzt) values ('${params.guid}', '${params.hwh}', '${params.pmdmcode}', '${params.hwsl}', '${params.hjguid}','11111111SF1')`
return sql
}
/** /**
* 包裹管理表 * 包裹管理表
......
...@@ -48,6 +48,27 @@ class WzcrkmxModel { ...@@ -48,6 +48,27 @@ class WzcrkmxModel {
let res = await SQLiteContext.with(WzcrkmxDao).queryRecommendHw(data.pmguid, data.kfdm) let res = await SQLiteContext.with(WzcrkmxDao).queryRecommendHw(data.pmguid, data.kfdm)
return res return res
} }
// 验证当前货位在本方库
async testHwWz(data) {
let res = await SQLiteContext.with(WzcrkmxDao).testHwWz(data.kfdm, data.hjguid, data.hwh)
return res
}
async getPzMxItem(params, isPmSix) {
let res = await SQLiteContext.with(WzcrkmxDao).getPzMxItem(params, isPmSix)
return res
}
async getCommonHxPzMx(params) {
let res = await SQLiteContext.with(WzcrkmxDao).getCommonHxPzMx(params)
return res
}
async insertWz(params) {
let res = await SQLiteContext.with(WzcrkmxDao).insertWz(params)
return res
}
async updateWzmx(params) {
let res = await SQLiteContext.with(WzcrkmxDao).updateWzmx(params)
return res
}
// 清空表 // 清空表
async clear() { async clear() {
await SQLiteContext.with(WzcrkmxDao).clearTable() await SQLiteContext.with(WzcrkmxDao).clearTable()
......
...@@ -10,6 +10,7 @@ import { analysisQrCode } from '../../../identify/analysis/analysis_QR_code' ...@@ -10,6 +10,7 @@ import { analysisQrCode } from '../../../identify/analysis/analysis_QR_code'
import emitter from '@ohos.events.emitter'; import emitter from '@ohos.events.emitter';
import Prompt from '@system.prompt'; import Prompt from '@system.prompt';
import wzcrkmxModel from '../../../model/WzcrkmxModel'; import wzcrkmxModel from '../../../model/WzcrkmxModel';
import { dateUtils, uuid } from '@ohos/common/src/main/ets/utils/util';
@Extend(Button) function CommonButtonStyle() { @Extend(Button) function CommonButtonStyle() {
...@@ -22,10 +23,6 @@ import wzcrkmxModel from '../../../model/WzcrkmxModel'; ...@@ -22,10 +23,6 @@ import wzcrkmxModel from '../../../model/WzcrkmxModel';
.stateEffect(true) .stateEffect(true)
} }
interface pzForm {
hwh: string
}
@Component @Component
// 物资信息 // 物资信息
export struct WzInfo { export struct WzInfo {
...@@ -37,6 +34,10 @@ export struct WzInfo { ...@@ -37,6 +34,10 @@ export struct WzInfo {
@State dataType: boolean = false // 导入是true, 其他false 根据单据状态控制提交按钮显示隐藏 @State dataType: boolean = false // 导入是true, 其他false 根据单据状态控制提交按钮显示隐藏
@State isHaveButton: boolean = false // 完成状态, 未完成是true, 其他false @State isHaveButton: boolean = false // 完成状态, 未完成是true, 其他false
@State isAutomation: boolean = true //控制扫描提示显示隐藏 @State isAutomation: boolean = true //控制扫描提示显示隐藏
@State pzxqGuild:string = '' //当前凭证guid
@State historicalInformation: Array<any> = [] //物资数据
@State currentPmdmcode: string = '' //当前扫描pmdm10位
@State defaultHwh: string = this.convertionDefaultHwh() @State defaultHwh: string = this.convertionDefaultHwh()
@Link pzForm: PzFormClass @Link pzForm: PzFormClass
@State currentDw: string = '' @State currentDw: string = ''
...@@ -105,7 +106,7 @@ export struct WzInfo { ...@@ -105,7 +106,7 @@ export struct WzInfo {
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
ForEach(this.currentWZInfo, item => { ForEach(this.currentWZInfo, item => {
Text(item.pmdmsix).width("25%").textAlign(TextAlign.Start).fontSize(14) Text(item.pmdm).width("25%").textAlign(TextAlign.Start).fontSize(14)
Text(item.wzpm).width("25%").textAlign(TextAlign.Center).fontSize(14) Text(item.wzpm).width("25%").textAlign(TextAlign.Center).fontSize(14)
Text(item.hxmc).width("25%").textAlign(TextAlign.Center).fontSize(14) Text(item.hxmc).width("25%").textAlign(TextAlign.Center).fontSize(14)
Text(item.crksl) Text(item.crksl)
...@@ -132,6 +133,8 @@ export struct WzInfo { ...@@ -132,6 +133,8 @@ export struct WzInfo {
// 页面初始化 // 页面初始化
aboutToAppear() { aboutToAppear() {
this.pzxqGuild = this.wzcrk.guid
this.historicalInformation = this.wzmx
this.getData() this.getData()
this.scanCodeListen(); this.scanCodeListen();
} }
...@@ -162,11 +165,11 @@ export struct WzInfo { ...@@ -162,11 +165,11 @@ export struct WzInfo {
*/ */
async handleanalysisQrCode(value) { async handleanalysisQrCode(value) {
this.isAutomation = false this.isAutomation = false
if (this.scanInfoDialog != undefined) {
this.scanInfoDialog.open()
}
const res = await analysisQrCode(value, false) const res = await analysisQrCode(value, false)
if (res.data && res.data.length > 0) { if (res.data && res.data.length > 0) {
if (this.scanInfoDialog != undefined) {
this.scanInfoDialog.open()
}
console.log("解析货位", JSON.stringify(res.data)) console.log("解析货位", JSON.stringify(res.data))
//1. 获取默认货位 //1. 获取默认货位
this.handleGetDefaultHwh(res) this.handleGetDefaultHwh(res)
...@@ -185,59 +188,840 @@ export struct WzInfo { ...@@ -185,59 +188,840 @@ export struct WzInfo {
return return
} }
// 如果没有货位: // 如果没有货位:
// if (!this.pzFrom.hwh && res.data[0].hwh) { if (!this.pzForm.hwh && res.data[0].hwh) {
// // if (this.pageType == '倒库') { // if (this.pageType == '倒库') {
// const hwParams = { const hwParams = {
// kfdm: this.pzFrom.kfdm, kfdm: this.pzForm.kfdm,
// hwh: res.data[0].hwh, hwh: res.data[0].hwh,
// hjguid: res.data[0].hjguid hjguid: res.data[0].hjguid
// } }
// // console.log('this.currentModel', this.currentModel, this.pzFrom) // console.log('this.currentModel', this.currentModel, this.pzFrom)
// if (this.pageType == '倒库') { if (this.pageType == '倒库') {
// if (this.currentModel) { if (this.currentModel) {
// hwParams.kfdm = this.pzFrom.kfdm hwParams.kfdm = this.pzForm.kfdm
// } else { } else {
// hwParams.kfdm = this.pzFrom.rkkfdm hwParams.kfdm = this.pzForm.rkkfdm
// } }
// } else { } else {
// hwParams.kfdm = this.pzFrom.kfdm hwParams.kfdm = this.pzForm.kfdm
// } }
// const testHwForKf = await selectInformationType("GY_M_PMV3", const testHwForKf = await wzcrkmxModel.testHwWz(hwParams)
// testHwWzSql(hwParams)) if (testHwForKf.length == 0) {
// if (testHwForKf.length == 0) { Prompt.showToast({
// Prompt.showToast({ message: '当前库房不存在' + res.data[0].hwh + '货位'
// message: '当前库房不存在' + res.data[0].hwh + '货位' })
// }) return
// return }
// } // }
// // } this.pzForm.hwh = res.data[0].hwh
// this.pzFrom.hwh = res.data[0].hwh // @ts-ignore
// this.pzFrom.hjguid = res.data[0].hjguid this.pzForm.hjguid = res.data[0].hjguid
// this.currentHwh = res.data[0].hwh this.currentHwh = res.data[0].hwh
// Prompt.showToast({ Prompt.showToast({
// message: '当前货位:' + res.data[0].hwh, message: '当前货位:' + res.data[0].hwh,
// }) })
// return return
// } }
if (this.pzForm.hwh && res.data[0].hwh && this.pzForm.hwh == res.data[0].hwh) {
Prompt.showToast({
message: '当前货位:' + res.data[0].hwh
})
return
}
// 如果有货位:
if (this.pzForm.hwh && res.data[0].hwh && this.pzForm.hwh !== res.data[0].hwh) {
// if (that.pageType == '倒库') {
const isHwParams = {
kfdm: this.pzForm.kfdm,
// 入 rkkfdm 出 kfdm
hwh: res.data[0].hwh,
hjguid: res.data[0].hjguid
}
if (this.pageType == '倒库') {
if (this.currentModel) {
isHwParams.kfdm = this.pzForm.kfdm
} else {
isHwParams.kfdm = this.pzForm.rkkfdm
}
} else {
isHwParams.kfdm = this.pzForm.kfdm
}
const testHwForKf = await wzcrkmxModel.testHwWz(isHwParams)
if (testHwForKf.length == 0) {
Prompt.showToast({
message: '当前库房不存在' + res.data[0].hwh + '货位',
})
return
}
// }
this.pzForm.hwh = res.data[0].hwh
// @ts-ignore
this.pzForm.hjguid = res.data[0].hjguid
this.currentHwh = res.data[0].hwh
Prompt.showToast({
message: '切换货位:' + res.data[0].hwh,
})
return
}
// 扫描物资
if (res.data && res.data.length > 0) {
res.data.forEach(async (ITEM) => {
if (this.dataType) {
// 单据导入
if (this.pageType == '入库' || this.pageType == '出库') {
// 收物单-品种不可以新建,同品种号型可新建,数量可以超
// 发物单-品种不可以新建,同品种号型可新建,数量可以超
const params = {
wzcrkguid: this.pzxqGuild,
pmdmcode: ITEM.pmdmcode.slice(0, 6)
}
const pzData = await wzcrkmxModel.getPzMxItem(params, true)
console.log('pzData', pzData)
if (pzData.length == 0) {
Prompt.showToast({
// title: this.pageType + '导入的凭证中无扫描品种,不容许添加!',
message: '本单据中无此扫描品种,不允许添加!'
})
return
}
}
// 调号 - 1.不容许新建,数量不可以超
// 2.同品种调入调出合计为0
// 3.同品种xx号型如果是调入不能为调出,反之
if (this.pageType == '调号') {
const params = {
wzcrkguid: this.pzxqGuild,
pmdmcode: ITEM.pmdmcode
}
// console.log('getPzMxItemSql(params, false)', getPzMxItemSql(params,
// false))
const pzData = await wzcrkmxModel.getPzMxItem(params, false)
// console.log('pzData', pzData)
if (pzData.length == 0) {
Prompt.showToast({
message: '调号导入的凭证中无扫描品种,不容许添加!'
})
return
} else {
// @ts-ignore
var currentModel = Number(pzData[0].PZSL) > 0 ? true : false
var model = currentModel ? '调出' : '调入'
if (this.currentModel !== currentModel) {
Prompt.showToast({
message: '当前物资调号模式为' + model + '无法修改'
})
return
}
}
}
// 倒库 - 1.倒出不可以新建 倒入新建同品种同号型
// 2.倒出和倒入的品种号型必须一样
if (this.pageType == '倒库') {
// if (this.currentModel) {
const params = {
wzcrkguid: this.pzxqGuild,
pmdmcode: ITEM.pmdmcode
}
const pzData = await await wzcrkmxModel.getPzMxItem(params, false)
console.log('pzDatapzData', pzData)
if (pzData.length == 0) {
Prompt.showToast({
message: '倒库导入的凭证中无扫描品种,不容许添加!'
})
return
}
}
// 盘库 - 1.详情新增物资明细无限制
} else {
// 单据新建详情
// 收物单-1.详情新增物资明细无限制
// 调号 - 1.详情新增物资明细无限制;
// 2.同品种调入调出合计为0
// 3.同品种xx号型如果是调入不能为调出,反之;
if (this.pageType == '调号') {
const params = {
wzcrkguid: this.pzxqGuild,
pmdmcode: ITEM.pmdmcode
}
const pzData = await wzcrkmxModel.getPzMxItem(params, false)
console.log('pzData', pzData)
if (pzData.length == 0) {
// uni.showToast({
// title: '调号导入的凭证中无扫描品种,不容许添加!',
// icon: 'none'
// })
// return
} else {
// @ts-ignore
var currentModel = Number(pzData[0].PZSL) > 0 ? true : false
var model = currentModel ? '调出' : '调入'
if (this.currentModel !== currentModel) {
Prompt.showToast({
message: '当前物资调号模式为' + model + '无法修改'
})
return
}
}
}
// 换位 - 1.详情新增物资明细无限制
// 2.换出和换入的品种号型必须一样
}
const [data] = this.historicalInformation.filter((item, index) => item
.pmdmcode == ITEM.pmdmcode && item.hwh == this.pzForm.hwh)
console.log('data', data)
if (this.pageType == '调号') {
if (data && data.currentModel !== this.currentModel) {
const model = data.currentModel ? '调出' : '调入'
Prompt.showToast({
message: '当前物资调号模式为' + model + '无法修改'
})
return
}
}
if (!!this.currentPmdmcode && this.currentPmdmcode.slice(0, 6) == ITEM
.pmdmcode
.slice(0, 6)) {
console.log('同品名数据时')
this.handleSetInsertOrUpdate(res, ITEM)
// this.setDkScan(ITEM)
} else {
console.log('不同品名数据时')
// 1.先查询同品种数据
this.pageInit(ITEM, 'insert', () => {
// 2.判断品名和货位相同
this.handleSetInsertOrUpdate(res, ITEM)
})
}
})
console.log('this.historicalInformation', this.historicalInformation)
}
} }
} }
async pageInit(ITEM, tip, callback?) {
try {
// 不同号型新增
// 查询同号型数据
const params = {
guid: this.pzxqGuild,
pmdm: ITEM.pmdmcode.slice(0, 6)
}
const res = await wzcrkmxModel.getCommonHxPzMx(params)
// 设置
if (tip == 'insert') {
Prompt.showToast({
message: '切换号型:' + ITEM.pmdmcode + '数据'
})
}
this.currentPmdmcode = ITEM.pmdmcode
this.historicalInformation = res
this.setDefaultActive()
callback && callback()
} catch (e) {
}
}
/***
* @description: 数据设置默认状态
*/
setDefaultActive() {
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
// 倒库默认添加倒库模式
this.historicalInformation.forEach((item) => {
if (item.pzsl > 0) {
item.currentModel = true
} else {
item.currentModel = false
}
})
}
}
/***
* @description: 单据明细新增/修改
*/
async handleSetInsertOrUpdate(res, ITEM) {
const [filterInsrtData] = res.data.filter(item => item.pmdmcode == ITEM.pmdmcode && item
.hxmc == ITEM.hxmc)
var testPmdmCodeSql = []
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
testPmdmCodeSql = this.historicalInformation.filter((item) => item.pmdmcode ==
filterInsrtData.pmdmcode && (item.hwh == '' || item.hwh == this.pzForm.hwh) && item
.currentModel == this.currentModel)
} else {
testPmdmCodeSql = this.historicalInformation.filter((item) => item.pmdmcode ==
filterInsrtData.pmdmcode && (item.hwh == '' || item.hwh == this.pzForm.hwh))
}
console.log('testPmdmCodeSql', testPmdmCodeSql, this.currentModel)
if (testPmdmCodeSql && testPmdmCodeSql.length > 0) {
var update_crksl = 0
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
if (this.currentModel) {
update_crksl = Number(testPmdmCodeSql[0].crksl) +
Number(filterInsrtData.srsl)
} else {
update_crksl = Number(testPmdmCodeSql[0].crksl) -
Number(filterInsrtData.srsl)
}
} else {
if (testPmdmCodeSql[0].crksl) {
update_crksl = Number(testPmdmCodeSql[0].crksl) +
Number(filterInsrtData.srsl)
} else {
update_crksl = filterInsrtData.srsl
}
}
const updateParams = {
mxguid: testPmdmCodeSql[0].mxguid,
hwh: testPmdmCodeSql[0].hwh || this.pzForm.hwh,
crksl: update_crksl
}
await wzcrkmxModel.updateWzmx(updateParams)
} else {
var insert_crksl = 0
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
if (this.currentModel) {
insert_crksl = 0 + Number(filterInsrtData.srsl)
} else {
insert_crksl = 0 - Number(filterInsrtData.srsl)
}
} else {
insert_crksl = filterInsrtData.srsl
}
const insertParams = {
guid: uuid(),
pzsl: insert_crksl,
crksl: insert_crksl,
hwh: this.pzForm.hwh,
wzcrkguid: this.pzxqGuild,
currentModel: this.currentModel,
...filterInsrtData
}
await wzcrkmxModel.insertWz(insertParams)
// createOrFindSQL("GY_M_PMV3", insertWz(insertParams))
ITEM.mxguid = insertParams.guid
}
// this.pageInit(ITEM, 'update')
if (res.data && res.data.length > 1) {
this.pageInit(ITEM, 'update')
} else {
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
this.pageInit(ITEM, 'update')
} else {
this.setDkScan(ITEM, res.data)
}
}
}
/***
* @description: 修改物资数据
*/
setDkScan(ITEM, ScanData) {
// console.log('修改配置信息=============================================')
try {
if (this.historicalInformation && this.historicalInformation.length > 0) {
const [data] = this.historicalInformation.filter((item, index) =>
item.pmdmcode == ITEM.pmdmcode)
// console.log('判断有没有这条数据,没有新增=============================================')
// console.log(data)
// 判断有没有这条数据,没有新增
if (data) {
// 倒库单判断如果当前为倒出模式判断有没有这个pmdmcode/currentModel为1的
// 有覆盖/无新增(新增向缓存添加,向新增列表添加)
// 如果有这条数据,判断当前数据有没有货位号
if (data.hwh) {
// 如果有货位号,判断货位号和当前扫描货位号是否一致
if (data.hwh == this.pzForm.hwh) {
if (this.pageType == '倒库') {
// 先检测是否存在,如果存在覆盖,如果没有新增
const newCurrentModel = this.currentModel
const [newIsDk] = this.historicalInformation.filter((item) =>
item.pmdmcode == data
.pmdmcode && item.currentModel == newCurrentModel)
if (newIsDk) {
// 如果一致,则覆盖这条数据货位并合计
this.historicalInformation.forEach(async (item,
index) => {
if (item.hwh == this.pzForm.hwh && item
.pmdmcode == ITEM.pmdmcode && item
.currentModel ==
newCurrentModel) {
// item.currentModel = this.currentModel
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) +
Number(
num)
} else {
hjsl = Number(item.crksl) -
Number(
num)
}
} else {
hjsl = Number(item.crksl) + Number(
num)
}
item.crksl = hjsl
}
})
} else {
const params = {
guid: uuid(),
pzsl: ITEM.srsl,
crksl: ITEM.srsl,
hwh: this.pzForm.hwh,
wzcrkguid: this.pzxqGuild,
currentModel: this.currentModel,
...ITEM
}
if (params.currentModel) {
params.pzsl = 0 + Number(ITEM.srsl)
params.crksl = 0 + Number(ITEM.srsl)
} else {
params.pzsl = 0 - Number(ITEM.srsl)
params.crksl = 0 - Number(ITEM.srsl)
}
// @ts-ignore
this.insertWzMxFun(params)
// this.historicalInformation.unshift(params)
// this.bufferFun(params)
// createOrFindSQL("GY_M_PMV3", insertWz(params))
// uni.showToast({
// title: '新增单据号型:' + ITEM.hxmc + '模式:' + this.currentModel ? '倒出' :
// '倒入',
// icon: 'none'
// })
}
} else {
// 如果一致,则覆盖这条数据货位并合计
this.historicalInformation.forEach(async (item,
index) => {
if (item.hwh == this.pzForm.hwh && item
.pmdmcode == ITEM.pmdmcode) {
// item.currentModel = this.currentModel
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) +
Number(
num)
} else {
hjsl = Number(item.crksl) -
Number(
num)
}
} else {
hjsl = Number(item.crksl) + Number(num)
}
item.crksl = hjsl
// this.bufferFun(item)
}
})
}
} else {
if (this.pageType == '倒库') {
// 先检测是否存在,如果存在覆盖,如果没有新增
const newCurrentModel = this.currentModel
const [newIsDk] = this.historicalInformation.filter((item) =>
item.pmdmcode == data
.pmdmcode && item.currentModel == newCurrentModel)
if (newIsDk) {
// 如果不一致,则新增数据
const [newHwData] = this.historicalInformation.filter((
item) => item.hwh ==
this
.pzForm
.hwh && item.pmdmcode == ITEM.pmdmcode)
if (newHwData) {
this.historicalInformation.forEach(async (item,
index) => {
if (item.hwh == this.pzForm.hwh && item
.pmdmcode == ITEM
.pmdmcode && item.currentModel ==
newCurrentModel) {
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) +
Number(
num)
} else {
hjsl = Number(item.crksl) -
Number(
num)
}
} else {
hjsl = Number(item.crksl) +
Number(num)
}
item.crksl = hjsl
// this.bufferFun(item)
}
})
} else {
if (this.pageType == '倒库') {
Prompt.showToast({
message: '此单据号型:' + ITEM.hxmc + '不存在'
})
return
} else {
this.insertWzmxFun(ITEM)
}
}
} else {
const params = {
guid: uuid(),
pzsl: ITEM.srsl,
crksl: ITEM.srsl,
hwh: this.pzForm.hwh,
wzcrkguid: this.pzxqGuild,
currentModel: this.currentModel,
...ITEM
}
if (params.currentModel) {
params.pzsl = 0 + Number(ITEM.srsl)
params.crksl = 0 + Number(ITEM.srsl)
} else {
params.pzsl = 0 - Number(ITEM.srsl)
params.crksl = 0 - Number(ITEM.srsl)
}
// @ts-ignore
this.insertWzMxFun(params)
// this.historicalInformation.unshift(params)
// this.bufferFun(params)
// createOrFindSQL("GY_M_PMV3", insertWz(params))
// uni.showToast({
// title: '新增单据号型:' + ITEM.hxmc + '模式:' + this.currentModel ? '倒出' :
// '倒入',
// icon: 'none'
// })
}
} else {
// 如果不一致,则新增数据
const [newHwData] = this.historicalInformation.filter((item) =>
item.hwh == this
.pzForm
.hwh && item.pmdmcode == ITEM.pmdmcode)
if (newHwData) {
this.historicalInformation.forEach(async (item,
index) => {
if (item.hwh == this.pzForm.hwh &&
item
.pmdmcode == ITEM.pmdmcode) {
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) +
Number(
num)
} else {
hjsl = Number(item.crksl) -
Number(
num)
}
} else {
hjsl = Number(item.crksl) + Number(
num)
}
item.crksl = hjsl
// this.bufferFun(item)
}
})
} else {
if (this.pageType == '倒库') {
Prompt.showToast({
message: '此单据号型:' + ITEM.hxmc + '不存在'
})
return
} else {
console.log(
'==========================不存在4==============='
)
this.insertWzmxFun(ITEM)
}
}
}
}
} else {
console.log('========================= 无货位 ======================')
if (this.pageType == '倒库') {
// 先检测是否存在,如果存在覆盖,如果没有新增
const newCurrentModel = this.currentModel
const [newIsDk] = this.historicalInformation.filter((item) => item
.pmdmcode == data
.pmdmcode && item.currentModel == newCurrentModel)
console.log('没有货位====================')
console.log(newIsDk)
if (newIsDk) {
// console.log('==========================存在===============1')
// 如果没有货位号,则覆盖这条数据货位并合计
this.historicalInformation.forEach(async (item, index) => {
if (item.pmdmcode == data.pmdmcode && item
.currentModel ==
newCurrentModel) {
if (!item.hwh) {
item.hwh = this.pzForm.hwh
// @ts-ignore
item.hjguid = this.pzForm.hjguid
}
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) +
Number(
num)
} else {
hjsl = Number(item.crksl) -
Number(
num)
}
} else {
hjsl = Number(item.crksl) + Number(num)
}
item.crksl = hjsl
// this.bufferFun(item)
}
})
} else {
console.log('==========================不存在5===============2')
const params = {
guid: uuid(),
pzsl: ITEM.srsl,
crksl: ITEM.srsl,
hwh: this.pzForm.hwh,
wzcrkguid: this.pzxqGuild,
currentModel: this.currentModel,
...ITEM
}
if (params.currentModel) {
params.pzsl = 0 + Number(ITEM.srsl)
params.crksl = 0 + Number(ITEM.srsl)
} else {
params.pzsl = 0 - Number(ITEM.srsl)
params.crksl = 0 - Number(ITEM.srsl)
}
console.log('===========params5', params)
// @ts-ignore
this.insertWzMxFun(params)
// this.historicalInformation.unshift(params)
// this.bufferFun(params)
// createOrFindSQL("GY_M_PMV3", insertWz(params))
// uni.showToast({
// title: '新增单据号型:' + ITEM.hxmc + '模式:' + this.currentModel ? '倒出' : '倒入',
// icon: 'none'
// })
}
} else {
// 如果没有货位号,则覆盖这条数据货位并合计
this.calcWzmxFun(data, ITEM)
}
}
} else {
// 倒库单 判断有没有这条数据,没有提示
if (this.pageType == '倒库') {
Prompt.showToast({
message: '此单据号型:' + ITEM.hxmc + '不存在'
})
return
} else {
console.log('==========================不存在6===============')
this.insertWzmxFun(ITEM)
}
}
} else {
// console.log('========================= 列表无数据新增 ======================')
if (this.pageType == '倒库') {
Prompt.showToast({
message: '此单据号型:' + ITEM.hxmc + '不存在'
})
return
} else {
console.log('==========================不存在7===============')
this.insertWzmxFun(ITEM)
}
}
const newData = ScanData.map((item) => {
const [filterData] = this.historicalInformation.filter((fLe) => fLe.pmdmcode ==
item.pmdmcode && fLe.hwh == this.currentHwh)
return filterData
})
this.currentWZInfo = newData
console.log('this.currentWZInfo', JSON.stringify(this.currentWZInfo))
Logger.info(this, '手动修改结束', dateUtils.formatDate(new Date()))
} catch (e) {
//TODO handle the exception
Prompt.showToast({
message: '修改物资失败'
})
}
}
/***
* @description: 新增物资明细
* @param {*}
* @return {*}
* @author: 王弘钢
*/
insertWzmxFun(ITEM) {
try {
var insert_crksl = 0
if (this.pageType == '倒库') {
if (this.currentModel) {
insert_crksl = 0 + Number(ITEM.srsl)
} else {
insert_crksl = 0 - Number(ITEM.srsl)
}
} else {
insert_crksl = ITEM.srsl
}
const params = {
guid: uuid(),
pzsl: insert_crksl,
crksl: insert_crksl,
hwh: this.pzForm.hwh,
wzcrkguid: this.pzxqGuild,
currentModel: this.currentModel,
...ITEM
}
// console.log('新增单据号型', params)
// console.log('开始新增物资明细', dateUtils.formatDate(new Date()))
// createOrFindSQL("GY_M_PMV3", insertWz(params))
// console.log('新增物资明细结束', dateUtils.formatDate(new Date()))
// this.insertWzMxFun(params)
this.historicalInformation.unshift(params)
// this.historicalInformation.forEach((item) => {
// if (item.pmdmcode == params.pmdmcode) {
// console.log('筛选ITEM', item)
// if (item.children && item.children.length > 0) {
// const [filterPmData] = item.children.filter((ELEMENT) => ELEMENT.pmdmcode == params
// .pmdmcode && ELEMENT.hwh == params.hwh)
// if (filterPmData) {
// item.children.forEach(newItem => {
// if (newItem.pmdmcode == params.pmdmcode && ELEMENT.hwh == params
// .hwh) {
// newItem.crksl = Number(newItem.crksl) + Number(insert_crksl)
// newItem.pzsl = Number(newItem.pzsl) + Number(insert_crksl)
// console.log('筛选ITEM.===', item.children)
// }
// })
// // item.children.(params)
// } else {
// item.children.push(params)
// console.log('筛选ITEM.push', item.children)
// }
// } else {
// item.children = []
// item.children.push(params)
// console.log('筛选ITEM.push', item.children)
// }
// }
// })
// createOrFindSQL("GY_M_PMV3", insertWz(params))
// uni.showToast({
// title: '新增单据号型:' + ITEM.hxmc,
// icon: 'none'
// })
} catch (e) {
//TODO handle the exception
Prompt.showToast({
message: '物资新增失败'
})
}
}
/***
* @description: 计算合计数
* @param {*}
* @return {*}
* @author: 王弘钢
*/
calcWzmxFun(data, ITEM) {
try {
this.historicalInformation.forEach(async (item, index) => {
if (item.pmdmcode == data.pmdmcode) {
if (!item.hwh) {
item.hwh = this.pzForm.hwh
// @ts-ignore
item.hjguid = this.pzForm.hjguid
}
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) + Number(num)
} else {
hjsl = Number(item.crksl) - Number(num)
}
} else {
hjsl = Number(item.crksl) + Number(num)
}
item.crksl = hjsl
// this.bufferFun(item)
}
})
} catch (e) {
//TODO handle the exception
Prompt.showToast({
message: '物资合计失败'
})
}
}
handleGetDefaultHwh(res) { handleGetDefaultHwh(res) {
try { try {
var defaultArr = [] var defaultArr = []
res.data.forEach(async (item, index) => { res.data.forEach(async (item, index) => {
const defaultParams = { const defaultParams = {
kfdm: this.wzcrk.kfdm, kfdm: this.wzcrk.kfdm,
pmguid: item.pmdm pmguid: item?.pmdm
} }
Logger.info(this, '默认货位defaultParams-------', JSON.stringify(item), JSON.stringify(defaultParams))
// 获取推荐货位 // 获取推荐货位
const defaultData = await wzcrkmxModel.queryRecommendHw(defaultParams) const defaultData = await wzcrkmxModel.queryRecommendHw(defaultParams)
Logger.info(this, '默认货位defaultData-------', JSON.stringify(defaultData))
defaultArr = defaultArr.concat(defaultData) defaultArr = defaultArr.concat(defaultData)
const last = res.data.length - 1 const last = res.data.length - 1
if (index == last) { if (index == last) {
Logger.info(this, 'defaultArr-------', JSON.stringify(defaultArr)) Logger.info(this, '默认货位defaultArr-------', JSON.stringify(defaultArr))
this.defaultArr = defaultArr this.defaultArr = defaultArr
} }
}) })
......
...@@ -8,7 +8,6 @@ import wzcrkmxModel from '../../../../model/WzcrkmxModel'; ...@@ -8,7 +8,6 @@ import wzcrkmxModel from '../../../../model/WzcrkmxModel';
import { PzFormClass, WzClass, WzmxClass } from '../../Common/Wzcrk.data'; import { PzFormClass, WzClass, WzmxClass } from '../../Common/Wzcrk.data';
import promptAction from '@ohos.promptAction'; import promptAction from '@ohos.promptAction';
import wzcrkModel from '../../../../model/WzcrkModel'; import wzcrkModel from '../../../../model/WzcrkModel';
import { SQLiteContext, Wzcrkmx, WzcrkmxDao } from '@ohos/common';
import { AddWzin } from './AddWzin' import { AddWzin } from './AddWzin'
import { uuid } from '@ohos/common/src/main/ets/utils/util'; import { uuid } from '@ohos/common/src/main/ets/utils/util';
import IdentifyService from '../../../../identify/IdentifySerivce' import IdentifyService from '../../../../identify/IdentifySerivce'
...@@ -40,7 +39,6 @@ struct WzinDetail { ...@@ -40,7 +39,6 @@ struct WzinDetail {
@State wzcrk: WzClass = null // 物资出入库单据信息 @State wzcrk: WzClass = null // 物资出入库单据信息
@State wzmx: WzmxClass[] = [] // 物资出入库明细 @State wzmx: WzmxClass[] = [] // 物资出入库明细
@State pzForm: PzFormClass = null // 物资出入库表单详情 @State pzForm: PzFormClass = null // 物资出入库表单详情
wzcrkmxDao: WzcrkmxDao = SQLiteContext.with(WzcrkmxDao)
private controller: TabsController = new TabsController() private controller: TabsController = new TabsController()
onPageShow() { onPageShow() {
...@@ -106,7 +104,12 @@ struct WzinDetail { ...@@ -106,7 +104,12 @@ struct WzinDetail {
TabContent() { TabContent() {
Column() { Column() {
WzInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getWzmxList, pageType: "入库", pzForm: this.pzForm }) // pzxqGuild必传 是wzcrk的guid, 我里面已经接了
// pageType必传 入库 出库 盘库 调号 倒库 换位
// dataType必传 导入是true, 其他为false
// isHaveButton 必传 完成状态 未完成是true, 其他为false
WzInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getWzmxList,
pageType: "入库", pzForm: this.pzForm, dataType: this.isUpdate ? true : false, isHaveButton: this.wzcrk.wczt == '未完成' ? true : false})
}.width("100%") }.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息')) }.tabBar(this.TabBuilder(1, '物资信息'))
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论