diff --git a/src/mycomponents/record/recordComDetailCard.vue b/src/mycomponents/record/recordComDetailCard.vue index a0e9aa4c..26d24503 100644 --- a/src/mycomponents/record/recordComDetailCard.vue +++ b/src/mycomponents/record/recordComDetailCard.vue @@ -9,7 +9,7 @@ :isShowBalanceQty="isShowBalanceQty"> - + @@ -91,6 +91,10 @@ type: Boolean, default: true }, + isShowParentToLocation: { + type: Boolean, + default: true + }, isShowBalanceQty: { type: Boolean, diff --git a/src/pages/issue/record/directIssue.vue b/src/pages/issue/record/directIssue.vue index c5451866..3153d83f 100644 --- a/src/pages/issue/record/directIssue.vue +++ b/src/pages/issue/record/directIssue.vue @@ -1,7 +1,7 @@ @@ -98,6 +97,7 @@ import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue' import recordDetailCard from '@/mycomponents/record/recordDetailCard.vue' import balanceSelect from '@/mycomponents/balance/balanceSelect.vue' + import winComScanBalance from '@/mycomponents/scan/winComScanBalance.vue' export default { components: { @@ -109,7 +109,8 @@ winScanPackAndLocation, recordComDetailCard, recordDetailCard, - balanceSelect + balanceSelect, + winComScanBalance }, data() { return { @@ -130,7 +131,8 @@ positionList: [], show: false, positionInfo: "请选择生产线", - resultData: {} + resultData: {}, + itemCode:"" }; }, onLoad(option) { @@ -138,16 +140,7 @@ title: option.title }) this.clearData(); - getBusinessType(this.businessTypeCode, res => { - if (res.success) { - this.businessType = res.businessType; - this.fromLocationAreaTypeList = res.fromLocationAreaTypeList; - this.toLocationAreaTypeList = res.toLocationAreaTypeList; - this.showFromLocationPopup(); - } else { - this.showErrorMessage(res.message) - } - }); + this.getBusinessType() // if (this.positionList.length == 0) { getWorkShopLineStation().then(res => { @@ -177,163 +170,62 @@ mounted() {}, methods: { - getBalance(label, packageInfo, callback) { - var filters = [] - - if (packageInfo.parentNumber) { - var packingNumber = packageInfo.parentNumber + "," + label.packingNumber; - filters.push({ - column: "packingNumber", - action: "in", - value: packingNumber - }) - } else { - filters.push({ - column: "packingNumber", - action: "==", - value: label.packingNumber - }) - } - - filters.push({ - column: "itemCode", - action: "==", - value: label.itemCode - }) - filters.push({ - column: "batch", - action: "==", - value: label.batch - }) - - if (this.fromInventoryStatuses != null && this.fromInventoryStatuses != "") { - filters.push({ - column: "inventoryStatus", - action: "in", - value: this.fromInventoryStatuses - }) - } - - var params = { - filters: filters, - pageNo: 1, - pageSize: 100, - } - getBalanceByFilter(params).then(res => { - callback(res.data) - }).catch(err => { - this.showErrorMessage(err.message); - }) - }, - getScanResult(result) { - this.resultData = result; - let packageInfo = result.package; - this.getBalance(result.label, packageInfo, balances => { - //扫描的是外包装 - let s = ''; - if (!result.package.parentNumber) { - if (balances.list.length == 0) { - this.showErrorMessage('未查找到该包装的库存信息,请重新扫描') - } else { - let newBalances = balances.list.filter(b => b.locationCode == this - .fromLocationCode); - if (newBalances.length == 0) { - this.showErrorMessage('未查找到该包装的库存信息,请重新扫描') - } else if (newBalances.length == 1) { - let balance = newBalances[0]; - result.balance = balance; - this.afterGetBalance(result); - } else { - this.showBalanceSelect(newBalances); - } - } + + getBusinessType() { + getBusinessType(this.businessTypeCode, res => { + if (res.success) { + this.businessType = res.businessType; + this.fromInventoryStatuses = getDirectoryItemArray(res.fromInventoryStatuses); + this.fromLocationAreaTypeList = res.fromLocationAreaTypeList + this.openScanPopup(); } else { - //扫描的是小包装 - if (balances.list.length == 0) { - this.showErrorMessage('未查找到该包装的库存信息,请重新扫描') - } else { - //小包装库存 - let subPackitems = balances.list.filter(r => r.packingNumber == packageInfo - .number) - //外包装库存 - let subParentPackitems = balances.list.filter(r => r.packingNumber == - packageInfo - .parentNumber && r.locationCode == this.fromLocationCode) - //小包装没有库存, - if (subPackitems.length == 0) { - //外包装有库存,出库后剩余库存未转换为出库包装规格 - - if (subParentPackitems.length > 0) { - if (subParentPackitems.length == 1) { - let balance = subParentPackitems[0]; - balance.qty = packageInfo.qty; - result.balance = balance; - this.afterGetBalance(result); - } else { - this.showBalanceSelect(subParentPackitems); - } - - } else { - this.showErrorMessage('按外包装【' + packageInfo.parentNumber + '】和子包装【' + - packageInfo.number + '】都未查找到库存余额') - } - } else { - var locationCode = this.fromLocationCode - if (balances.list == 1) { - locationCode = balances.list[0].locationCode - } else { - var manyBlances = balances.list.filter(r => r.locationCode != this - .fromLocationCode) - if (manyBlances.length > 0) { - locationCode = manyBlances[0].locationCode; - this.showErrorMessage('该包装【' + packageInfo.number + '】在库位【' + - locationCode + - '】已经有库存余额,请重新扫描') - } else { - this.afterGetBalance(result); - } - } - } - } + this.showErrorMessage(res.message) } - }) - }, - - showBalanceSelect(items) { - this.$refs.balanceSelect.openPopup(items); + }); }, - - selectBalanceItem(balance) { - this.resultData.balance = balance; - this.afterGetBalance(this.resultData); + + getScanResult(result) { + this.setData(result); }, - - afterGetBalance(result) { + setData(result) { let balance = result.balance; let label = result.label; let pack = result.package; - let packUnit = pack.packUnit; - let packQty = pack.packQty + + + if (this.fromLocationCode && this.fromLocationCode != balance.locationCode) { + this.showErrorMessage("箱码[" + balance.packingNumber + "批次[" + balance.batch + "]在库位[" + this + .fromLocationCode + "]没有库存余额") + return; + } + var item = this.detailSource.find(res => { if (res.itemCode == balance.itemCode) { return res } }) - if (this.fromWarehouseCode == '') { - this.fromWarehouseCode = balance.warehouseCode; - } if (item == undefined) { - + if (this.itemCode != "" && this.itemCode != balance.itemCode) { + this.showErrorMessage("请扫描物料为【" + this.itemCode + "】的箱码") + return; + } + if (this.fromWarehouseCode == '') { + this.fromWarehouseCode = balance.warehouseCode; + } var itemp = createItemInfo(balance, pack); let newDetail = createDetailInfo(balance, pack); // newDetail.parentNumber = pack.parentNumber; newDetail.packingNumber = pack.number - newDetail.packUnit = packUnit; - newDetail.packQty = packQty; + newDetail.packUnit = pack.packUnit; + newDetail.packQty = pack.packQty; + if (balance.lableQty) { + newDetail.handleQty = balance.lableQty + } itemp.subList.push(newDetail); this.detailSource.push(itemp) - calcHandleQty(this.detailSource); - + this.itemCode = balance.itemCode; + this.fromLocationCode = balance.locationCode + this.scanPopupGetFocus() } else { var detail = item.subList.find(r => { if (r.packingNumber == pack.number && @@ -347,98 +239,20 @@ let newDetail = createDetailInfo(balance, pack); newDetail.parentNumber = pack.parentNumber; newDetail.packingNumber = pack.number - newDetail.packUnit = packUnit; - newDetail.packQty = packQty; - item.subList.push(newDetail); - calcHandleQty(this.detailSource); - } else { - if (detail.scaned == true) { - this.showErrorMessage("箱码[" + detail.packingNumber + "]批次[" + balance.batch + "]已经在列表中") + newDetail.packUnit = pack.packUnit; + newDetail.packQty = pack.packQty; + if (balance.lableQty) { + newDetail.handleQty = balance.lableQty } - } - } - }, - - - getScanResult1(result) { - let balance = result.balance; - let label = result.label; - let pack = result.package; - let packUnit = pack.packUnit; - let packQty = pack.packQty - var item = this.detailSource.find(res => { - if (res.itemCode == balance.itemCode) { - return res - } - }) - if (this.fromWarehouseCode == '') { - this.fromWarehouseCode = balance.warehouseCode; - } - if (item == undefined) { - - var itemp = createItemInfo(balance, pack); - let newDetail = createDetailInfo(balance, pack); // - newDetail.packUnit = packUnit; - newDetail.packQty = packQty; - itemp.subList.push(newDetail); - this.detailSource.push(itemp) - calcHandleQty(this.detailSource); - - } else { - var detail = item.subList.find(r => { - if (r.packingNumber == balance.packingNumber && - r.batch == balance.batch && - r.locationCode == balance.locationCode && - r.inventoryStatus == balance.inventoryStatus) { - return r; - } - }) - if (detail == undefined) { - let newDetail = createDetailInfo(balance, pack); - newDetail.packUnit = packUnit; - newDetail.packQty = packQty; item.subList.push(newDetail); - calcHandleQty(this.detailSource); + this.scanPopupGetFocus() } else { if (detail.scaned == true) { - this.showErrorMessage("箱码[" + balance.packingNumber + "批次[" + balance.batch + "]已经在列表中") + this.showErrorMessage("箱码[" + detail.packingNumber + "批次[" + balance.batch + "]已经在列表中") } } } - }, - - //获取推荐库位 - getRecommendLocation(balance, pack, callback) { - uni.showLoading({ - title: '扫描中...', - mask: true - }) - let recommend = this.recommendLocationList.find(r => r.itemCode == balance.itemCode); - if (recommend == undefined) { - let param = { - itemCode: balance.itemCode, - batch: balance.batch, - inventoryStatus: balance.inventoryStatus, - supplierCode: pack.supplierCode, - businessCode: this.businessTypeCode - }; - console.log(JSON.stringify(param)) - getPutawayRecommendLocation(param).then(res => { - this.recommendLocationList.push({ - itemCode: balance.itemCode, - locationCode: res.data.code - }) - callback(res.data); - uni.hideLoading(); - }).catch(error => { - uni.hideLoading() - this.showErrorMessage(error); - uni.hideLoading(); - }) - - } else { - callback(recommend); - } + calcHandleQty(this.detailSource); }, showErrorMessage(message) { @@ -531,11 +345,11 @@ }, openScanPopup() { - if (this.fromLocationCode == "") { - this.showFromLocationPopup(); - return + if (this.businessType) { + this.$refs.scanPopup.openScanPopup(this.businessType); + } else { + this.getBusinessType() } - this.$refs.scanPopup.openScanPopupForType(this.fromLocationCode, this.businessType); }, showFromLocationPopup() { @@ -674,16 +488,6 @@ this.fromLocationCode = code; this.openScanPopup(); }, - getToLocationCode(location, code) { - if (this.fromLocationCode == code) { - uni.showToast({ - title: "来源库位[" + this.fromLocationCode + "]不能与目标库位[" + code + "]一致", - duration: 2000 - }) - return - } - this.toLocationCode = code; - }, showCommitSuccessMessage(hint) { this.$refs.comMessage.showSuccessMessage(hint, res => { @@ -710,6 +514,7 @@ this.toWarehouseCode = ''; this.detailSource = []; this.positionInfo = "请选择生产线"; + this.itemCode="" } } } diff --git a/src/pages/issue/record/directIssue2.vue b/src/pages/issue/record/directIssue2.vue new file mode 100644 index 00000000..c5451866 --- /dev/null +++ b/src/pages/issue/record/directIssue2.vue @@ -0,0 +1,719 @@ + + + + + \ No newline at end of file