diff --git a/src/pages/repleinsh/coms/comRepleishDetailCard.vue b/src/pages/repleinsh/coms/comRepleishDetailCard.vue
index c09cbb0e..edd3a1d1 100644
--- a/src/pages/repleinsh/coms/comRepleishDetailCard.vue
+++ b/src/pages/repleinsh/coms/comRepleishDetailCard.vue
@@ -26,7 +26,8 @@
外包装
{{ record.parentPackingNumber }}
-->
-
+
+
diff --git a/src/pages/repleinsh/coms/comScanReplishPack.vue b/src/pages/repleinsh/coms/comScanReplishPack.vue
index 363a270a..e4de0f38 100644
--- a/src/pages/repleinsh/coms/comScanReplishPack.vue
+++ b/src/pages/repleinsh/coms/comScanReplishPack.vue
@@ -8,12 +8,12 @@
关闭
-
- 来源库位
-
-
-
-
+
+
+
+
+
+
@@ -56,13 +56,13 @@ import balanceQtyEdit from '@/mycomponents/qty/balanceQtyEdit.vue'
import balanceSelect from '@/mycomponents/balance/balanceSelect.vue'
import { getDetailOption, getDetailEditRemoveOption, getDetailGiveupOption } from '@/common/array.js'
-import { getWorkShopLineStation, getBalanceByFilter } from '@/api/request2.js'
+import { getWorkShopLineStation, getBalanceByFilter, getBalanceByParams } from '@/api/request2.js'
import { calc } from '@/common/calc.js'
import { uniqueArray } from '@/common/basic.js'
import { getBalanceByManagementPrecision } from '@/common/balance.js'
-import { getDirectoryItemArray } from '../../../common/directory.js'
+import { getDirectoryItemArray,getInventoryStatusDesc,getListLocationAreaTypeDesc } from '../../../common/directory.js'
import { getLabelInfo } from '@/common/label.js'
const props = defineProps({
@@ -137,7 +137,7 @@ const initData = () => {
fromInventoryStatuses.value = jobContent.value.outInventoryStatuses
toLocation.value = dataContent.value[0]
toLocationCode.value = dataContent.value[0].toLocationCode
- fromLocationList.value = getFromLocationList()
+ // fromLocationList.value = getFromLocationList()
}
}
@@ -145,27 +145,27 @@ const showBalanceSelect = (items) => {
balanceSelectRef.value.openPopup(items)
}
-const getFromLocationList = () => {
- const list = []
- const location = dataContent.value.find((r) => r.toLocationCode == toLocationCode.value)
- if (location != undefined) {
- location.Items.forEach((item) => {
- item.Locations.forEach((f) => {
- list.push(f.fromLocationCode)
- })
- })
- // 去掉重复库位
- list = uniqueArray(list)
- fromLocationCode.value = list[0]
- return list
- }
- comMessageRef.value.showErrorMessages(`需求库位【${toLocationCode.value}】不存在`, (res) => {
- if (res) {
- scanMsg.value = ''
- getfocus()
- }
- })
-}
+// const getFromLocationList = () => {
+// let list = []
+// const location = dataContent.value.find((r) => r.toLocationCode == toLocationCode.value)
+// if (location != undefined) {
+// location.Items.forEach((item) => {
+// item.Locations.forEach((f) => {
+// list.push(f.fromLocationCode)
+// })
+// })
+// // 去掉重复库位
+// list = uniqueArray(list)
+// fromLocationCode.value = list[0]
+// return list
+// }
+// comMessageRef.value.showErrorMessages(`需求库位【${toLocationCode.value}】不存在`, (res) => {
+// if (res) {
+// scanMsg.value = ''
+// getfocus()
+// }
+// })
+// }
const fromLocationUpdate = (fromlocation) => {
const location = fromLocationList.value.find((r) => r == fromlocation)
@@ -174,15 +174,41 @@ const fromLocationUpdate = (fromlocation) => {
showErrorMessage(`发料库位【${fromlocation}】不存在`)
}
}
-
-const onScan = (result) => {
- try {
- if (fromLocationCode.value == '') {
- showErrorMessage('请选择来源库位', (res) => {
- toLocationCombox.value.onFocus()
- })
+const onScan = (result)=> {
+ if (!result.package) {
+ this.showErrorMessage('扫描数据错误[' + result.label.code + "]",
+ res => {
+ getfocus();
+ }
+ )
+ return;
+ }
+ if (toLocation.value && result.package.packUnit) {
+ let item = toLocation.value.Items.find(r => r.itemCode == result.package.itemCode);
+ if (!item) {
+ showErrorMessage('扫描物料代码不属于该任务');
return
}
+ if (result.package.packUnit !== item.packUnit) {
+ comMessageRef.value.showQuestionMessage(
+ `扫描物料包装【${result.package.packUnit}】与任务推荐包装规格【${item.packUnit}】不一致.是否要继续发料?`, res => {
+ if (res) {
+ onScanResult(result)
+ }
+ });
+ } else {
+ onScanResult(result)
+ }
+ }
+}
+const onScanResult = (result) => {
+ try {
+ // if (fromLocationCode.value == '') {
+ // showErrorMessage('请选择来源库位', (res) => {
+ // toLocationCombox.value.onFocus()
+ // })
+ // return
+ // }
const packageInfoParams = result.package
const { itemCode } = result.label
const packingCode = result.label.packingNumber
@@ -194,129 +220,168 @@ const onScan = (result) => {
})
return
}
+
+ var params = {
+ itemCode: result.package.itemCode,
+ batch: result.label.batch,
+ packingNumber: result.label.packingNumber,
+ parentPackingNumber: result.package.parentNumber,
+ inventoryStatus: jobContent.value.outInventoryStatuses.split(','),
+ areaType: jobContent.value.fromAreaTypes.split(','),
+ bussinessCode: jobContent.value.businessType
+ }
// 查找库存信息
uni.showLoading({
- title: '加载中',
+ title: '查询中',
mask: true
})
-
- getBalance(result.label, packageInfoParams, (balances) => {
- packageInfo.value = packageInfoParams
- // 扫描的是外包装
- const s = ''
- if (!result.package.parentNumber) {
- if (balances.list.length == 0) {
- showErrorMessage('未查找到该包装的库存信息,请重新扫描')
+ getBalanceByParams(params).then(res => {
+ if (res.data.length == 0) {
+ let status = getInventoryStatusDesc(params.inventoryStatus)
+ let areaType = getListLocationAreaTypeDesc(params.areaType)
+ let hint =
+ "按物料号 [" + params.itemCode + "]
" +
+ "包装号 [" + params.packingNumber + "]
" +
+ "批次 [" + params.batch + "]
" +
+ "状态 [" + status + "]
" +
+ "库区 [" + areaType + "]
" +
+ "未查找到库存余额"
+ showErrorMessage(hint)
+ } else if (res.data.length == 1) {
+ result.balance = res.data[0]
+
+ if (result.label.packingNumber != result.balance.packingNumber) {
+ result.balance.handleQty = Number(result.label.qty)
} else {
- const newBalances = balances.list.filter((b) => b.locationCode == that.fromLocationCode)
- if (newBalances.length == 0) {
- showErrorMessage('未查找到该包装的库存信息,请重新扫描')
- } else if (newBalances.length == 1) {
- const balance1 = newBalances[0]
- afterGetBalance(result.label, balance1, packageInfoParams)
- } else {
- showBalanceSelect(newBalances)
- }
+ result.balance.handleQty = Number(result.balance.qty)
}
+ afterGetBalance(result.label, result.balance, result.package);
} else {
- // 扫描的是小包装
- if (balances.list.length == 0) {
- showErrorMessage('未查找到该包装的库存信息,请重新扫描')
- } else {
- // 小包装库存
- const subPackitems = balances.list.filter((r) => r.packingNumber == packageInfoParams.number)
- // 外包装库存
- const subParentPackitems = balances.list.filter((r) => r.packingNumber == packageInfoParams.parentNumber && r.locationCode == fromLocationCode.value)
-
- // 小包装没有库存,
- if (subPackitems.length == 0) {
- // 外包装有库存,出库后剩余库存未转换为出库包装规格
-
- if (subParentPackitems.length > 0) {
- if (subParentPackitems.length == 1) {
- const balance = subParentPackitems[0]
- balance.qty = packageInfoParams.qty
- afterGetBalance(result.label, balance, packageInfoParams)
- } else {
- showBalanceSelect(subParentPackitems)
- }
- } else {
- showErrorMessage(`按外包装【${packageInfoParams.parentNumber}】和子包装【${packageInfoParams.number}】都未查找到库存余额`)
- }
- } else {
- let locationCode = fromLocationCode.value
- if (balances.list == 1) {
- locationCode = balances.list[0].locationCode
- } else {
- const manyBlances = balances.list.filter((r) => r.locationCode != fromLocationCode.value)
- if (manyBlances.length > 0) {
- locationCode = manyBlances[0].locationCode
- }
- }
- showErrorMessage(`该包装【${packageInfoParams.number}】在库位【${locationCode}】已经有库存余额,请重新扫描`)
- }
- }
+ //多条记录
+ balanceSelectRef.value.openPopup(res.data);
}
uni.hideLoading()
+ }).catch(error => {
+ uni.hideLoading()
+ showErrorMessage(error)
})
+ // getBalance(result.label, packageInfoParams, (balances) => {
+ // packageInfo.value = packageInfoParams
+ // // 扫描的是外包装
+ // const s = ''
+ // if (!result.package.parentNumber) {
+ // if (balances.list.length == 0) {
+ // showErrorMessage('未查找到该包装的库存信息,请重新扫描')
+ // } else {
+ // const newBalances = balances.list.filter((b) => b.locationCode == that.fromLocationCode)
+ // if (newBalances.length == 0) {
+ // showErrorMessage('未查找到该包装的库存信息,请重新扫描')
+ // } else if (newBalances.length == 1) {
+ // const balance1 = newBalances[0]
+ // afterGetBalance(result.label, balance1, packageInfoParams)
+ // } else {
+ // showBalanceSelect(newBalances)
+ // }
+ // }
+ // } else {
+ // // 扫描的是小包装
+ // if (balances.list.length == 0) {
+ // showErrorMessage('未查找到该包装的库存信息,请重新扫描')
+ // } else {
+ // // 小包装库存
+ // const subPackitems = balances.list.filter((r) => r.packingNumber == packageInfoParams.number)
+ // // 外包装库存
+ // const subParentPackitems = balances.list.filter((r) => r.packingNumber == packageInfoParams.parentNumber && r.locationCode == fromLocationCode.value)
+ //
+ // // 小包装没有库存,
+ // if (subPackitems.length == 0) {
+ // // 外包装有库存,出库后剩余库存未转换为出库包装规格
+ //
+ // if (subParentPackitems.length > 0) {
+ // if (subParentPackitems.length == 1) {
+ // const balance = subParentPackitems[0]
+ // balance.qty = packageInfoParams.qty
+ // afterGetBalance(result.label, balance, packageInfoParams)
+ // } else {
+ // showBalanceSelect(subParentPackitems)
+ // }
+ // } else {
+ // showErrorMessage(`按外包装【${packageInfoParams.parentNumber}】和子包装【${packageInfoParams.number}】都未查找到库存余额`)
+ // }
+ // } else {
+ // let locationCode = fromLocationCode.value
+ // if (balances.list == 1) {
+ // locationCode = balances.list[0].locationCode
+ // } else {
+ // const manyBlances = balances.list.filter((r) => r.locationCode != fromLocationCode.value)
+ // if (manyBlances.length > 0) {
+ // locationCode = manyBlances[0].locationCode
+ // }
+ // }
+ // showErrorMessage(`该包装【${packageInfoParams.number}】在库位【${locationCode}】已经有库存余额,请重新扫描`)
+ // }
+ // }
+ // }
+ // uni.hideLoading()
+ // })
} catch (e) {
showErrorMessage(e.stack)
uni.hideLoading()
}
}
-const getBalance = (labelParams, packageInfo, callback) => {
- const filters = []
- if (packageInfo.parentNumber) {
- const packingNumber = `${packageInfo.parentNumber},${labelParams.packingNumber}`
- filters.push({
- column: 'packingNumber',
- action: 'in',
- value: packingNumber
- })
- } else {
- filters.push({
- column: 'packingNumber',
- action: '==',
- value: labelParams.packingNumber
- })
- }
- filters.push({
- column: 'packingNumber',
- action: '==',
- value: labelParams.packingNumber
- })
- filters.push({
- column: 'itemCode',
- action: '==',
- value: labelParams.itemCode
- })
- filters.push({
- column: 'batch',
- action: '==',
- value: labelParams.batch
- })
-
- if (fromInventoryStatuses.value != null && fromInventoryStatuses.value != '') {
- filters.push({
- column: 'inventoryStatus',
- action: 'in',
- value: fromInventoryStatuses.value
- })
- }
-
- const params = {
- filters,
- pageNo: 1,
- pageSize: 100
- }
- getBalanceByFilter(params)
- .then((res) => {
- callback(res.data)
- })
- .catch((err) => {
- showErrorMessage(err.message)
- })
-}
+// const getBalance = (labelParams, packageInfo, callback) => {
+// const filters = []
+// if (packageInfo.parentNumber) {
+// const packingNumber = `${packageInfo.parentNumber},${labelParams.packingNumber}`
+// filters.push({
+// column: 'packingNumber',
+// action: 'in',
+// value: packingNumber
+// })
+// } else {
+// filters.push({
+// column: 'packingNumber',
+// action: '==',
+// value: labelParams.packingNumber
+// })
+// }
+// filters.push({
+// column: 'packingNumber',
+// action: '==',
+// value: labelParams.packingNumber
+// })
+// filters.push({
+// column: 'itemCode',
+// action: '==',
+// value: labelParams.itemCode
+// })
+// filters.push({
+// column: 'batch',
+// action: '==',
+// value: labelParams.batch
+// })
+//
+// if (fromInventoryStatuses.value != null && fromInventoryStatuses.value != '') {
+// filters.push({
+// column: 'inventoryStatus',
+// action: 'in',
+// value: fromInventoryStatuses.value
+// })
+// }
+//
+// const params = {
+// filters,
+// pageNo: 1,
+// pageSize: 100
+// }
+// getBalanceByFilter(params)
+// .then((res) => {
+// callback(res.data)
+// })
+// .catch((err) => {
+// showErrorMessage(err.message)
+// })
+// }
const selectBalanceItem = (balanceParams) => {
afterGetBalance(label.value, balanceParams, packageInfo.value)
@@ -328,7 +393,9 @@ const afterGetBalance = (labelParams, balanceParams, packageInfo) => {
const packingCode = labelParams.packingNumber
const lot = labelParams.batch
const item = toLocation.value.Items.find((r) => r.itemCode == itemCode)
+ fromLocationCode.value = balanceParams.locationCode;
const fromLocation = item.Locations.find((l) => l.fromLocationCode == fromLocationCode.value)
+ //如果库存余额中的库位与任务推荐的不一致
if (fromLocation != undefined) {
const batch = fromLocation.Batchs.find((r) => r.batch == lot)
if (batch != undefined) {
@@ -377,9 +444,11 @@ const afterGetBalance = (labelParams, balanceParams, packageInfo) => {
})
}
} else {
- showErrorMessage(`未查找到推荐库位【${fromLocationCode.value}】的发料明细`, (res) => {
- getfocus()
- })
+ let locaion = createLocationInfo(labelParams, balanceParams, packageInfo);
+ item.Locations.push(locaion);
+ // showErrorMessage(`未查找到推荐库位【${fromLocationCode.value}】的发料明细`, (res) => {
+ // getfocus()
+ // })
}
} catch (e) {
showErrorMessage(e.stack, (res) => {
@@ -387,7 +456,20 @@ const afterGetBalance = (labelParams, balanceParams, packageInfo) => {
})
}
}
-
+//增加实际扫描的明细
+const createLocationInfo = (labelParams, balanceParams, packageInfo)=> {
+ let location = {
+ fromLocationCode: balanceParams.locationCode,
+ qty: balanceParams.qty,
+ uom: balanceParams.uom,
+ handleQty: 0,
+ Batchs: []
+ }
+ let batch = createBatchInfo(labelParams, balanceParams, packageInfo);
+ batch.detail = balanceParams;
+ location.Batchs.push(batch);
+ return location;
+}
const createBatchInfo = (labelParams, balanceParams, packageInfo) => {
const batch = {
batch: labelParams.batch,
@@ -396,11 +478,11 @@ const createBatchInfo = (labelParams, balanceParams, packageInfo) => {
Records: []
}
let record = {}
- if (balanceParams == null) {
- record = creatRecordByBalance(labelParams, packageInfo)
+ if (balanceParams != null) {
+ record = creatRecordByBalance(balanceParams, packageInfo)
batch.handleQty = Number(labelParams.qty)
} else {
- record = creatRecordByLabel(balanceParams, packageInfo)
+ record = creatRecordByLabel(labelParams, packageInfo)
batch.handleQty = Number(balanceParams.qty)
}
batch.Records.push(record)
diff --git a/src/pages/repleinsh/job/repleinshDetail.vue b/src/pages/repleinsh/job/repleinshDetail.vue
index e2c29367..529f06f2 100644
--- a/src/pages/repleinsh/job/repleinshDetail.vue
+++ b/src/pages/repleinsh/job/repleinshDetail.vue
@@ -241,7 +241,7 @@ const setSubmitParamsAndSubmit = () => {
const submitJob = () => {
proxy.$modal.loading('提交中....')
const params = setParams()
-
+ return;
repleinshJobSubmit(params)
.then((res) => {
uni.hideLoading()
diff --git a/src/pages/repleinsh/job/repleinshJob.vue b/src/pages/repleinsh/job/repleinshJob.vue
index 139252a4..ff3684a7 100644
--- a/src/pages/repleinsh/job/repleinshJob.vue
+++ b/src/pages/repleinsh/job/repleinshJob.vue
@@ -496,7 +496,7 @@ const getScanResult = (result) => {
selectItem(list[0])
}
} else {
- showMessage(`物料号[${result.label.itemCode}]批次[${result.label.batch}]未查找到任务
` + `扫描[${result.scanMessage}]`)
+ showMessage(`按来源库位[${balance.locationCode}]批次[${result.label.batch}]物料号[${result.label.itemCode}]未查找到任务
` + `扫描[${result.scanMessage}]`)
}
})
.catch((error) => {