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

采购来票 + 付款关联来票 - 前端联调方案

涉及页面

  • 采购来票管理页(**新建页面**,参考采购申请/采购订单页面结构)
  • 采购订单详情页(展示该订单下已关联的来票信息)
  • 付款单管理页(新建/编辑弹窗、列表、详情)
  • 付款单详情页(展示关联的来票信息)

业务流程与数据带入

  1. 采购订单(审核通过)-> 创建来票:purchaseOrderId 必选,供应商自动带出(以采购订单的供应商为准,前端无需传 supplierId,由后端按采购订单查询设置)。
  2. 来票创建后 -> 上传发票附件(走 system 模块 Storage API)。
  3. 来票提交审批 -> 审批通过 -> 才可作为付款关联对象。
  4. 新建付款单 -> 选择关联来票(invoiceId 必填):从 GET /erp/purchase-invoice/simple-list?supplierId=&purchaseOrderId= 选择,仅显示"审批通过 + 已上传附件 + 剩余可付金额 > 0"的来票;选择后 remainingInvoicePrice 可用于预填付款金额上限。

对应关系:**采购订单(1) -> 来票(N) -> 付款(M)**。

API

1. 来票管理(新)

方法 路径 说明
POST /erp/purchase-invoice/create 创建来票
PUT /erp/purchase-invoice/update 更新来票
DELETE /erp/purchase-invoice/delete?id= 删除来票
GET /erp/purchase-invoice/get?id= 获得来票详情
GET /erp/purchase-invoice/page 来票分页
GET /erp/purchase-invoice/export-excel 导出来票 Excel
PUT /erp/purchase-invoice/submit?id= 提交来票审批
GET /erp/purchase-invoice/audit-count 待审核来票数量
GET /erp/purchase-invoice/simple-list?supplierId=&purchaseOrderId= 精简列表(付款表单选来票)

创建/更新来票请求参数:

参数 类型 必填 说明
id Long 更新时必填
purchaseOrderId Long 采购订单编号,必选
supplierId Long 供应商编号,**不传**,由后端按采购订单查询设置
invoiceNo String 发票号码
invoiceTitle String 发票抬头
price BigDecimal 来票金额(元)
invoiceTime LocalDateTime 来票日期
remark String 备注
blobIds List<Long> 发票附件 blobId 列表

来票分页/详情响应新增字段:

字段 类型 说明
no String 来票编号(后端生成,前缀 FPD)
supplierName String 供应商名称
order Object 采购订单信息(嵌套)
auditStatus Integer 审批状态(0未提交/10审批中/20审核通过/30审核不通过/40已取消)
attachmentList List 发票附件列表
hasAttachment Boolean 是否已上传发票附件
remainingInvoicePrice BigDecimal 剩余可付金额 = 来票金额 - 该来票已付款金额

simple-list 响应:

字段 类型 说明
id Long 来票编号
no String 来票编号
invoiceNo String 发票号码
invoiceTitle String 发票抬头
price BigDecimal 来票金额
supplierId Long 供应商编号
purchaseOrderId Long 采购订单编号
auditStatus Integer 审批状态
hasAttachment Boolean 是否已上传附件(恒为 true)
remainingInvoicePrice BigDecimal 剩余可付金额

2. 付款单(接口变更)

方法 路径 说明
POST /erp/finance-payment/create 创建付款单,请求体新增 invoiceId(必填)
PUT /erp/finance-payment/update 更新付款单,请求体新增 invoiceId(必填)
GET /erp/finance-payment/get 响应新增 invoiceIdinvoice 嵌套对象
GET /erp/finance-payment/page 响应新增 invoiceIdinvoice 嵌套对象

请求参数新增:

参数 类型 必填 说明
invoiceId Long 关联的来票编号(新建付款单必填)

响应字段新增:

字段 类型 说明
invoiceId Long 关联的来票编号
invoice Object 关联的来票信息(含 no、invoiceNo、invoiceTitle、price、auditStatus 等)

响应示例:

{
  "code": 0,
  "data": {
    "id": 1,
    "no": "FKD20260810000001",
    "invoiceId": 100,
    "invoice": {
      "id": 100,
      "no": "FPD20260810000001",
      "invoiceNo": "02564178",
      "invoiceTitle": "XX科技有限公司",
      "price": 9000.00,
      "auditStatus": 20
    },
    "paymentPrice": 5000.00
  }
}

字段展示规则

字段 展示位置 说明
来票编号 来票列表、详情、付款详情 前缀 FPD
供应商 来票列表、详情 按采购订单带出
采购订单 来票列表、详情 展示订单编号/信息
发票号码/抬头 来票列表、详情 录入字段
来票金额 来票列表、详情、付款表单
来票日期 来票列表、详情
审批状态 来票列表、详情 字典展示
发票附件 来票详情、来票列表 上传/预览/下载
剩余可付金额 来票列表、付款表单 来票金额 - 已付款金额
关联来票 付款列表、付款详情 展示 invoice.no / invoice.invoiceNo / invoice.price

业务规则说明

场景 规则
来票创建 采购订单必须审核通过;来票供应商与采购订单一致;来票金额不超过订单剩余可开票金额
来票编辑 仅"未提交"状态可编辑
来票删除 审批通过后不可删除
来票提交审批 仅"未提交"状态可提交,提交后进入审批中
付款选择来票 仅审批通过 + 已上传发票附件的来票可选
付款金额上限 付款金额 <= 该来票金额 - 该来票已付款金额(未审核+审批中+已审核付款,排除作废)
供应商一致性 付款的供应商必须与关联来票的供应商一致
存量付款单 invoiceId 为空的存量付款单,编辑时需重新选择合格来票

注意事项

  • 来票供应商不从前端传入,创建/更新时由后端根据采购订单自动设置,前端表单只展示。
  • 付款表单选择来票时,先按供应商过滤(supplierId),可选订单时传 purchaseOrderId 进一步过滤。
  • remainingInvoicePrice 为负数或 0 的来票不会出现在 simple-list 中,前端可直接按返回列表渲染。
  • 付款金额校验在后端,前端可将来票的 remainingInvoicePrice 作为付款金额输入上限提示。
  • 来票审批状态变化通过 BPM 回调更新,前端无需处理,分页接口直接返回最新状态。
  • 来票发票附件上传使用 system 模块 Storage API(upload -> bind),不要使用旧版 /infra/file 接口。