文件
hl-api-changelog/changelogs-v2/2026-09/09_7129_费用分类-新增接口-管理后台.md
T
Mimingguang d1e45d6d2e
changelog-filename-gate / validate (push) Failing after 3s
chore(changelog): 财务域 8 篇 verified (hl-admin ref 21540997)
2026-09-09 17:54:39 +08:00

98 行
3.7 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
---
schema: "hl-changelog/v2"
ticket: "7129"
title: "费用分类(业务内)树 + 增改 + 停用/启用"
consumer: "admin"
author: "yst"
change_type: "新增接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "21540997"
target_release: ""
verified_at: "2026-09-09"
status_note: "后端已合 dev-v3 并部署测试服。status 统一 DISABLED(#7129);重复停用/启用改幂等成功;停用大类级联停用末级、启用不级联。"
updated_at: "2026-09-09"
base: "dev-v3"
---
# 费用分类(业务内)
## 1. 接口背景
财务域「费用分类」(业务内支出分类):两级树(大类 level=1 → 末级 level=2),供费用报销等业务归集。本期统一状态枚举为 DISABLED,停用/启用幂等化。
## 2. 变更清单
| 类型 | 接口 | 说明 |
|---|---|---|
| 新增 | GET `/admin/finance/expense-categories/tree` | 分类树(status 筛选) |
| 新增 | POST `/admin/finance/expense-categories` | 新增分类(大类或末级) |
| 新增 | PUT `/admin/finance/expense-categories/{id}` | 改名称/排序 |
| 新增 | POST `/admin/finance/expense-categories/{id}/disable` | 停用(幂等,大类级联停用末级) |
| 新增 | POST `/admin/finance/expense-categories/{id}/enable` | 启用(幂等,不级联) |
## 3. 接口详情
### 3.1 分类树 GET /tree
入参(Query):`status` 可选:`NORMAL`(默认,只出正常)/ `DISABLED` / `ALL`;其他值 → 598303。
出参 `List<ExpenseCategoryNodeRespVO>`(树形,大类嵌 children):
| 字段 | 类型 | 说明 |
|---|---|---|
| id | String | 分类ID |
| parentId | String | 父类ID(大类为 null) |
| level | Integer | 1 大类 / 2 末级 |
| name | String | 分类名 |
| sort | Integer | 排序 |
| status | String | NORMAL / DISABLED |
| children | Array | 末级列表(仅大类行有,空数组非 null) |
### 3.2 新增 POST /
入参:`parentId`(可选;空=新增大类 level=1,填=新增末级 level=2)/ `name`(必填,≤50 字)/ `sort`(可选默认 0)。出参 `{id}`。
### 3.3 改 PUT /{id}
入参:`name`(必填 ≤50)/ `sort`。(历史单据名称快照不追溯。)
### 3.4 停用 /{id}/disable
幂等(已 DISABLED 直接成功);**停用大类级联停用其全部末级**。
### 3.5 启用 /{id}/enable
幂等(DISABLED→NORMAL,已正常直接成功);**启用大类不级联启用末级**(末级需单独启用)。
## 4. 枚举 / 数据字典
- `status`:NORMAL 正常 / DISABLED 停用(原 CANCELLED 已统一为 DISABLED)
## 5. 错误码(段位 598300-598399)
| 码 | 含义 |
|---|---|
| 598301 | 分类不存在 |
| 598302 | 分类名已存在(大类名全局唯一;末级名大类内唯一) |
| 598303 | 分类当前状态不允许此操作(含非法 status 参数) |
| 598304 | 所属大类不存在或非法 |
## 6. 示例
**新增末级**
```
POST /admin/finance/expense-categories {"parentId":"2097...","name":"市内交通","sort":1}
→ 200 {"id":"2098..."}
```
**停用大类(级联停用末级)**
```
POST /admin/finance/expense-categories/{id}/disable → 200
```
**重复停用(幂等)**
```
POST /admin/finance/expense-categories/{id}/disable → 200(再次调用仍成功)
```
## 7. 注意事项
- 停用大类会级联停用末级;启用大类**不**级联(末级单独启用)。
- 重复停用/启用返回 200 幂等成功,不再报 598303。
- 长整型 ID 序列化为字符串。
## 8. 关联 / 联系人
- Issue:https://git.1814.love:8443/wx/HL/issues/7129(统一 DISABLED)
- Commit:https://git.1814.love:8443/wx/HL/commit/fc87029a68
- 负责人:腰苏图(yst)