feat(mes): 添加运单填写功能及相关状态管理

pull/871/MERGE
YunaiV 2026-03-02 18:54:26 +08:00
parent 5375487d57
commit 4d66a7072c
4 changed files with 35 additions and 14 deletions

View File

@ -48,9 +48,19 @@ export const WmProductSalesApi = {
return await request.put({ url: '/mes/wm/product-sales/submit?id=' + id })
},
// 校验销售出库单数量
checkProductSalesQuantity: async (id: number) => {
return await request.get({ url: '/mes/wm/product-sales/check-quantity?id=' + id })
},
// 执行拣货
pickProductSales: async (id: number) => {
return await request.put({ url: '/mes/wm/product-sales/pick?id=' + id })
stockProductSales: async (id: number) => {
return await request.put({ url: '/mes/wm/product-sales/stock?id=' + id })
},
// 填写运单
shippingProductSales: async (data: WmProductSalesVO) => {
return await request.put({ url: '/mes/wm/product-sales/shipping', data })
},
// 执行出库

View File

@ -266,6 +266,7 @@ export const MesWmProductReceiptStatusEnum = {
export const MesWmProductSalesStatusEnum = {
PREPARE: MesOrderStatusConstants.DRAFT,
APPROVING: MesOrderStatusConstants.APPROVING,
SHIPPING: 10, // 待填写运单
APPROVED: MesOrderStatusConstants.APPROVED,
FINISHED: MesOrderStatusConstants.FINISHED,
CANCELED: MesOrderStatusConstants.CANCELLED

View File

@ -131,7 +131,7 @@
<el-button v-if="isUpdate" @click="submitForm" type="primary" :disabled="formLoading">
</el-button>
<el-button v-if="isPick" @click="handlePick" type="primary" :disabled="formLoading">
<el-button v-if="isPick" @click="handleStock" type="primary" :disabled="formLoading">
执行拣货
</el-button>
<el-button v-if="isShipping" @click="handleShipping" type="primary" :disabled="formLoading">
@ -241,11 +241,15 @@ const submitForm = async () => {
}
/** 执行拣货 */
const handlePick = async () => {
const handleStock = async () => {
try {
await message.confirm('确认执行拣货?')
formLoading.value = true
await WmProductSalesApi.pickProductSales(formData.value.id!)
//
const quantityMatch = await WmProductSalesApi.checkProductSalesQuantity(formData.value.id!)
if (!quantityMatch) {
await message.confirm('出库数量与拣货数量不一致,确认执行拣货?')
}
await WmProductSalesApi.stockProductSales(formData.value.id!)
message.success('拣货成功')
dialogVisible.value = false
emit('success')
@ -256,19 +260,16 @@ const handlePick = async () => {
}
/** 填写运单 */
// TODO @AI handleShipping
const handleShipping = async () => {
try {
await message.confirm('确认提交运单信息?')
formLoading.value = true
//
const data = {
id: formData.value.id,
carrier: formData.value.carrier,
shippingNumber: formData.value.shippingNumber
} as unknown as WmProductSalesVO
// TODO @AI controller
await WmProductSalesApi.updateProductSales(data)
await WmProductSalesApi.shippingProductSales(data)
message.success('运单信息填写成功')
dialogVisible.value = false
emit('success')

View File

@ -136,18 +136,26 @@
>
删除
</el-button>
<!-- DONE @AI执行拣货之后状态是 status = 10填写运单AI 未修复原因需要后端增加新状态和状态流转逻辑需人工实现 -->
<!-- 待拣货拣货取消 -->
<el-button
link
type="success"
@click="openForm('pick', scope.row.id)"
v-hasPermi="['mes:wm-product-sales:pick']"
@click="openForm('stock', scope.row.id)"
v-hasPermi="['mes:wm-product-sales:stock']"
v-if="scope.row.status === MesWmProductSalesStatusEnum.APPROVING"
>
拣货
</el-button>
<!-- DONE @AI增加填写运单操作需要增加一个 status = 10注意填写运单继续搞在 /Users/yunai/Java/yudao-all-in-one/yudao-ui-admin-vue3/src/views/mes/wm/productsales/ProductSalesForm.vue 只允许填写承运商运货单号两个字段单独搞个 --- --- 分栏AI 未修复原因需要后端增加新状态和填写运单接口需人工实现 -->
<!-- 待填写运单填写运单取消 -->
<el-button
link
type="warning"
@click="openForm('shipping', scope.row.id)"
v-hasPermi="['mes:wm-product-sales:shipping']"
v-if="scope.row.status === MesWmProductSalesStatusEnum.SHIPPING"
>
填写运单
</el-button>
<!-- 待出库执行出库取消 -->
<el-button
link
@ -166,6 +174,7 @@
v-if="
[
MesWmProductSalesStatusEnum.APPROVING,
MesWmProductSalesStatusEnum.SHIPPING,
MesWmProductSalesStatusEnum.APPROVED
].includes(scope.row.status)
"