Browse Source

修改补料任务的推荐 2024/8/7

hella_vue3
王志国 4 weeks ago
parent
commit
944073e0aa
  1. 3
      src/pages/repleinsh/coms/comRepleishDetailCard.vue
  2. 386
      src/pages/repleinsh/coms/comScanReplishPack.vue
  3. 2
      src/pages/repleinsh/job/repleinshDetail.vue
  4. 2
      src/pages/repleinsh/job/repleinshJob.vue

3
src/pages/repleinsh/coms/comRepleishDetailCard.vue

@ -26,7 +26,8 @@
<text class="card_packing_code card_content">外包装</text>
<text class="card_content">{{ record.parentPackingNumber }}</text>
</view> -->
<handle-balance :detail="record" :isShowLocation="false" :isShowBatch="batch.packingNumber != null" :isShowStatus="true"> </handle-balance>
<handle-balance :detail="record" :isShowLocation="false" :isShowStatus='true'></handle-balance>
<!-- <handle-balance :detail="record" :isShowLocation="false" :isShowBatch="batch.packingNumber != null" :isShowStatus="true"> </handle-balance>-->
</u-swipe-action>
</view>
</view>

386
src/pages/repleinsh/coms/comScanReplishPack.vue

@ -8,12 +8,12 @@
<text class="fr" @click="closeScanPopup()">关闭</text>
</view>
<view class="uni-flex uni-row" style="align-items: center; background-color: #fff; margin-left: 20rpx; margin-right: 20rpx; margin-top: 8rpx; border-radius: 8rpx">
<view class="uni-center" style="width: 25%"> 来源库位 </view>
<view class="" style="width: 75%; padding: 8rpx">
<uni-combox :candidates="fromLocationList" v-model="fromLocationCode" placeholder="请选择库位" @confirm="fromLocationUpdate"></uni-combox>
</view>
</view>
<!-- <view class="uni-flex uni-row" style="align-items: center; background-color: #fff; margin-left: 20rpx; margin-right: 20rpx; margin-top: 8rpx; border-radius: 8rpx">-->
<!-- <view class="uni-center" style="width: 25%"> 来源库位 </view>-->
<!-- <view class="" style="width: 75%; padding: 8rpx">-->
<!-- <uni-combox :candidates="fromLocationList" v-model="fromLocationCode" placeholder="请选择库位" @confirm="fromLocationUpdate"></uni-combox>-->
<!-- </view>-->
<!-- </view>-->
<view class="">
<view class="">
@ -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 + "] <br>" +
"包装号 [" + params.packingNumber + "] <br>" +
"批次 [" + params.batch + "] <br>" +
"状态 [" + status + "] <br>" +
"库区 [" + areaType + "] <br>" +
"未查找到库存余额"
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)

2
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()

2
src/pages/repleinsh/job/repleinshJob.vue

@ -496,7 +496,7 @@ const getScanResult = (result) => {
selectItem(list[0])
}
} else {
showMessage(`物料号[${result.label.itemCode}]批次[${result.label.batch}]未查找到任务<br>` + `扫描[${result.scanMessage}]`)
showMessage(`按来源库位[${balance.locationCode}]批次[${result.label.batch}]物料号[${result.label.itemCode}]未查找到任务<br>` + `扫描[${result.scanMessage}]`)
}
})
.catch((error) => {

Loading…
Cancel
Save