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

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

涉及页面

  • 采购来票管理页(来票列表、新增/编辑/详情弹窗)
  • 采购订单详情页(展示该订单下已关联的来票信息)
  • 付款单管理页(新建/编辑弹窗、列表、详情)
  • 付款单详情页(展示关联的来票信息)

业务流程与数据带入

  1. 采购订单(审核通过)-> 创建来票:purchaseOrderId 必选,供应商自动带出(以采购订单的供应商为准,前端无需传 supplierId,由后端按采购订单查询设置)。
  2. 来票创建后 -> 上传发票附件(走 system 模块 Storage API)。**来票创建即生效,无审核环节**。
  3. 新建付款单 -> 选择关联来票(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
GET /erp/purchase-invoice/simple-list?supplierId=&purchaseOrderId= 精简列表(付款表单选来票)

已移除接口:/erp/purchase-invoice/update-status(审核/反审核)、/erp/purchase-invoice/audit-count(待审核数量)。前端请同步删除对应按钮与接口调用。

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

参数 类型 必填 说明
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 采购订单信息(嵌套)
attachmentList List 发票附件列表
hasAttachment Boolean 是否已上传发票附件
remainingInvoicePrice BigDecimal 剩余可付金额 = 来票金额 - 该来票已付款金额

已移除响应字段:auditStatus(审批状态)、processInstanceId(工作流编号)。

simple-list 响应:

字段 类型 说明
id Long 来票编号
no String 来票编号
invoiceNo String 发票号码
invoiceTitle String 发票抬头
price BigDecimal 来票金额
supplierId Long 供应商编号
purchaseOrderId Long 采购订单编号
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 等)

响应示例:

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

字段展示规则

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

已移除展示字段:来票列表的"审批状态"列、搜索条件"审核状态"、"审核/反审核"操作按钮。

业务规则说明

场景 规则
来票创建 采购订单必须审核通过;来票供应商与采购订单一致;来票金额不超过订单剩余可开票金额;**创建即生效,无需审核**
来票编辑 任意状态可编辑,无审核状态限制
来票删除 已有有效付款单(未作废且付款金额 > 0)关联的来票不可删除,其余可删除
付款选择来票 已上传发票附件且剩余可付金额 > 0 的来票可选(**不再要求审核通过**)
付款金额上限 付款金额 <= 该来票金额 - 该来票已付款金额(未审核+审批中+已审核付款,排除作废)
供应商一致性 付款的供应商必须与关联来票的供应商一致
存量付款单 invoiceId 为空的存量付款单,编辑时需重新选择合格来票

注意事项

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