Commit 2deff02a by wusiyi

feat: 修改工厂订单new 快捷生产 生产完成逻辑

parent 1ca4d66a
...@@ -262,7 +262,12 @@ ...@@ -262,7 +262,12 @@
}} }}
</el-button> </el-button>
<div class="check"> <div class="check">
<el-checkbox v-model="isAutoSure"> 自动完成上一单 </el-checkbox> <el-checkbox
v-if="fastKey !== 'productionScan'"
v-model="isAutoSure"
>
自动完成上一单
</el-checkbox>
</div> </div>
</div> </div>
<div v-if="fastKey !== 'fastReceipt'" class="btn-down"> <div v-if="fastKey !== 'fastReceipt'" class="btn-down">
...@@ -395,6 +400,7 @@ const props = withDefaults( ...@@ -395,6 +400,7 @@ const props = withDefaults(
completeApi?: ( completeApi?: (
ids: number[], ids: number[],
detail: Record<string, unknown>, detail: Record<string, unknown>,
trigger?: 'manual' | 'auto',
) => Promise<unknown> ) => Promise<unknown>
downloadApi?: ( downloadApi?: (
ids: number[], ids: number[],
...@@ -608,13 +614,17 @@ const changeStatus = async () => { ...@@ -608,13 +614,17 @@ const changeStatus = async () => {
setData(historyKeyFromDetail(detail.value)) setData(historyKeyFromDetail(detail.value))
}) })
} }
const setData = async (orderNumber: string) => { const setData = async (
orderNumber: string,
trigger: 'manual' | 'auto' = 'manual',
) => {
if (!detail.value || detail.value?.id === -1) return if (!detail.value || detail.value?.id === -1) return
try { try {
const id = detail.value.id const id = detail.value.id
const res = (await props.completeApi( const res = (await props.completeApi(
[id], [id],
detail.value as unknown as Record<string, unknown>, detail.value as unknown as Record<string, unknown>,
trigger,
)) as unknown as BaseRespData< )) as unknown as BaseRespData<
{ {
factoryOrderNumber?: number factoryOrderNumber?: number
...@@ -638,11 +648,17 @@ const setData = async (orderNumber: string) => { ...@@ -638,11 +648,17 @@ const setData = async (orderNumber: string) => {
} }
emit('onSuccess', res.data) emit('onSuccess', res.data)
playAudio('weight_success') playAudio('weight_success')
if (trigger === 'auto') {
// new 快捷生产:扫码后直接将订单流转至生产中
localStorage.setItem(props.historyStorageKey, JSON.stringify([]))
} else {
detail.value = { detail.value = {
id: -1, id: -1,
podJomallOrderCnId: -1, podJomallOrderCnId: -1,
imgList: [] as cardImages[], imgList: [] as cardImages[],
} }
}
TrackingNumber.value = '' TrackingNumber.value = ''
isDownloadImage.value = false isDownloadImage.value = false
trackingNumberRef.value && trackingNumberRef.value.focus() trackingNumberRef.value && trackingNumberRef.value.focus()
...@@ -655,7 +671,9 @@ const setData = async (orderNumber: string) => { ...@@ -655,7 +671,9 @@ const setData = async (orderNumber: string) => {
}> }>
if (err?.code === 301) { if (err?.code === 301) {
await ElMessageBox.alert( await ElMessageBox.alert(
`库存不足,无法进入生产!请联系仓库管理人员核对库存。<br/>库存数量:${err.data?.inventory},生产中的数量:${err.data?.producingQuantity}<span style="color: red">可调配库存:${err.data?.availableInventory}</span>`, `库存不足,无法进入生产!请联系仓库管理人员核对库存。<br/>
库存数量:${err.data?.inventory},生产中的数量:${err.data?.producingQuantity}
<span style="color: red">可调配库存:${err.data?.availableInventory}</span>`,
'提示', '提示',
{ {
type: 'warning', type: 'warning',
...@@ -767,9 +785,10 @@ const trackCodeInput = async () => { ...@@ -767,9 +785,10 @@ const trackCodeInput = async () => {
const orderNumber = TrackingNumber.value const orderNumber = TrackingNumber.value
if (isAutoSure.value) { if (!['productionScan'].includes(props.fastKey) && isAutoSure.value) {
await setData( await setData(
historyData.value[historyData.value.length - 1].orderNumber || '', historyData.value[historyData.value.length - 1].orderNumber || '',
'auto',
) )
} }
...@@ -803,7 +822,7 @@ const trackCodeInput = async () => { ...@@ -803,7 +822,7 @@ const trackCodeInput = async () => {
download() download()
} }
// 工厂订单new 校验库存 // 工厂订单new 校验库存 生产扫码
if (props.fastKey === 'productionScan') { if (props.fastKey === 'productionScan') {
try { try {
await checkInventoryApi( await checkInventoryApi(
...@@ -836,6 +855,7 @@ const trackCodeInput = async () => { ...@@ -836,6 +855,7 @@ const trackCodeInput = async () => {
} }
throw inventoryErr throw inventoryErr
} }
await setData(detail.value.id.toString(), 'auto')
} }
playAudio('weight_search_success') playAudio('weight_search_success')
......
...@@ -974,7 +974,7 @@ ...@@ -974,7 +974,7 @@
please-scan-tip="请扫码操作单号" please-scan-tip="请扫码操作单号"
search-input-audio-tip="请录入操作单号" search-input-audio-tip="请录入操作单号"
history-storage-key="historyFactoryOrderNewData" history-storage-key="historyFactoryOrderNewData"
tracking-placeholder="扫描枪输入操作单号,录入下一单本单自动生产完成,最后一单扫两次完成生产" tracking-placeholder="扫描枪输入操作单号"
:query-api="getOperationByNo" :query-api="getOperationByNo"
:complete-api="completeOperationById" :complete-api="completeOperationById"
:download-api="downloadOperationById" :download-api="downloadOperationById"
...@@ -2843,13 +2843,10 @@ const getOperationByNo = (operationNo: string) => ...@@ -2843,13 +2843,10 @@ const getOperationByNo = (operationNo: string) =>
const completeOperationById = ( const completeOperationById = (
ids: number[], ids: number[],
detailData?: Record<string, unknown>, detailData?: Record<string, unknown>,
trigger: 'manual' | 'auto' = 'manual',
) => { ) => {
if (trigger === 'auto') {
const detailStatus = String(detailData?.status ?? '') const detailStatus = String(detailData?.status ?? '')
// 快捷生产 生产扫码
if (
fastKey.value === 'productionScan' &&
(detailStatus === 'PENDING_PICK' || detailStatus === 'PENDING_REPLENISH')
) {
return productionScanApi(ids[0], detailStatus) return productionScanApi(ids[0], detailStatus)
} }
return completeDeliveryApi(ids) return completeDeliveryApi(ids)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment