# 采购订单确认收货 - 前端联调方案 ## 涉及页面 - 采购订单列表页 - 采购订单详情页 ## 业务流程 ``` 采购申请审批通过 → 生成采购订单(已审核) → 确认收货 → 生成到货通知单(待入库/待质检) → 执行入库 ``` **确认收货后的自动处理:** - 如果采购订单明细设置了 `qcCheckFlag=true`(需要质检),到货通知单自动进入"待质检"状态,并创建 IQC 检验单 - 如果采购订单明细设置了 `qcCheckFlag=false`(无需质检),到货通知单直接进入"待入库"状态 ## 新增 API | 方法 | 路径 | 说明 | |------|------|------| | POST | /erp/purchase-order/confirm-receipt | 确认收货 | **请求参数:** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 采购订单编号 | **响应:** ```json { "code": 0, "data": 123, // 生成的到货通知单编号 "msg": "操作成功" } ``` **业务规则:** - 只有已审核状态的采购订单才能确认收货 - 已全部入库的采购订单不能确认收货 - 确认收货后返回生成的到货通知单编号,前端可跳转到货通知单详情 ## 字段变更 ### 采购申请明细新增字段 | 字段 | 类型 | 说明 | |------|------|------| | qcCheckFlag | Boolean | 是否需要来料检验,默认 false | ### 采购订单明细新增字段 | 字段 | 类型 | 说明 | |------|------|------| | qcCheckFlag | Boolean | 是否需要来料检验,从采购申请带入 | ### 采购申请新增字段 | 字段 | 类型 | 说明 | |------|------|------| | depositPrice | BigDecimal | 定金金额,默认 0 | ### 采购订单新增字段 | 字段 | 类型 | 说明 | |------|------|------| | depositPrice | BigDecimal | 定金金额,从采购申请带入 | ## 按钮展示规则 ### 采购订单列表/详情页 | 按钮 | 显示条件 | |------|----------| | 确认收货 | 订单状态=已审核(20) 且 入库状态≠全部入库(2) | ## 前端修改点 ### 1. 采购订单列表页 - 添加确认收货按钮 ```html 确认收货 ``` ### 2. 方法实现 ```js // 确认收货 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 接口 ```js // api/erp/purchase/order.js export function confirmReceipt(id) { return request({ url: '/erp/purchase-order/confirm-receipt', method: 'post', params: { id } }) } ``` ### 4. 采购申请表单 - 添加质检标识字段 在采购申请明细表格中添加"是否质检"列: ```html ``` ### 5. 采购申请表单 - 添加定金字段 ```html ``` ## 权限配置 | 权限标识 | 说明 | |----------|------| | erp:purchase-order:confirm-receipt | 确认收货权限 | ## 注意事项 1. 确认收货操作会自动生成到货通知单,无需手动创建 2. 质检标识从采购申请 → 采购订单 → 到货通知单全程传递 3. 定金金额从采购申请自动带入采购订单 4. 一个采购订单可以多次确认收货(部分收货场景)