采购订单确认收货 - 前端联调方案
涉及页面
业务流程
采购申请审批通过 → 生成采购订单(已审核) → 确认收货 → 生成到货通知单(待入库/待质检) → 执行入库
确认收货后的自动处理:
- 如果采购订单明细设置了 qcCheckFlag=true(需要质检),到货通知单自动进入"待质检"状态,并创建 IQC 检验单
- 如果采购订单明细设置了 qcCheckFlag=false(无需质检),到货通知单直接进入"待入库"状态
新增 API
| 方法 |
路径 |
说明 |
| POST |
/erp/purchase-order/confirm-receipt |
确认收货 |
请求参数:
| 参数 |
类型 |
必填 |
说明 |
| id |
Long |
是 |
采购订单编号 |
响应:
{
"code": 0,
"data": 123, // 生成的到货通知单编号
"msg": "操作成功"
}
业务规则:
- 只有已审核状态的采购订单才能确认收货
- 已全部入库的采购订单不能确认收货
- 确认收货后返回生成的到货通知单编号,前端可跳转到货通知单详情
字段变更
采购申请明细新增字段
| 字段 |
类型 |
说明 |
| qcCheckFlag |
Boolean |
是否需要来料检验,默认 false |
采购订单明细新增字段
| 字段 |
类型 |
说明 |
| qcCheckFlag |
Boolean |
是否需要来料检验,从采购申请带入 |
采购申请新增字段
| 字段 |
类型 |
说明 |
| depositPrice |
BigDecimal |
定金金额,默认 0 |
采购订单新增字段
| 字段 |
类型 |
说明 |
| depositPrice |
BigDecimal |
定金金额,从采购申请带入 |
按钮展示规则
采购订单列表/详情页
| 按钮 |
显示条件 |
| 确认收货 |
订单状态=已审核(20) 且 入库状态≠全部入库(2) |
前端修改点
1. 采购订单列表页 - 添加确认收货按钮
<el-button
type="success"
v-if="scope.row.status === 20 && scope.row.inStatus !== 2"
@click="handleConfirmReceipt(scope.row)"
v-hasPermi="['erp:purchase-order:confirm-receipt']">
确认收货
</el-button>
2. 方法实现
// 确认收货
async handleConfirmReceipt(row) {
try {
await this.$modal.confirm(`确认对采购订单【${row.no}】进行收货操作?`);
const res = await confirmReceipt(row.id);
this.$modal.msgSuccess('确认收货成功,已生成到货通知单');
// 可选:跳转到货通知单详情
// this.$router.push({ path: '/mes/wm/arrival-notice/detail', query: { id: res.data } });
this.getList();
} catch (e) {
// 取消或失败
}
}
3. API 接口
// api/erp/purchase/order.js
export function confirmReceipt(id) {
return request({
url: '/erp/purchase-order/confirm-receipt',
method: 'post',
params: { id }
})
}
4. 采购申请表单 - 添加质检标识字段
在采购申请明细表格中添加"是否质检"列:
<el-table-column label="是否质检" prop="qcCheckFlag" width="100">
<template #default="scope">
<el-switch v-model="scope.row.qcCheckFlag" />
</template>
</el-table-column>
5. 采购申请表单 - 添加定金字段
<el-form-item label="定金金额" prop="depositPrice">
<el-input-number
v-model="form.depositPrice"
:min="0"
:precision="2"
:controls="false"
placeholder="请输入定金金额" />
</el-form-item>
权限配置
| 权限标识 |
说明 |
| erp:purchase-order:confirm-receipt |
确认收货权限 |
注意事项
- 确认收货操作会自动生成到货通知单,无需手动创建
- 质检标识从采购申请 → 采购订单 → 到货通知单全程传递
- 定金金额从采购申请自动带入采购订单
- 一个采购订单可以多次确认收货(部分收货场景)