Commit 334b94ea by qinjianhui

fix: 拣胚失败字段取值修改

parent 3ba91595
......@@ -240,6 +240,7 @@ export interface PickCompleteData {
pickingStatus?: string
availableOrderIds?: number[]
allOrderIds: number[]
freezeInventory?: number
}
export interface PickFailData {
......
......@@ -38,14 +38,6 @@
row.producingQuantity
}}</span>
</template>
<template #suggestOutQuantity="{ row }">
<span style="color: #f56c6c; font-weight: bold">{{
row.suggestOutQuantity
}}</span>
</template>
<template #afterOutStock="{ row }">
<span style="color: #f56c6c">{{ row.afterOutStock }}</span>
</template>
</TableView>
</div>
......@@ -76,22 +68,47 @@
<script setup lang="tsx">
import { ref } from 'vue'
import { ElMessage } from 'element-plus'
import { applyForReplenishByIdApi } from '@/api/factoryOrderNew'
import type { operateOrderListData } from '@/types/api/factoryOrderNew'
import { ElMessage, ElMessageBox, ElLoading } from 'element-plus'
import BigNumber from 'bignumber.js'
import { pickCompleteByIdsDataApi } from '@/api/factoryOrderNew'
import type { PickCompleteData } from '@/types/api/factoryOrderNew'
import TableView from '@/components/TableView.vue'
import _ from 'lodash'
import CreateOutboundDialog from './CreateOutboundDialog.vue'
/** 当前可用库存 = 当前库存数量 − 占用 − 冻结 */
function getCurrentAvailableInventory(row: PickCompleteData): BigNumber {
return new BigNumber(row.inventory ?? 0)
.minus(row.occupyInventory ?? 0)
.minus(row.freezeInventory ?? 0)
}
/** 建议出库数量 = 当前库存 − 生产中数量 */
function getSuggestOutQuantity(row: PickCompleteData): BigNumber {
return new BigNumber(row.inventory ?? 0).minus(row.producingQuantity ?? 0)
}
/** 出库后库存数量 = 当前库存 − 建议出库数量 */
function getAfterOutStock(row: PickCompleteData): BigNumber {
return new BigNumber(row.inventory ?? 0).minus(getSuggestOutQuantity(row))
}
/** 出库后可用库存 = 出库后库存 − 占用 − 冻结 */
function getAfterOutAvailable(row: PickCompleteData): BigNumber {
return getAfterOutStock(row)
.minus(row.occupyInventory ?? 0)
.minus(row.freezeInventory ?? 0)
}
const emit = defineEmits<{
success: []
}>()
const visible = ref(false)
const tableData = ref<operateOrderListData[]>([])
const tableData = ref<PickCompleteData[]>([])
const orderIds = ref<(number | string)[]>([])
const dialogTitle = ref('拣胚失败')
const selections = ref<operateOrderListData[]>([])
const selections = ref<PickCompleteData[]>([])
const columns = [
{
key: 'warehouseName',
......@@ -114,8 +131,7 @@ const columns = [
showOverflowTooltip: true,
},
{
key: 'batchArrangeNumber',
prop: 'batchArrangeNumber',
prop: 'supplierProductNo',
label: '款号',
width: 140,
align: 'center',
......@@ -139,10 +155,14 @@ const columns = [
align: 'right',
},
{
prop: 'inventory',
key: 'currentAvailableInventory',
prop: 'currentAvailableInventory',
label: '当前可用库存',
minWidth: 120,
align: 'right',
render: (row: PickCompleteData) => {
return <span>{getCurrentAvailableInventory(row).toNumber()}</span>
},
},
{
prop: 'producingQuantity',
......@@ -152,31 +172,35 @@ const columns = [
slot: 'producingQuantity',
},
{
key: 'suggestOutQuantity',
prop: 'suggestOutQuantity',
label: '建议出库数量',
minWidth: 120,
align: 'right',
slot: 'suggestOutQuantity',
render: (row: operateOrderListData) => {
render: (row: PickCompleteData) => {
return (
<span style="color: #f56c6c; font-weight: bold">
{_.subtract(
Number(row.inventory ?? 0),
Number(row.producingQuantity ?? 0),
)}
{getSuggestOutQuantity(row).toNumber()}
</span>
)
},
},
{
prop: 'producingQuantity',
key: 'afterOutStock',
prop: 'afterOutStock',
label: '出库后库存数量',
minWidth: 130,
align: 'center',
slot: 'right',
align: 'right',
render: (row: PickCompleteData) => {
return (
<span style="color: #e6a23c; font-weight: bold">
{getAfterOutStock(row).toNumber()}
</span>
)
},
},
{
prop: 'inventory',
prop: 'occupyInventory',
label: '出库后占用数量',
minWidth: 130,
align: 'right',
......@@ -186,23 +210,17 @@ const columns = [
label: '出库后可用库存',
minWidth: 130,
align: 'right',
render: (row: operateOrderListData) => {
render: (row: PickCompleteData) => {
return (
<span style="color: #f56c6c; font-weight: bold">
{_.subtract(
_.subtract(
Number(row.producingQuantity ?? 0),
Number(row.inventory ?? 0),
),
Number(row.freezeInventory ?? 0),
)}
{getAfterOutAvailable(row).toNumber()}
</span>
)
},
},
]
const handleSelectionChange = (selection: operateOrderListData[]) => {
const handleSelectionChange = (selection: PickCompleteData[]) => {
selections.value = selection
}
......@@ -218,11 +236,8 @@ const open = async (
background: 'rgba(0, 0, 0, 0.3)',
})
try {
const res = await applyForReplenishByIdApi(
ids,
'factory/podOrderOperation/listByIds',
)
tableData.value = res.data || []
const res = await pickCompleteByIdsDataApi(ids)
tableData.value = res.data?.pickingSituationList || []
} catch (_e) {
tableData.value = []
} finally {
......@@ -256,14 +271,14 @@ const handleCreateOutbound = () => {
}
const warehouseId = warehouseIds[0] as number | string
const firstSelection = selections.value[0] as operateOrderListData & {
const firstSelection = selections.value[0] as PickCompleteData & {
warehouseName?: string
}
const warehouseName = firstSelection.warehouseName
const items = selections.value
.map((item) => {
const row = item as operateOrderListData & {
const row = item as PickCompleteData & {
thirdSkuCode?: string
inventory?: number
producingQuantity?: number
......@@ -271,10 +286,7 @@ const handleCreateOutbound = () => {
return {
thirdSkuCode: row.thirdSkuCode || '',
suggestOutQuantity: _.subtract(
Number(row.inventory ?? 0),
Number(row.producingQuantity ?? 0),
),
suggestOutQuantity: getSuggestOutQuantity(row).toNumber(),
}
})
.filter((item) => item.suggestOutQuantity !== 0)
......
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