schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
| schema |
ticket |
title |
consumer |
author |
change_type |
backend_status |
gateway_status |
frontend_status |
frontend_owner |
frontend_ref |
target_release |
verified_at |
status_note |
updated_at |
base |
| hl-changelog/v2 |
8699 |
往来账·财务调账——调账单(TZ)+页内审批+应收/应付入账联动(#8699) |
admin |
yst(GIT) |
新增接口 |
deployed |
not_required |
pending |
|
|
v2.1 |
2026-10-02 |
往来账「财务调账」(SRS 3.6.2,原型 fin-adjust)后端落地,原标二期提前本期实现。新增 /admin/finance/adjusts 5 端点:新建调账单(TZ-单号)/分页/详情/批准/驳回。挂团+改单团利润的应收/应付跨团调整集中口,金额正=调增/负=红字冲减,批准后顺数据流写台账、全留痕不删原记录、不动账户结存。应付侧写 fin_payable_line 调账行(可继续走付款申请),应收侧改 order-v3 查询叠加让应收台账数字真实变化(B 方案)。审批=页内单步批准/驳回(企微多级后期统一接);改单团利润只留痕标记;阈值 FINADJUST_APPROVE_MIN 从后端参数读取回传提示。部署测试服行为级验证全过:应收叠加 receivable 5360→5860(+500)精确、应付调增/调减、不挂团占位 UNGROUPED、驳回、596110/596103/596102 校验全对。 |
2026-10-02 |
dev-v3 |
finance:往来账·财务调账——调账单(TZ)+页内审批+应收/应付入账联动(管理后台)
✅ additive 纯新增接口组:新增 /admin/finance/adjusts 5 端点,旧前端不受影响。
1. 接口背景
往来账「财务调账」是挂团 + 改单团利润的应收/应付跨团调整集中口,调账单号 TZ 前缀。用于账对不上时的差异平账:金额正=调增 / 负=红字冲减,批准后顺数据流写入应付款 / 应收台账,全留痕不删原记录、不动账户结存。
此前仅有原型 + 设计稿(SRS 标二期),后端零实现。本期落地完整后端:调账单 CRUD + 页内审批 + 应收/应付入账联动。
2. 变更清单
| # |
接口 |
变更 |
类型 |
| 1 |
POST /admin/finance/adjusts |
新建调账单(生成 TZ 单号,PENDING) |
✅ 新增 |
| 2 |
GET /admin/finance/adjusts/page |
调账单分页(kw/target/status 筛选) |
✅ 新增 |
| 3 |
GET /admin/finance/adjusts/{id} |
调账单详情(含审批留痕 + 多级提示标记) |
✅ 新增 |
| 4 |
POST /admin/finance/adjusts/{id}/approve |
批准 → 入账联动 → POSTED |
✅ 新增 |
| 5 |
POST /admin/finance/adjusts/{id}/reject |
驳回 → REJECTED |
✅ 新增 |
3. 接口详情
统一前缀 POST/GET /admin/finance/adjusts/**(业务调用不带服务前缀,网关按 /admin/finance/** 路由到 order-v3)。
4. 入参
4.1 新建调账单(POST /)
| 参数 |
类型 |
必填 |
说明 |
| adjustTarget |
String |
是 |
RECEIVABLE 应收 / PAYABLE 应付 |
| partyId |
Long |
否 |
单位ID(应付=供应商ID / 应收=客户ID) |
| partyName |
String |
是 |
单位名称(快照) |
| teamNo |
String |
见说明 |
团号。应收:与 orderId 至少填一个(否则 596110);应付:可空(空则入账占位 UNGROUPED) |
| orderId |
Long |
见说明 |
订单ID(应收订单级定位;应付可空) |
| amount |
BigDecimal |
是 |
调账金额(正=调增 / 负=红字冲减,禁 0 否则 596103) |
| accountPeriod |
Date |
是 |
插入账期(yyyy-MM-dd;批准时校验未封账否则 596104) |
| profitFlag |
Boolean |
是 |
是否改单团利润(true=修改 / false=不修改,只留痕标记,不跨域回写) |
| remark |
String |
是 |
备注(调账原因/依据) |
4.2 分页(GET /page)
| 参数 |
说明 |
| pageNo / pageSize |
分页 |
| kw |
关键词(模糊 调账单号/单位名/团号) |
| adjustTarget |
RECEIVABLE / PAYABLE 精确筛选 |
| status |
PENDING / POSTED / REJECTED 精确筛选 |
4.3 批准 / 驳回(POST /{id}/approve | /{id}/reject)
| 参数 |
类型 |
必填 |
说明 |
| opinion |
String |
驳回必填 |
审批意见(批准可空 / 驳回必填 否则 596109) |
5. 出参
5.1 调账单行(AdjustRowRespVO)/ 详情(AdjustDetailRespVO)
| 字段 |
类型 |
说明 |
| id |
Long(string) |
调账单ID |
| adjustNo |
String |
调账单号(TZ-yyyyMMddNNNN) |
| adjustTarget |
String |
RECEIVABLE / PAYABLE |
| partyId / partyName |
Long(string) / String |
单位 |
| teamNo |
String |
团号(可空) |
| orderId |
Long(string) |
订单ID(可空) |
| amount |
BigDecimal |
调账金额(带符号) |
| accountPeriod |
Date |
插入账期 |
| profitFlag |
Boolean |
是否改单团利润 |
| remark |
String |
备注 |
| status |
String |
PENDING / POSTED / REJECTED |
| postedFlow |
String |
入账关联流水描述(批准后回填,如「应付款·某供应商·某团」「应收台账·26-2827」) |
| reviewByName / reviewTime / reviewRemark |
|
审批最终态 |
| createTime |
LocalDateTime |
创建时间 |
详情额外:
| 字段 |
说明 |
| needMultiLevelApprove |
Boolean:金额绝对值 ≥ 后端参数 FINADJUST_APPROVE_MIN(默认 5000)时为 true,前端据此提示「需多级审批」(本期后端仍单步批准,仅提示) |
| reviewLogs |
审批留痕列表(action/operatorName/opinion/fromStatus/toStatus/createTime) |
5.2 批准 / 驳回响应(AdjustReviewRespVO)
| 字段 |
说明 |
| status |
操作后状态(POSTED / REJECTED) |
| postedFlow |
入账关联流水(批准时) |
| needMultiLevelApprove |
多级审批提示标记(批准时) |
6. 枚举/数据字典
adjustTarget(调整目标)
| 值 |
含义 |
| RECEIVABLE |
应收(客户侧) |
| PAYABLE |
应付(供应商侧) |
status(调账单状态)
| 值 |
含义 |
| PENDING |
待审批 |
| POSTED |
已入账(批准生效) |
| REJECTED |
已驳回 |
7. 错误码
| 错误码 |
含义 |
触发 |
| 596101 |
调账单不存在 |
id 不存在/已软删 |
| 596102 |
调账单非待审批状态,不可操作 |
对已 POSTED/REJECTED 单再批准/驳回 |
| 596103 |
调账金额不允许为 0 |
amount=0 |
| 596104 |
插入账期已封账 |
accountPeriod 落已封账期/无开账期 |
| 596105 |
调整目标非法 |
adjustTarget 非 RECEIVABLE/PAYABLE |
| 596106 |
单位缺失 |
partyName 空 |
| 596107 |
调账单号生成冲突 |
TZ 取号撞号重试耗尽(重试即可) |
| 596109 |
驳回原因不能为空 |
驳回未填 opinion |
| 596110 |
应收调账必须挂团或挂订单 |
RECEIVABLE 且 teamNo/orderId 双空 |
8. 示例
8.1 典型:新建应收调账单(挂订单 +500)→ 批准
8.2 应付调增(挂团 +300)
8.3 应付调减不挂团(-100)→ 占位 UNGROUPED
8.4 异常:应收双空
9. 业务边界
- 应付侧:调账行写入
fin_payable_line(来源 FIN_ADJUST),进应付款「按团号/按供应商」列表,可继续走付款申请/审批/出纳支付;不挂团时团号占位 UNGROUPED,会在按团列表出现一个 UNGROUPED 行,前端可识别该值显示「不挂团」。
- 应收侧:调账不写新表行,由 order-v3 查询时实时叠加进应收台账数字(receivableAmount + balanceAmount)。挂订单按订单级叠加、挂团(order_id 空)按团维度叠加;负调账超额时 balanceAmount 可为负(负值即「冲多了」信号,前端原样展示,不兜底)。
- 改单团利润 profitFlag 仅留痕标记,后端不跨域回写订单/团利润。
- 阈值:needMultiLevelApprove 仅提示,本期后端仍单步批准;企微多级审批后期统一接。
- 全留痕不删原记录,审批轨迹进 reviewLogs。
10. 修改前后对比
新增接口组,无「修改前」。
11. 影响评估/回滚
- additive 纯新增,旧前端零影响。
- 回滚:删除调账域代码 + DROP fin_adjust/fin_adjust_review_log 即可(涉 DDL 回滚需谨慎,建议保留表只回滚代码)。
12. 注意事项
- Long 型 ID 全部是 string,前端勿按 number 解析。
- 应收调账必须挂团或挂订单(596110),否则静默不进台账——前端表单应引导填其一。
- 应付调账不挂团会出现 UNGROUPED 占位行,前端需做识别展示。
- 金额带符号:正=调增 / 负=红字冲减,禁 0。
- 驳回必须填驳回原因(596109)。
13. 关联/联系人