From ec1b6f71554a51093d7ce038bb6d1719117ae4d4 Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Fri, 25 Oct 2024 17:30:17 +0800 Subject: [PATCH] =?UTF-8?q?YT-497=E9=87=87=E8=B4=AD=E6=94=B6=E8=B4=A7PAD?= =?UTF-8?q?=E6=89=AB=E6=8F=8F=E7=AE=B1=E7=A0=81=EF=BC=8C=E5=90=8C=E4=B8=80?= =?UTF-8?q?=E6=89=B9=E6=AC=A1=E7=9A=84=E4=B8=8D=E8=83=BD=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=89=AB=E6=8F=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/request2.js | 4 +- src/common/balance.js | 4 +- src/common/label.js | 38 +++++--- src/mycomponents/item/itemCompareQty.vue | 2 +- src/mycomponents/qty/recommendHandleQty.vue | 97 +++++++++++++++++++ src/mycomponents/scan/winComScan.vue | 13 ++- src/mycomponents/scan/winScanPack.vue | 9 +- .../inventoryMove/record/okToHoldRecord.vue | 51 ++++++++-- .../purchaseReceipt/job/receiptDetail.vue | 81 ++++++++++------ 9 files changed, 236 insertions(+), 63 deletions(-) create mode 100644 src/mycomponents/qty/recommendHandleQty.vue diff --git a/src/api/request2.js b/src/api/request2.js index 2f8668c8..184b1780 100644 --- a/src/api/request2.js +++ b/src/api/request2.js @@ -421,7 +421,7 @@ export function getPackageByNumber(number) { * @param {*} * */ -export function getPackageListByNumber(number) { +export async function getPackageListByNumber(number) { var params = { number: number, pageNo: 1, @@ -4301,7 +4301,7 @@ export function overPackageRecordSubmit(params) { * @param {*} * */ -export function getManagementPrecision(params) { +export async function getManagementPrecision(params) { return request({ url: baseApi + "/wms/rule/getPrecisionStrategyByItemCodes", method: "post", diff --git a/src/common/balance.js b/src/common/balance.js index 75e207e5..8fa38a44 100644 --- a/src/common/balance.js +++ b/src/common/balance.js @@ -105,7 +105,7 @@ export function getPrecisionStrategyList(itemList, callback) { * @param {*} * */ -export function getManagementPrecisions(itemCodes, locationCode, callback) { +export async function getManagementPrecisions(itemCodes, locationCode, callback) { // let jsonParem = JSON.stringify(param) let result = { list: [], @@ -117,7 +117,7 @@ export function getManagementPrecisions(itemCodes, locationCode, callback) { itemCodes: itemCodes, locationCode: locationCode } - getManagementPrecision(params).then(res => { + await getManagementPrecision(params).then(res => { if (res.data == null) { result.success = false result.message = '未查询到管理精度信息' diff --git a/src/common/label.js b/src/common/label.js index 355b68c6..f17c0113 100644 --- a/src/common/label.js +++ b/src/common/label.js @@ -10,10 +10,11 @@ import { getDirectoryItemArray } from '../common/directory.js'; + import { + getManagementPrecisions + } from '@/common/balance.js'; - -export function getLabelInfo(scanMsg, headerType, callBack) { - console.log('扫描信息:', scanMsg); +export function getLabelInfo(scanMsg, headerType, callBack,locationCode) { if (scanMsg.length == 0) { return null } @@ -41,17 +42,17 @@ export function getLabelInfo(scanMsg, headerType, callBack) { let type = header.substring(header.length - 1, header.length); if (type == 'Q') //qrcode { - getQRCodeInfo(header, version, scanMsg, callBack); + getQRCodeInfo(header, version, scanMsg, callBack,locationCode); } // else if (type == 'B') //barcode // { // getBarCodeInfo(header, version, items[2], callBack); // } else { //直接输入文本 - getBarCodeInfo('text', 'V1.0', scanMsg, callBack); + getBarCodeInfo('text', 'V1.0', scanMsg, callBack,locationCode); } } else { - getBarCodeInfo('text', 'V1.0', scanMsg, callBack); + getBarCodeInfo('text', 'V1.0', scanMsg, callBack,locationCode); // let labelResult = { // label: { // labelType: "", @@ -66,7 +67,7 @@ export function getLabelInfo(scanMsg, headerType, callBack) { } } -export function getQRCodeInfo(header, version, scanMsg, callBack) { +export function getQRCodeInfo(header, version, scanMsg, callBack,locationCode) { //获取包装信息 let labelItem = labelDic.find(r => r.header == header && r.version == version); if (labelItem == undefined) { @@ -91,7 +92,7 @@ export function getQRCodeInfo(header, version, scanMsg, callBack) { }; labelDic.push(newItem); - getLabelItems(newItem, scanMsg, callBack); + getLabelItems(newItem, scanMsg, callBack,locationCode); } }).catch(err => { labelResult.success = false; @@ -99,22 +100,32 @@ export function getQRCodeInfo(header, version, scanMsg, callBack) { callBack(err); }) } else { - getLabelItems(labelItem, scanMsg, callBack); + getLabelItems(labelItem, scanMsg, callBack,locationCode); } } -export function getLabelItems(labelItem, scanMsg, callBack) { +export async function getLabelItems(labelItem, scanMsg, callBack,locationCode) { let labelResult = analysisQRCodeLabel(labelItem, scanMsg); if (labelResult.label.labelType == 'PurchaseLabel' || labelResult.label.labelType == 'MakeLabel') { //查询包装信息 let packingNumber = labelResult.label.packingNumber + let packingNumber1 = labelResult.label.packingNumber//记录单号 + if(locationCode){ + await getManagementPrecisions([labelResult.label.itemCode], locationCode, res => { + if (res.success) { + const managementList = res.list; + const managementType = managementList&&managementList[0]&&managementList[0].ManagementPrecision ? managementList[0].ManagementPrecision :'BY_PACKAGING' + if(managementType == 'BY_BATCH' || managementType == 'BY_QUANTITY'){ + packingNumber = '' + } + } + }) + } if (packingNumber != undefined && packingNumber != '') { - getPackageListByNumber(packingNumber).then(pack => { + await getPackageListByNumber(packingNumber).then(pack => { if (pack.data.reqPackage) { labelResult.package = pack.data.reqPackage; labelResult.package.subList = pack.data.subList; - console.log('包装信息', JSON.stringify(labelResult.package)) - } else { labelResult.success = false; labelResult.message = '包装号[' + packingNumber + ']没有包装信息'; @@ -128,6 +139,7 @@ export function getLabelItems(labelItem, scanMsg, callBack) { } else { //线边的物料可能没有箱码 labelResult.package = labelResult.label; + labelResult.package.number = packingNumber1 ? packingNumber1 : '' callBack(labelResult); // labelResult.success = false; // labelResult.message = '在条码中未解析到箱码'; diff --git a/src/mycomponents/item/itemCompareQty.vue b/src/mycomponents/item/itemCompareQty.vue index ed37206c..7c97325f 100644 --- a/src/mycomponents/item/itemCompareQty.vue +++ b/src/mycomponents/item/itemCompareQty.vue @@ -20,7 +20,7 @@ + + \ No newline at end of file diff --git a/src/mycomponents/scan/winComScan.vue b/src/mycomponents/scan/winComScan.vue index 0a55bf5f..979ae50c 100644 --- a/src/mycomponents/scan/winComScan.vue +++ b/src/mycomponents/scan/winComScan.vue @@ -58,6 +58,11 @@ import { getLabelInfo } from '../../common/label.js'; + + import { + getManagementPrecisions + } from '@/common/balance.js'; + export default { name: "winComScan", @@ -83,6 +88,10 @@ headerType: { type: String, default: 'HPQ' //HLB HMQ HCQ HPQ + }, + locationCode:{ + type: String, + default: '' } }, data() { @@ -99,7 +108,6 @@ } }, mounted() { - }, watch: { placeholder() { @@ -170,6 +178,7 @@ if (that.isShowHistory) { that.scanList.unshift(content); } + getLabelInfo(content, this.headerType, callback => { // uni.hideLoading(); let scanResult = callback; @@ -187,7 +196,7 @@ } }) } - }); + },this.locationCode); }, 200); } }, diff --git a/src/mycomponents/scan/winScanPack.vue b/src/mycomponents/scan/winScanPack.vue index 7da05b49..2da925c1 100644 --- a/src/mycomponents/scan/winScanPack.vue +++ b/src/mycomponents/scan/winScanPack.vue @@ -15,7 +15,7 @@ + :isShowHistory="isShowHistory" :clearResult="true" :locationCode='locationCode'> @@ -48,11 +48,13 @@ headerType:{ type: String, default: 'HPQ' - } + }, + }, data() { return { show: false, + locationCode:'' } }, created() { @@ -69,8 +71,9 @@ }) }, - openScanPopup() { + openScanPopup(locationCode1) { this.$refs.popup.open('bottom') + this.locationCode = locationCode1 setTimeout(res => { this.getfocus() }, 500) diff --git a/src/pages/inventoryMove/record/okToHoldRecord.vue b/src/pages/inventoryMove/record/okToHoldRecord.vue index e025da9a..bac77279 100644 --- a/src/pages/inventoryMove/record/okToHoldRecord.vue +++ b/src/pages/inventoryMove/record/okToHoldRecord.vue @@ -1,11 +1,11 @@ + \ No newline at end of file diff --git a/src/pages/purchaseReceipt/job/receiptDetail.vue b/src/pages/purchaseReceipt/job/receiptDetail.vue index 2aa4839d..d0474dc2 100644 --- a/src/pages/purchaseReceipt/job/receiptDetail.vue +++ b/src/pages/purchaseReceipt/job/receiptDetail.vue @@ -76,7 +76,7 @@ - + @@ -117,7 +117,14 @@ calcTreeHandleQty } from '@/common/detail.js'; - + import { + Decimal + } from 'decimal.js'; //引入 + + import { + calc + } from '@/common/calc' + import winScanButton from '@/mycomponents/scan/winScanButton.vue' import winScanPackAndCont from '@/mycomponents/scan/winScanPackAndCont.vue' import winScanPack from '@/mycomponents/scan/winScanPack.vue' @@ -169,8 +176,7 @@ switchCode1: "", isCheckLocation: 'purchaseReceiptLocationCodeValidate', //校验收货库位 reasonText: "", - - + packingNumberList:[], // printDeafult: {}, //默认打印机 // templateDeafult: {} //默认的模板 }; @@ -275,18 +281,18 @@ } that.isAllReceived = false; - //获取管理模式,封装参数 - var itemCodes = [] - this.detailSource.forEach(item => { - itemCodes.push(item.itemCode) - }) - getManagementPrecisions(itemCodes, that.jobToLocationCode, res => { - if (res.success) { - this.managementList = res.list; - this.managementType = this.managementList.some(item => item.ManagementPrecision == - 'BY_BATCH') ? 'BY_BATCH' : '' - } - }) + //获取管理模式,封装参数 + var itemCodes = [] + this.detailSource.forEach(item => { + itemCodes.push(item.itemCode) + }) + getManagementPrecisions(itemCodes, that.jobToLocationCode, res => { + if (res.success) { + this.managementList = res.list; + this.managementType = this.managementList.some(item => item.ManagementPrecision == + 'BY_BATCH') ? 'BY_BATCH' : '' + } + }) // if (uni.getStorageSync('purchaseReceiptDetailPointParams')) { // const purchaseReceiptDetailPointParams = uni.getStorageSync( // 'purchaseReceiptDetailPointParams') @@ -450,10 +456,10 @@ itemDetail.forEach(item => { item.scaned = true; itemDetail.scanDate = new Date(); - item.handleQty = item.qty; + item.handleQty = calc.add(item.handleQty,result.label.qty) item.toLocationCode = this.toLocationCode; }) - calcHandleQty(this.detailSource); + // calcHandleQty(this.detailSource); this.detailSource[0].subList.sort(compareDesc('scanDate')); //按扫描信息排序 this.continueScan() this.$forceUpdate() @@ -483,10 +489,17 @@ if (pack == undefined) { this.showMessage("批次【" + batch + "】不在列表中") } else { - if (pack.scaned) { + let isScan = false + if(packingNumber){ + isScan = this.packingNumberList.some(item=>item == packingNumber) + }else{ + isScan = false + } + if (isScan) { pack.scanDate = new Date(); - this.showMessage("批次【" + batch + "】已经扫描"); + this.showMessage("箱码【" + packingNumber + "】已经扫描"); } else { + this.packingNumberList.push(packingNumber) pack.scaned = true pack.scanDate = new Date(); pack.handleQty = Number(result.label.qty); @@ -507,24 +520,31 @@ scanedLength++; } }) - if (itemDetail.scaned && scanedLength == itemDetail - .packList.length) { + let isScan = false + if(packingNumber){ + isScan = this.packingNumberList.some(item=>item == packingNumber) + }else{ + isScan = false + } + if (isScan) { itemDetail.scanDate = new Date(); - this.showMessage("批次【" + batch + "】已经扫描") + this.showMessage("箱码【" + packingNumber + "】已经扫描") } else { + this.packingNumberList.push(packingNumber) itemDetail.scaned = true; itemDetail.scanDate = new Date(); - itemDetail.handleQty = Number(result.label.qty); + itemDetail.handleQty =itemDetail.handleQty ?itemDetail.handleQty:0 + itemDetail.handleQty = calc.add(itemDetail.handleQty,result.label.qty) + console.log(itemDetail.handleQty) itemDetail.toLocationCode = this.toLocationCode; itemDetail.labelQty = Number(result.label.qty); itemDetail.packList.forEach(pac => { pac.scaned = true pac.scanDate = new Date(); - pac.handleQty = Number(pac.qty); + pac.handleQty = calc.add(pac.handleQty,result.label.qty); pac.toLocationCode = this.toLocationCode; }) - - calcTreeHandleQty(this.detailSource); + detail.handleQty = itemDetail.handleQty this.detailSource[0].subList.sort(compareDesc('scanDate')); //按扫描信息排序 this.continueScan() this.$forceUpdate() @@ -598,7 +618,7 @@ //不允许部分提交,提示 this.$refs.comMessage.showErrorMessage("任务明细未全部完成,不允许部分提交!", res => { if (res) { - this.openScanPopup(); + this.openScanPopup(this.jobToLocationCode); } }); } @@ -634,7 +654,6 @@ } }) }, - submitJob() { uni.showLoading({ title: "提交中....", @@ -644,8 +663,6 @@ this.detailSource.forEach(item => { itemCodes.push(item.itemCode) }) - - //获取管理模式,封装参数 getManagementPrecisions(itemCodes, this.toLocationCode, res => { if (res.success) { @@ -888,7 +905,7 @@ }, openScanPopup() { - this.$refs.scanPopup.openScanPopup(); + this.$refs.scanPopup.openScanPopup(this.jobToLocationCode); }, closeScanPopup() {