docs(changelog): 业务外收支 7612 入参按 IN/OUT 两个页签分开说明
changelog-filename-gate / validate (push) Failing after 2s

把"四、入参"重构为分方向:先讲一套接口两个页签(direction 区分)怎么调,再分别给业务外收入(IN)/业务外支出(OUT)两张干净表单字段表,支出明确"只有 8 字段、不收凭证类"。前端对着自己页签抄即可。
这个提交包含在:
yaosutu
2026-09-13 14:44:50 +08:00
父节点 649eea681b
当前提交 d53a6f4328
@@ -45,27 +45,56 @@ base: "dev-v3"
- 分页 `GET /admin/finance/nonbiz-flows/page`
- 提交 `PUT /admin/finance/nonbiz-flows/{id}/submit` | 审批 `PUT /admin/finance/nonbiz-flows/{id}/approve` | 删除 `DELETE /admin/finance/nonbiz-flows/{id}`(仅 PENDING)
## 四、入参(Create;PUT 同构、少 direction)
## 四、入参(一套接口,两个页签)
**收入和支出是同一套接口、同一张表,靠 `direction` 区分;前端两个页签(收款管理/业务外收入、付款管理/业务外支出)调的是同一批 URL,只是 `direction` 传不同值、且两个页签的表单字段不一样。** 列出的"收支分类"也按 direction 各自独立一组。
| 页签 | direction | 列表/创建调用 |
|---|---|---|
| 业务外收入 | `IN` | `GET .../page?direction=IN` | `POST` body 带 `"direction":"IN"` |
| 业务外支出 | `OUT` | `GET .../page?direction=OUT` | `POST` body 带 `"direction":"OUT"` |
> 详情 / 提交 / 审批 / 删除 不带 direction(按 id 操作),两个页签共用。
### 4.1 业务外收入(IN)表单字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| direction | String | ✅ | IN 业务外收入 / OUT 业务外支出(编辑不可改) |
| category | String | ✅ | 收支类别码(见关联接口④,按 direction 分组) |
| **unitId** | Long(String) | ✅ | 外部单位 = 供应商 ID(供应商弹窗选,见关联接口①) |
| **operatorId** | Long(String) | ✅🆕 | 经办人 = 员工 adminId(员工选择器选,见关联接口③) |
| amount | BigDecimal | ✅ | 收支金额 >0 |
| occurDate | Date | ✅ | 发生日期 yyyy-MM-dd |
| deptId | Long(String) | 推荐 | 所属部门(部门树选,见关联接口②;供经办人"属部门"校验) |
| feeRate | BigDecimal | 仅 IN | 手续费率 ‰(OUT 忽略) |
| fee | BigDecimal | 仅 IN | 手续费(OUT 忽略) |
| fundAccountId | Long(String) | 仅 IN | 入/出账公司账户(OUT 忽略) |
| payMethod | String | 仅 IN | 收付方式(字典 fin_pay_way,OUT 忽略) |
| voucherNo | String | 仅 IN | 凭证号(OUT 忽略) |
| voucherUrl | String | 仅 IN | 凭证影像 URL(OUT 忽略) |
| direction | String | ✅ | 固定 `IN` |
| category | String | ✅ | 收款分类码(关联接口④ `?direction=IN` 组) |
| **unitId** | Long(String) | ✅ | 付款单位 = 供应商 ID(供应商弹窗选,关联接口①) |
| **operatorId** | Long(String) | ✅🆕 | 经办人 = 员工 adminId(员工选择器选,关联接口③) |
| amount | BigDecimal | ✅ | 本次收款 >0 |
| occurDate | Date | ✅ | 收款日期 yyyy-MM-dd |
| deptId | Long(String) | 推荐 | 所属公司/部门(部门树选,关联接口②;供经办人"属部门"校验) |
| payMethod | String | 否 | 收款方式(字典 fin_pay_way,关联接口⑤) |
| fundAccountId | Long(String) | 否 | 收款账号(公司资金账户) |
| feeRate | BigDecimal | 否 | 手续费率 ‰(改动联动重算 fee) |
| fee | BigDecimal | 否 | 手续费(缺省按费率算,可手改;actualAmount=amount−fee 自动算) |
| voucherNo | String | 否 | 凭证号 |
| voucherUrl | String | 否 | 凭证影像 URL |
| remark | String≤200 | 否 | 备注 |
> ❌ **已删除入参**:`unitName`(后端自动落供应商全称快照,前端不要再传)。
> ⚠️ **OUT 方向**:payMethod / voucherNo / voucherUrl / feeRate / fee / fundAccountId 传了也被忽略置 null,前端**支出表单不要渲染这些字段**。
### 4.2 业务外支出(OUT)表单字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| direction | String | ✅ | 固定 `OUT` |
| category | String | ✅ | 付款分类码(关联接口④ `?direction=OUT` 组) |
| **unitId** | Long(String) | ✅ | 收款单位 = 供应商 ID(供应商弹窗选,关联接口①) |
| **operatorId** | Long(String) | ✅🆕 | 经办人 = 员工 adminId(员工选择器选,关联接口③) |
| amount | BigDecimal | ✅ | 本次付款 >0 |
| occurDate | Date | ✅ | 申请日期 yyyy-MM-dd |
| deptId | Long(String) | 推荐 | 所属部门(部门树选,关联接口②;供经办人"属部门"校验) |
| remark | String≤200 | 否 | 付款说明 |
> ⚠️ **支出(OUT)没有也不收这些字段**:`payMethod / voucherNo / voucherUrl / feeRate / fee / fundAccountId`——传了后端也强制置 null。**支出表单(对齐原型)只有上表 8 个字段,不要渲染凭证/手续费/账户类字段。**
### 通用说明
- ❌ **已删除入参**:`unitName`(两个方向都由后端自动落供应商全称快照,前端不要再传)。
- PUT 编辑入参与 Create 同构、仅少 `direction`(编辑不可换向)。
- `unitId` 两个方向都接供应商(客户域未就绪,本期 IN/OUT 统一供应商口径)。
## 五、出参