From 7350388b4f4ae3c4e9d66a1a9598cd57ddd422f1 Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Fri, 1 Nov 2024 11:17:16 +0800 Subject: [PATCH] =?UTF-8?q?YT-573=E7=94=9F=E4=BA=A7=E9=80=80=E6=96=99PDA?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E6=89=B9=E6=AC=A1=E4=B8=94=E6=89=AB?= =?UTF-8?q?=E6=8F=8F=E4=B8=8D=E4=B8=8AYT-499=E5=88=B6=E5=93=81=E5=9B=9E?= =?UTF-8?q?=E6=94=B6=E6=97=B6=EF=BC=8C=E6=89=AB=E6=8F=8F=E7=AE=B1=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E6=97=B6=E6=8A=A5=E9=94=99=EF=BC=9B=E8=A6=81=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E6=9D=A5=E6=BA=90=E5=BA=93=E4=BD=8D=E6=89=80=E5=9C=A8?= =?UTF-8?q?=E5=BA=93=E5=8C=BA=E6=9F=A5=E8=AF=A2=E7=AE=A1=E7=90=86=E7=B2=BE?= =?UTF-8?q?=E5=BA=A6=EF=BC=8C=E6=A0=B9=E6=8D=AE=E7=AE=A1=E7=90=86=E7=B2=BE?= =?UTF-8?q?=E5=BA=A6=E6=9F=A5=E8=AF=A2=E5=BA=93=E5=AD=98=E4=BD=99=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/request2.js | 2 +- src/common/label.js | 6 +- .../detail/comDetailCardBatch.vue | 114 +- src/mycomponents/scan/winScanPack.vue | 1 - .../deliver/coms/comScanDeliverPackBatch.vue | 21 +- src/pages/deliver/job/deliverDetailBatch.vue | 1323 +++++++---------- .../job/productRecycleJobDetail.vue | 84 +- .../productionReturn/job/okToReturnDetail.vue | 84 +- 8 files changed, 731 insertions(+), 904 deletions(-) diff --git a/src/api/request2.js b/src/api/request2.js index cca0a80b..2e715939 100644 --- a/src/api/request2.js +++ b/src/api/request2.js @@ -4302,7 +4302,7 @@ export function overPackageRecordSubmit(params) { * */ export async function getManagementPrecision(params) { - return request({ + return await request({ url: baseApi + "/wms/rule/getPrecisionStrategyByItemCodes", method: "post", data: params, diff --git a/src/common/label.js b/src/common/label.js index 9e3a4c8c..4615e948 100644 --- a/src/common/label.js +++ b/src/common/label.js @@ -105,6 +105,7 @@ export function getQRCodeInfo(header, version, scanMsg, callBack,locationCode) { } export async function getLabelItems(labelItem, scanMsg, callBack,locationCode) { + let managementType = "" let labelResult = analysisQRCodeLabel(labelItem, scanMsg); if (labelResult.label.labelType == 'PurchaseLabel' || labelResult.label.labelType == 'MakeLabel') { //查询包装信息 @@ -114,7 +115,7 @@ export async function getLabelItems(labelItem, scanMsg, callBack,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' + managementType = managementList&&managementList[0]&&managementList[0].ManagementPrecision ? managementList[0].ManagementPrecision :'BY_PACKAGING' if(managementType == 'BY_BATCH' || managementType == 'BY_QUANTITY'){ packingNumber = '' } @@ -137,11 +138,12 @@ export async function getLabelItems(labelItem, scanMsg, callBack,locationCode) { callBack(labelResult); }) } else { - console.log(999,labelResult) //线边的物料可能没有箱码 labelResult.package = labelResult.label; labelResult.package.number = packingNumber1 ? packingNumber1 : '' labelResult.package.packingNumber='' + labelResult.managementType = managementType + console.log(999,labelResult) callBack(labelResult); // labelResult.success = false; // labelResult.message = '在条码中未解析到箱码'; diff --git a/src/mycomponents/detail/comDetailCardBatch.vue b/src/mycomponents/detail/comDetailCardBatch.vue index a45e3033..4a008109 100644 --- a/src/mycomponents/detail/comDetailCardBatch.vue +++ b/src/mycomponents/detail/comDetailCardBatch.vue @@ -1,29 +1,27 @@ diff --git a/src/mycomponents/scan/winScanPack.vue b/src/mycomponents/scan/winScanPack.vue index 2da925c1..e901a25d 100644 --- a/src/mycomponents/scan/winScanPack.vue +++ b/src/mycomponents/scan/winScanPack.vue @@ -49,7 +49,6 @@ type: String, default: 'HPQ' }, - }, data() { return { diff --git a/src/pages/deliver/coms/comScanDeliverPackBatch.vue b/src/pages/deliver/coms/comScanDeliverPackBatch.vue index 1793b008..a39a0bb9 100644 --- a/src/pages/deliver/coms/comScanDeliverPackBatch.vue +++ b/src/pages/deliver/coms/comScanDeliverPackBatch.vue @@ -6,7 +6,7 @@ - 扫描箱码 + 扫描箱码 @@ -55,7 +55,7 @@ + headerType="HPQ,HMQ" :isShowHistory="false" :locationCode='locationCode'> @@ -152,6 +152,10 @@ type: String, default: '' }, + locationCode:{ + type: String, + default: '' + } }, data() { return { @@ -410,7 +414,7 @@ ) return; } - if (this.toLocation && result.package.packUnit) { + if (this.toLocation) { let item = this.toLocation.Items.find(r => r.itemCode == result.package.itemCode); if (!item) { this.showErrorMessage('扫描物料代码不属于该任务'); @@ -533,11 +537,12 @@ } } else { - that.showErrorMessage('箱码【' + packingCode + '】已经扫描,请继续扫描下一箱', - res => { - that.getfocus(); - } - ) + // that.showErrorMessage('箱码【' + packingCode + '】已经扫描,请继续扫描下一箱', + // res => { + // that.getfocus(); + // } + // ) + that.addRecord(batch, label, balance, packageInfo) } } else { diff --git a/src/pages/deliver/job/deliverDetailBatch.vue b/src/pages/deliver/job/deliverDetailBatch.vue index fe069431..6f815e0c 100644 --- a/src/pages/deliver/job/deliverDetailBatch.vue +++ b/src/pages/deliver/job/deliverDetailBatch.vue @@ -1,784 +1,541 @@ - - - - - \ No newline at end of file diff --git a/src/pages/productRecycle/job/productRecycleJobDetail.vue b/src/pages/productRecycle/job/productRecycleJobDetail.vue index 1d8193ed..d1cbf98b 100644 --- a/src/pages/productRecycle/job/productRecycleJobDetail.vue +++ b/src/pages/productRecycle/job/productRecycleJobDetail.vue @@ -71,6 +71,10 @@ import { getManagementPrecisions } from '@/common/balance.js'; + + import { + calc + } from '@/common/calc' import winScanButton from '@/mycomponents/scan/winScanButton.vue' import winScanPackAndLocation from "@/mycomponents/scan/winScanPackAndLocation.vue" @@ -366,20 +370,22 @@ if (itemDetail) { // 箱码、批次、库位、状态一致 if (itemDetail.scaned) { - this.showErrorMessage("\n批次【" + batch + "】\n库位【" + result - .fromLocationCode + "】\n状态【" + balanceStatus + "】\n已经扫描") - return; + // this.showErrorMessage("\n批次【" + batch + "】\n库位【" + result + // .fromLocationCode + "】\n状态【" + balanceStatus + "】\n已经扫描") + itemDetail.handleQty = calc.add(itemDetail.handleQty,Number(result.label.qty)); + itemDetail.balanceQty = Number(result.label.qty); } else { itemDetail.scaned = true; - itemDetail.handleQty = Number(result.balance.qty); + itemDetail.handleQty = Number(result.label.qty); + itemDetail.balanceQty = Number(result.label.qty); itemDetail.toInventoryStatus = result.balance.inventoryStatus; itemDetail.inventoryStatus = result.balance.inventoryStatus; itemDetail.balance = result.balance; itemDetail.balance.balanceQty = Number(result.balance.qty); itemDetail.balance.packQty = Number(result.package.packQty) itemDetail.balance.packUnit = result.package.packUnit - this.calcHandleQty(); } + this.calcHandleQty(); } else { //箱码、批次、库位相等 itemDetail = detail.subList.find(r => { @@ -390,30 +396,44 @@ if (itemDetail) { let itemStatus = getInventoryStatusName(itemDetail.inventoryStatus); //箱码、批次、库位相等,状态不相等 - if (this.jobContent.allowModifyInventoryStatus == "TRUE") { - this.showQuestionMessage('实际库存状态[' + balanceStatus + ']与推荐库存状态[' + itemStatus + - ']不一致,是否继续回收?', res => { - if (res) { - itemDetail.scaned = true; - itemDetail.handleQty = Number(result.balance.qty); - itemDetail.toInventoryStatus = result.balance.inventoryStatus; - itemDetail.inventoryStatus = result.balance.inventoryStatus; - itemDetail.balance = result.balance; - itemDetail.balance.balanceQty = result.balance.qty; - itemDetail.balance.packQty = result.package.packQty - itemDetail.balance.packUnit = result.package.packUnit - this.calcHandleQty(); - } else { + if(balanceStatus!=itemStatus){ + if (this.jobContent.allowModifyInventoryStatus == "TRUE") { + this.showQuestionMessage('实际库存状态[' + balanceStatus + ']与推荐库存状态[' + itemStatus + + ']不一致,是否继续回收?', res => { + if (res) { + itemDetail.scaned = true; + itemDetail.handleQty = itemDetail.handleQty ? calc.add(itemDetail.handleQty,Number(result.label.qty)) : Number(result.label.qty); + itemDetail.toInventoryStatus = result.balance.inventoryStatus; + itemDetail.inventoryStatus = result.balance.inventoryStatus; + itemDetail.balance = result.balance; + itemDetail.balance.balanceQty = result.balance.qty; + itemDetail.balance.packQty = result.package.packQty + itemDetail.balance.packUnit = result.package.packUnit + this.calcHandleQty(); + } else { + this.scanPopupGetFocus(); + } + }); + } else { + this.showQuestionMessage('任务中不允许修改库存状态,实际库存状态[' + balanceStatus + ']与推荐库存状态[' + + itemStatus + + ']不一致,不允许回收!', res => { this.scanPopupGetFocus(); - } - }); - } else { - this.showQuestionMessage('任务中不允许修改库存状态,实际库存状态[' + balanceStatus + ']与推荐库存状态[' + - itemStatus + - ']不一致,不允许回收!', res => { - this.scanPopupGetFocus(); - }); + }); + } + //箱码、批次、库位相等,状态相等 + }else{ + itemDetail.scaned = true; + itemDetail.handleQty = itemDetail.handleQty ? calc.add(itemDetail.handleQty,Number(result.label.qty)) : Number(result.label.qty); + itemDetail.toInventoryStatus = result.balance.inventoryStatus; + itemDetail.inventoryStatus = result.balance.inventoryStatus; + itemDetail.balance = result.balance; + itemDetail.balance.balanceQty = result.balance.qty; + itemDetail.balance.packQty = result.package.packQty + itemDetail.balance.packUnit = result.package.packUnit + this.calcHandleQty(); } + } else { this.showErrorMessage("\n批次【" + batch + "】\n库位【" + result .fromLocationCode + "】\n状态【" + balanceStatus + "】\n不在任务列表中") @@ -492,6 +512,7 @@ checkCountBatch(){ // 提交的数量和任务数量不一致提示 let str = '' + let str1 = '' this.detailSource.forEach((item) => { item.subList.forEach(cur => { if (cur.qty != cur.handleQty) { @@ -503,10 +524,17 @@ } str += `物料号【${item.itemCode}】提交数量【${tempHandleQty}】与任务物料数量【${cur.qty}】不一致` } + if(cur.handleQty > cur.balance.qty){ + str1 += `物料号【${item.itemCode}】提交数量【${cur.handleQty}】不可以大于库存数量【${cur.balance.qty}】` + } }) }) + if (str1) { + this.$refs.comMessage.showMessage(str1); + return + } if (str) { - str = '任务明细未全部完成,是否提交?\n'+str + str = '任务明细未全部完成,是否提交?\n'+ str this.$refs.comMessage.showQuestionMessage1(str, 'red', res => { if (res) { this.submitJob() diff --git a/src/pages/productionReturn/job/okToReturnDetail.vue b/src/pages/productionReturn/job/okToReturnDetail.vue index 017e0c77..5a8ad359 100644 --- a/src/pages/productionReturn/job/okToReturnDetail.vue +++ b/src/pages/productionReturn/job/okToReturnDetail.vue @@ -66,7 +66,9 @@ getManagementPrecisions } from '@/common/balance.js'; - + import { + calc + } from '@/common/calc' import { getDataSource, createRecordInfo, @@ -256,7 +258,7 @@ }, openScanPopup() { - this.$refs.scanPopup.openScanPopup(); + this.$refs.scanPopup.openScanPopup(this.fromLocationCode); // let fromlocationCode = ''; // let fromlocationList = []; // for (var i = 0; i < this.detailSource.length; i++) { @@ -282,6 +284,79 @@ getScanResult(result) { + this.managementType = result.managementType + if (this.managementType == 'BY_BATCH' || this.managementType == 'BY_QUANTITY') { + this.setDataBatch(result) + } else { + this.setData(result) + } + + }, + setDataBatch(result){ + try { + var packingNumber = result.label.packingNumber; + var batch = result.label.batch; + var qty = result.label.qty; + var itemCode = result.label.itemCode; + var detail = this.detailSource.find(r => r.itemCode == itemCode); + if (detail == undefined) { + this.showErrorMessage("物料号【" + itemCode + "】不在列表中") + } else { + var itemDetail = detail.subList.find(r => { + return r.batch == batch + }) + if (itemDetail == undefined) { + this.showErrorMessage("批次[" + batch + "]不在列表中") + } else { + if (itemDetail.scaned) { + // this.showErrorMessage("批次[" + batch + "]已经扫描") + itemDetail.handleQty =calc.add(itemDetail.handleQty,Number(result.package.qty)) + } else { + itemDetail.scaned = true; + itemDetail.handleQty = Number(result.package.qty) + itemDetail.inventoryStatus = "OK" + itemDetail.packQty = result.package.packQty + itemDetail.packUnit = result.package.packUnit + + + //合格退料时不能查库存余额,因为生产退料时新生成的批次是000000 --nxt + // let balanceStatus = getInventoryStatusName(result.balance.inventoryStatus); + // let itemStatus = getInventoryStatusName(itemDetail.inventoryStatus); + // if (itemDetail.inventoryStatus != result.balance.inventoryStatus) { + // this.showQuestionMessage('实际库存状态[' + balanceStatus + ']与推荐库存状态[' + itemStatus + + // ']不一致,是否继续上架?', res => { + // if (res) { + // itemDetail.scaned = true; + // itemDetail.handleQty = Number(result.balance.qty) + // itemDetail.balance = result.balance; + // itemDetail.balance.balanceQty = result.balance.qty; + // itemDetail.balance.packQty = result.package.packQty + // itemDetail.balance.packUnit = result.package.packUnit + // this.calcHandleQty(); + // } else { + // this.scanPopupGetFocus(); + // } + // }); + // } else { + // itemDetail.scaned = true; + // itemDetail.handleQty = Number(result.balance.qty) + // itemDetail.balance = result.balance; + // itemDetail.balance.balanceQty = result.balance.qty; + // itemDetail.balance.packQty = result.package.packQty + // itemDetail.balance.packUnit = result.package.packUnit + // this.calcHandleQty(); + // } + } + this.calcHandleQty(); + } + } + this.scanPopupGetFocus(); + } catch (e) { + this.showErrorMessage(e.message); + } + }, + + setData(result){ try { var packingNumber = result.label.packingNumber; var batch = result.label.batch; @@ -306,8 +381,8 @@ itemDetail.packQty = result.package.packQty itemDetail.packUnit = result.package.packUnit this.calcHandleQty(); - - + + //合格退料时不能查库存余额,因为生产退料时新生成的批次是000000 --nxt // let balanceStatus = getInventoryStatusName(result.balance.inventoryStatus); // let itemStatus = getInventoryStatusName(itemDetail.inventoryStatus); @@ -400,6 +475,7 @@ itemCode: itemCodes, locationCode: this.toLocationCode } + getManagementPrecisions(itemCodes, this.toLocationCode, res => { if (res.success) { this.managementList = res.list;