# 报销系统 API 全量清单(移植后路径保持不变) > 源:`shanxia/bx/bx-backend/app/routers/` + `shanxia/bx/bx-web/src/api/index.ts` > 挂载:门户 `API_V1_PREFIX=/api` + router prefix(**不含** `/api` 前缀) --- ## 费用项目 `/api/expense-items` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/expense-items/tree` | 费用项目树 | | GET | `/api/expense-items/{item_id}` | 详情 | | POST | `/api/expense-items/` | 新增 | | PUT | `/api/expense-items/{item_id}` | 更新 | | DELETE | `/api/expense-items/{item_id}` | 软删除 | --- ## 工作流 `/api/workflows` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/workflows/` | 分页列表(page, pageSize) | | GET | `/api/workflows/biz/{biz_type}` | 按业务类型(advance / reimburse) | | GET | `/api/workflows/{workflow_id}` | 详情(含节点) | | POST | `/api/workflows/` | 新增(body 可含 nodes) | | PUT | `/api/workflows/{workflow_id}` | 更新 | | PUT | `/api/workflows/{workflow_id}/nodes` | 保存节点列表 | | DELETE | `/api/workflows/{workflow_id}` | 软删除 | --- ## 备用金 `/api/advances` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/advances/` | 列表(status, keyword, applicantId, applyDate) | | GET | `/api/advances/my` | 我的申请 | | GET | `/api/advances/my/stats` | 我的统计 | | GET | `/api/advances/stats/status-counts` | 状态计数 | | GET | `/api/advances/pending-approval` | 待我审批 | | GET | `/api/advances/pending-approval/stats` | 待审批统计 | | GET | `/api/advances/approved-by-me` | 我已审批 | | GET | `/api/advances/{advance_id}` | 详情 | | GET | `/api/advances/{advance_id}/approvals` | 审批记录 | | POST | `/api/advances/` | 新增 | | PUT | `/api/advances/{advance_id}` | 更新 | | POST | `/api/advances/{advance_id}/submit` | 提交 | | POST | `/api/advances/{advance_id}/approve` | 审批通过 | | POST | `/api/advances/{advance_id}/reject` | 审批驳回 | | DELETE | `/api/advances/{advance_id}` | 软删除 | --- ## 报销 `/api/reimburses` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/reimburses/generate-title` | 自动生成标题 | | GET | `/api/reimburses/` | 列表 | | GET | `/api/reimburses/my` | 我的申请 | | GET | `/api/reimburses/my/stats` | 我的统计 | | GET | `/api/reimburses/stats/status-counts` | 状态计数 | | GET | `/api/reimburses/pending-approval` | 待我审批 | | GET | `/api/reimburses/pending-approval/stats` | 待审批统计 | | GET | `/api/reimburses/approved-by-me` | 我已审批 | | GET | `/api/reimburses/{reimburse_id}` | 详情 | | GET | `/api/reimburses/{reimburse_id}/approvals` | 审批记录 | | POST | `/api/reimburses/` | 新增(含明细) | | PUT | `/api/reimburses/{reimburse_id}` | 更新 | | POST | `/api/reimburses/{reimburse_id}/submit` | 提交 | | POST | `/api/reimburses/{reimburse_id}/approve` | 审批通过 | | POST | `/api/reimburses/{reimburse_id}/reject` | 审批驳回 | | DELETE | `/api/reimburses/{reimburse_id}` | 软删除 | --- ## 支付 / 发放 `/api/payments` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/payments/pending` | 待支付报销列表 | | GET | `/api/payments/stats` | 财务统计 | | GET | `/api/payments/processed` | 已处理列表 | | POST | `/api/payments/{id}/pay` | 报销发放 | | POST | `/api/payments/{id}/offset` | 单笔冲抵 | | POST | `/api/payments/{id}/batch-offset` | 批量冲抵 | | GET | `/api/payments/advance-issues` | 备用金发放列表 | | GET | `/api/payments/advance-issues/stats` | 发放统计 | | GET | `/api/payments/advance-issues/export` | 导出 CSV(StreamingResponse) | | POST | `/api/payments/advance/{advance_id}/issue` | 备用金发放 | | GET | `/api/payments/advance/{advance_id}/offset-records` | 备用金被冲抵记录 | | GET | `/api/payments/{id}/offset-records` | 报销冲抵记录 | --- ## 附件 `/api/attachments` | 方法 | 路径 | 说明 | |------|------|------| | POST | `/api/attachments/upload` | 上传(multipart: file, biz_type, biz_id) | | GET | `/api/attachments/download/{attachment_id}` | 下载文件流 | | GET | `/api/attachments/preview/{attachment_id}` | 预览 URL | | GET | `/api/attachments/list` | 按 biz_type、biz_id 列表 | | PUT | `/api/attachments/bind-biz` | 绑定业务单(query: ids, biz_type, biz_id) | | DELETE | `/api/attachments/{attachment_id}` | 软删除 | --- ## 响应格式(所有 JSON 接口) ```json { "code": 0, "msg": "success", "data": { } } ``` 分页 `data` 结构: ```json { "rows": [], "total": 0, "page": 1, "pageSize": 10 } ``` --- ## 不移植的 API | 前缀 | 说明 | |------|------| | `/api/auth/*` | 门户登录 | | `/api/users/*` | sys_user | | `/api/roles/*` | sys_role | | `/api/menus/*` | sys_menu(门户菜单接口) |