# 确认收货与质检流程 - 前端联调方案 ## 涉及页面 - 采购订单列表页 - 采购订单详情页 - 到货通知单列表页 - 到货通知单详情页 - IQC 来料检验单页面 ## 业务流程与数据带入 ``` 采购申请审批通过 → 生成采购订单(已审核) → 确认收货 → 判断是否存在需质检物料 ├── 是 → 生成到货通知单(待质检)→ 自动创建 IQC 单 → IQC 来料质检 │ ├── 合格 → 等待所有质检完成 │ ├── 特采 → 等待所有质检完成 │ ├── 不合格(退货)→ 状态保持待质检 │ └── 不合格(报废)→ 状态保持待质检 │ ↓ │ 所有需检物料质检完成且可入库(合格/特采)→ 到货通知单(待入库) └── 否 → 生成到货通知单(待入库) ``` **字段带入说明:** | 源单据 | 目标单据 | 带入字段 | |--------|----------|----------| | 采购订单 | 到货通知单 | 供应商、采购订单号 | | 采购订单明细 | 到货通知单行 | 物料、到货数量、质检标识(qcCheckFlag) | | 到货通知单行 | IQC 检验单 | 物料、到货数量、供应商 | ## API | 方法 | 路径 | 说明 | |------|------|------| | POST | /erp/purchase-order/confirm-receipt | 确认收货 | **请求参数:** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 采购订单编号 | **响应:** ```json { "code": 0, "data": 123, // 生成的到货通知单编号 "msg": "操作成功" } ``` ## 字段展示规则 ### 采购订单明细新增字段 | 字段 | 类型 | 展示位置 | 说明 | |------|------|----------|------| | qcCheckFlag | Boolean | 列表、详情、表单 | 是否需要来料检验,默认 false | ### 到货通知单行新增字段 | 字段 | 类型 | 展示位置 | 说明 | |------|------|----------|------| | iqcCheckFlag | Boolean | 列表、详情 | 是否需要来料检验(从采购订单带入) | | iqcId | Long | 详情 | 关联的 IQC 检验单编号(自动创建后回写) | | iqcCheckResult | Integer | 列表、详情 | 质检结果:1合格 2特采 3不合格退货 4不合格报废 | | qualifiedQuantity | BigDecimal | 列表、详情 | 合格数量(质检完成后回写) | ### 到货通知单状态流转 | 状态值 | 状态名 | 说明 | |--------|--------|------| | 0 | 草稿 | 新建状态 | | 10 | 待质检 | 存在需质检物料,等待 IQC 完成 | | 20 | 待入库 | 无需质检或所有质检完成且可入库 | | 30 | 已完成 | 入库完成 | ## 业务规则说明 ### 确认收货按钮展示 | 场景 | 规则 | |------|------| | 显示条件 | 订单状态=已审核(20) 且 入库状态≠全部入库(2) | | 点击后 | 调用 confirmReceipt 接口,返回到货通知单编号 | | 成功后 | 提示"确认收货成功,已生成到货通知单",刷新列表 | ### 质检结果对入库的影响 | 质检结果 | 值 | 是否可入库 | 说明 | |----------|-----|------------|------| | 合格 | 1 | ✅ 是 | 正常入库 | | 特采 | 2 | ✅ 是 | 特殊批准入库 | | 不合格退货 | 3 | ❌ 否 | 退回供应商,不可入库 | | 不合格报废 | 4 | ❌ 否 | 报废处理,不可入库 | ### 到货通知单状态推进规则 | 当前状态 | 推进条件 | 目标状态 | |----------|----------|----------| | 草稿 | 提交时存在需质检行 | 待质检 | | 草稿 | 提交时无需质检行 | 待入库 | | 待质检 | 所有需检行完成质检,且都为合格/特采 | 待入库 | | 待质检 | 存在退货/报废结果的行 | 保持待质检 | | 待入库 | 手动完成操作 | 已完成 | ## 注意事项 1. **自动创建 IQC 单**:确认收货时,如果采购订单明细设置了 `qcCheckFlag=true`,系统会自动创建对应的 IQC 检验单,无需手动创建。 2. **质检结果回写**:IQC 检验完成后,会自动回写到货通知单行的 `iqcCheckResult` 和 `qualifiedQuantity` 字段。 3. **部分收货**:一个采购订单可以多次确认收货(部分收货场景),每次生成独立的到货通知单。 4. **入库前提条件**:只有到货通知单状态为"待入库"时才能执行采购入库操作。 5. **质检失败处理**:如果质检结果为退货或报废,到货通知单状态保持"待质检",需要人工介入处理(如重新安排收货)。