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 @@
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -31,20 +29,13 @@
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;