From 834c19b9fb3cdbcc754ee8387eb919a8ea111016 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BF=97=E5=9B=BD?= <854933521@qq.com> Date: Mon, 4 Nov 2024 14:03:30 +0800 Subject: [PATCH] =?UTF-8?q?page/repleinsh/record=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=208/8-10/25?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../record/directRepleinshRecord.vue | 156 +++++- .../record/directRepleinshRecord1.vue | 514 ++++++++++++++++++ .../repleinsh/record/repleinshRecord.vue | 4 +- .../repleinsh/record/repleinshRecordV1.vue | 2 +- 4 files changed, 659 insertions(+), 17 deletions(-) create mode 100644 src/pages/repleinsh/record/directRepleinshRecord1.vue diff --git a/src/pages/repleinsh/record/directRepleinshRecord.vue b/src/pages/repleinsh/record/directRepleinshRecord.vue index 3f93c318..32fed8e9 100644 --- a/src/pages/repleinsh/record/directRepleinshRecord.vue +++ b/src/pages/repleinsh/record/directRepleinshRecord.vue @@ -38,6 +38,7 @@ + @@ -66,6 +67,7 @@ import winScanPackAndLocation from '@/mycomponents/scan/winScanPackAndLocation.v import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue' import recordDetailCard from '@/mycomponents/record/recordDetailCard.vue' import balanceSelect from '@/mycomponents/balance/balanceSelect.vue' +import balanceQuery from '@/mycomponents/query/balanceQuery.vue' import winComScanBalance from '@/mycomponents/scan/winComScanBalance.vue' import { useCountStore } from '@/store' // 获取自定义的store @@ -91,6 +93,7 @@ const itemCode = ref('') const balanceSelectRef = ref({}) const managementList = ref([]) +const managementType= ref('') // const positionList = ref([]) // const show = ref(false) // const positionInfo = ref('请选择生产线') @@ -98,6 +101,7 @@ const comMessageRef = ref() const show = ref(false) const scanPopup = ref() const scanLocationCode = ref() +const refBalanceQuery = ref(null) onLoad((option) => { uni.setNavigationBarTitle({ title: option.title @@ -109,6 +113,9 @@ onLoad((option) => { onNavigationBarButtonTap((e) => { if (e.index === 0) { goHome() + }else if (e.index == 1) { + refBalanceQuery.value.showDrawer(); + closeScanPopup(); } }) const getBusinessType = () => { @@ -176,12 +183,12 @@ const getBalance = (label, packageInfo, callback) => { const getScanResult = (result) => { setData(result) } -const setData = (result) => { +const setData = async (result) => { const { balance } = result const { label } = result const pack = result.package if (fromLocationCode.value && fromLocationCode.value != balance.locationCode) { - showErrorMessage(`箱码[${balance.packingNumber}批次[${balance.batch}]在库位[${fromLocationCode.value}]没有库存余额`) + showErrorMessage(`批次[${balance.batch}]在库位[${fromLocationCode.value}]没有库存余额`) return } @@ -210,31 +217,152 @@ const setData = (result) => { itemp.subList.push(newDetail) detailSource.value.push(itemp) itemCode.value = balance.itemCode - fromLocationCode.value = balance.locationCode.scanPopupGetFocus() + fromLocationCode.value = balance.locationCode + await getToLocationBalance(this.toLocationCode,result) } else { const detail = item.subList.find((r) => { - if (r.packingNumber == pack.number && r.batch == balance.batch && r.locationCode == balance.locationCode && r.inventoryStatus == balance.inventoryStatus) { + if (r.batch == balance.batch && r.locationCode == balance.locationCode && r.inventoryStatus == balance.inventoryStatus) { return r } }) if (detail == undefined) { - const newDetail = createDetailInfo(balance, pack) - newDetail.parentNumber = pack.parentNumber - newDetail.packingNumber = pack.number - newDetail.packUnit = pack.packUnit - newDetail.packQty = pack.packQty - if (balance.lableQty) { - newDetail.handleQty = balance.lableQty + //如果最开始扫父,在扫子,提示已经扫描父包装 + //如果扫子在扫父,提示扫描的是父包装,是否移除子包装,是移除子包装,显示父包装 + //扫描的是子包装, + if (pack.parentNumber) { + let checkData = item.subList.find(r => { + if (r.packingNumber == pack.parentNumber && + r.batch == balance.batch) { + return r; + } + }) + if (checkData) { + //提示已经扫描 + showErrorMessage("箱码[" + pack.number + "]批次[" + balance.batch + + "]的父包装已经扫描") + } else { + const newDetail = createDetailInfo(balance, pack) + newDetail.parentNumber = pack.parentNumber + newDetail.packingNumber = pack.number + newDetail.packUnit = pack.packUnit + newDetail.packQty = pack.packQty + if (balance.lableQty) { + newDetail.handleQty = balance.lableQty + } + item.subList.push(newDetail) + } + }else { + //扫描的是父包装 + let checkData = item.subList.find(r => { + if (r.parentNumber == pack.number && + r.batch == balance.batch) { + return r; + } + }) + if (checkData) { + //是否移除 + comMessageRef.value.showQuestionMessage("扫描箱码[" + checkData.parentNumber + "]" + "批次[" + balance + .batch + "]是父包装,是否移除子包装", res => { + if (res) { + item.subList = []; + const newDetail = createDetailInfo(balance, pack) + newDetail.parentNumber = pack.parentNumber + newDetail.packingNumber = pack.number + newDetail.packUnit = pack.packUnit + newDetail.packQty = pack.packQty + if (balance.lableQty) { + newDetail.handleQty = balance.lableQty + } + item.subList.push(newDetail) + } + }) + console.log("扫描的是父包装,是否移除子包装") + } else { + const newDetail = createDetailInfo(balance, pack) + newDetail.parentNumber = pack.parentNumber + newDetail.packingNumber = pack.number + newDetail.packUnit = pack.packUnit + newDetail.packQty = pack.packQty + if (balance.lableQty) { + newDetail.handleQty = balance.lableQty + } + item.subList.push(newDetail) + } } - item.subList.push(newDetail) scanPopupGetFocus() } else if (detail.scaned == true) { - showErrorMessage(`箱码[${detail.packingNumber}批次[${balance.batch}]已经在列表中`) + detail.handleQty = calc.add(detail.handleQty, result.label.qty) + // showErrorMessage(`箱码[${detail.packingNumber}批次[${balance.batch}]已经在列表中`) } } calcHandleQty(detailSource.value) } +//查询到目标库位的库存余额 +const getToLocationBalance = async (toLocationCode, result)=> { + uni.showLoading({ + title: '查询中', + mask: true + }) + let filters = [] + if (result.package.parentNumber) { + let packingNumber = result.package.parentNumber + "," + result.package.number; + filters.push({ + column: "packingNumber", + action: "in", + value: packingNumber + }) + } else { + filters.push({ + column: "packingNumber", + action: "==", + value: result.package.number + }) + } + + filters.push({ + column: "itemCode", + action: "==", + value: result.package.itemCode + }) + filters.push({ + column: "batch", + action: "==", + value: result.package.batch + }) + filters.push({ + column: "areaType", + action: "in", + value: toLocationAreaTypeList.value.join(',') + }) + + + const params = { + filters: filters, + pageNo: 1, + pageSize: 100, + } + await getManagementPrecisions([result.package.itemCode], toLocationCode, async res => { + if (res.success) { + managementList.value = res.list; + managementType.value = managementList.value.some(item => item.ManagementPrecision == 'BY_BATCH') ? + 'BY_BATCH' : '' + if (managementType.value == 'BY_BATCH') { + uni.hideLoading() + } else { + await getBalanceByFilter(params).then(res => { + uni.hideLoading() + if (res.data.list.length > 0) { + showErrorMessage("包装在库位【" + res.data.list[0].locationCode + "】已有库存余额"); + } + // callback(res.data) + }).catch(err => { + showErrorMessage(err.message); + }) + } + } + }) +} const updateData = () => { calcHandleQty(detailSource.value) for (let i = 0; i < detailSource.value.length; i++) { @@ -309,7 +437,7 @@ const commit = () => { .then((res) => { uni.hideLoading() if (res.data) { - showCommitSuccessMessage(`提交成功
生成直接补料记录
${res.data}`) + showCommitSuccessMessage(`提交成功\n生成直接补料记录\n${res.data}`) } else { showErrorMessage(`提交失败[${res.msg}]`) } diff --git a/src/pages/repleinsh/record/directRepleinshRecord1.vue b/src/pages/repleinsh/record/directRepleinshRecord1.vue new file mode 100644 index 00000000..567ed63c --- /dev/null +++ b/src/pages/repleinsh/record/directRepleinshRecord1.vue @@ -0,0 +1,514 @@ + + + + + \ No newline at end of file diff --git a/src/pages/repleinsh/record/repleinshRecord.vue b/src/pages/repleinsh/record/repleinshRecord.vue index ab2b63e3..539ac1ac 100644 --- a/src/pages/repleinsh/record/repleinshRecord.vue +++ b/src/pages/repleinsh/record/repleinshRecord.vue @@ -304,7 +304,7 @@ export default { item.subList.push(newDetail) this.scanPopupGetFocus() } else if (detail.scaned == true) { - this.showErrorMessage(`箱码[${detail.packingNumber}批次[${balance.batch}]已经在列表中`) + this.showErrorMessage(`箱码[${detail.packingNumber}批次[${balance.batch}]重复扫描`) } } calcHandleQty(this.detailSource) @@ -404,7 +404,7 @@ export default { .then((res) => { uni.hideLoading() if (res.data) { - this.showCommitSuccessMessage(`提交成功
生成直接补料记录
${res.data}`) + this.showCommitSuccessMessage(`提交成功\n生成直接补料记录\n${res.data}`) } else { this.showErrorMessage(`提交失败[${res.msg}]`) } diff --git a/src/pages/repleinsh/record/repleinshRecordV1.vue b/src/pages/repleinsh/record/repleinshRecordV1.vue index 8cae0661..9c305a20 100644 --- a/src/pages/repleinsh/record/repleinshRecordV1.vue +++ b/src/pages/repleinsh/record/repleinshRecordV1.vue @@ -294,7 +294,7 @@ const submitJob = () => { .then((res) => { uni.hideLoading() if (res.data) { - showCommitSuccessMessage(`提交成功
生成补料记录
${res.data}`) + showCommitSuccessMessage(`提交成功\n生成补料记录\n${res.data}`) } else { showErrorMessage(`提交失败[${res.msg}]`) }