编辑 | blame | 历史 | 原始文档

采购订单确认收货 - 前端联调方案

涉及页面

  • 采购订单列表页
  • 采购订单详情页

业务流程

采购申请审批通过 → 生成采购订单(已审核) → 确认收货 → 生成到货通知单(待入库/待质检) → 执行入库

确认收货后的自动处理:
- 如果采购订单明细设置了 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 确认收货权限

注意事项

  1. 确认收货操作会自动生成到货通知单,无需手动创建
  2. 质检标识从采购申请 → 采购订单 → 到货通知单全程传递
  3. 定金金额从采购申请自动带入采购订单
  4. 一个采购订单可以多次确认收货(部分收货场景)