# 付款流程模块 ## 业务范围 付款流程覆盖员工付款申请、总经理审批、协议上传、财务付款与凭证上传、员工发票提交和最终归档。 状态流转:`DRAFT`(草稿) -> `PENDING_APPROVAL`(待审批) -> `AGREEMENT_PENDING`(待上传协议) -> `FINANCE_PROCESSING`(财务待付款) -> `INVOICE_PENDING`(待上传发票) -> `ARCHIVED`(已归档)。总经理驳回后状态为 `REJECTED`。 ## 已交付功能 1. 付款申请:付款类型、收款单位/个人、申请金额、打款说明、关联业务、申请人和申请日期。 2. 总经理审批:待审批申请支持通过或驳回;审批通过后自动进入协议上传环节。 3. 协议管理:上传协议或合同文件后自动流转至财务付款。 4. 财务付款:填写财务经办人并上传付款凭证后,自动流转至发票提交。 5. 发票与归档:员工上传发票后自动记录提交和归档时间,流程完成。 6. 前端工作台:待审批、财务待付款、待上传发票和已归档统计;申请录入、列表查询、分页、流程详情、文件预览与下载操作。 ## 数据库 执行 `sairui-server/src/main/resources/db/schema/V5__payment_process.sql`,创建: - `payment_request`:付款申请、审批、协议、付款凭证、发票和归档信息。 本地开发中附件以 Base64 数据保存,单个文件由前端限制在 8MB 内;正式环境可替换为钉钉文件或对象存储地址。 ## API | 方法 | 地址 | 说明 | | --- | --- | --- | | GET | `/api/v1/payments` | 查询付款申请,支持关键字和状态筛选 | | GET | `/api/v1/payments/{id}` | 查询申请详情 | | POST | `/api/v1/payments` | 创建付款申请草稿 | | PUT | `/api/v1/payments/{id}` | 编辑草稿 | | POST | `/api/v1/payments/{id}/submit` | 提交总经理审批 | | POST | `/api/v1/payments/{id}/approve` | 总经理审批通过或驳回 | | POST | `/api/v1/payments/{id}/agreement` | 上传协议/合同 | | POST | `/api/v1/payments/{id}/finance-pay` | 财务付款并上传凭证 | | POST | `/api/v1/payments/{id}/invoice` | 上传发票并自动归档 | ## 联调步骤 1. 导入 V5 数据库脚本并重启后端。 2. 打开 `http://127.0.0.1:5173/payments`。 3. 填写申请后点击“提交总经理审批”。 4. 在详情中完成审批通过、协议上传、付款凭证上传和发票上传。 5. 发票上传成功后,确认状态为“已归档”。 ## 当前边界 本地版本以流程审批位模拟总经理和财务操作,未接入真实钉钉审批、电子签章、文件服务、银行支付和发票验真。模块已保留相应状态和附件字段,后续接入不影响主数据结构。