hl-api-changelog/changelogs-v2/2026-07/07_4780_核单submit收口-修改接口-管理后台.md

173 行
5.2 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# 核单 Step 6 submit 收口务 (修改接口)
- **变更日期**: 2026-07-07
- **端类型**: 管理后台
- **变更类型**: 修改接口
- **Issue**: https://git.1814.love:8443/wx/HL/issues/4780
- **PR**: https://git.1814.love:8443/wx/HL/pulls/4783
---
## 1. 接口背景
核单 epic PR5。 Step 6 submit (POST `/v3/admin/order/{orderId}/settlement/step6/submit`) 有两项修改:
1. **出参新增 `warnings` 字段(软预警列表)**: 软预警不阻塑提交,提交定制师补传凭证
2. **`orderStatusAfter` 値变更**: 将 "已结算" 改为 "待财务复核"
**submit 阈条件新增** (任一不满即返错误):
- 584081: recon 对账数据不完整 (财务人员要地接确认尾款))
- 584082: 尾款未收全 (customerCashCollectedFlag=false 时)
- 584083: 转账未完成 (transferStatus != COMPLETED 时)
- 584084: 预支未冲扣 (advanceSettledFlag=false 时)
- 584085: payout 未全部 COMPLETED (有人员尚未抨款))
---
## 2. 变更清单
| 变更项 | 内容 |
|------|------|
| orderStatusAfter | "已结算" -> "待财务复核" (❗ 破坏兆容) |
| 新增 `warnings` | List<String>, 软预警列表,不阻塑,可空 |
| submit 阈条件 | 584081/084082/584083/584084/584085 新增 |
---
## 3. 接口详情
| 项 | 说明 |
|-----|------|
| 方法 | POST |
| 路径 | /v3/admin/order/{orderId}/settlement/step6/submit |
| 认证 | JWT Bearer(管理端) |
| 幂等性 | 非幂等(重复提交不幂) |
| 核单状态 | settlement_status=IN_PROGRESS |
---
## 4. 接口入参
### 4.1 路径参数
| orderId | Long | 是 | 订单 ID |
### 4.2 请求体
无 (空请求体)
---
## 5. 出参字段(`SettlementSubmitRespVO`
| 字段 | 类型 | 说明 |
|------|------|------|
| summaryId | Long | settlement_summary 主键 |
| orderId | Long | 订单 ID |
| settledAt | LocalDateTime | 核单完成时间 |
| totalAmount | BigDecimal | 订单总金额快照 |
| paidAmount | BigDecimal | 已付金额快照 |
| balanceAmount | BigDecimal | 尾款金额 |
| roomCost | BigDecimal | 住宿实际成本 |
| ticketCost | BigDecimal | 门票实际成本 |
| staffCost | BigDecimal | 人员费用实际成本 |
| subsidyCost | BigDecimal | 补助实际成本 |
| insurancePremium | BigDecimal | 保险实际保费 |
| totalActualCost | BigDecimal | 总实际成本=四子表+保险 |
| driverTransferAmount | BigDecimal | 给司机转账金额 |
| profitAmount | BigDecimal | 公司毛利 |
| profitRate | BigDecimal | 毛利率(小数) |
| **orderStatusAfter** | String | **❗ 广报 "待财务复核" (修改前: "已结算")** |
| mqTriggered | Boolean | OrderSettledEvent 是否触发成功 |
| **warnings** | List<String> | **✨ 新增**: 软预警, 不阻塑, null=无预警 |
---
## 6. 枚举/数据字典
无枚举字段。 orderStatusAfter 是文本展示.
---
## 7. 错误码
| 错误码 | 含义 | 触发场景 |
|--------|------|---------|
| 584081 | recon 对账数据不完整 | 未完全填写 recon 数据 |
| 584082 | 尾款未收 | customerCashCollectedFlag=false |
| 584083 | 转账未完成 | transferStatus != COMPLETED |
| 584084 | 预支未冲扣 | advanceSettledFlag=false |
| 584085 | payout 未封 COMPLETED | 有人员尚未抨款 |
---
## 8. 示例
### 8.1 典型成功 -- 提交后带 warnings
```json
{
"code": 200,
"data": {
"summaryId": 9600000000001,
"orderId": 1234567890123456,
"orderStatusAfter": "待财务复核",
"totalAmount": 24800.00,
"paidAmount": 24800.00,
"balanceAmount": 0.00,
"totalActualCost": 23120.00,
"profitAmount": 1680.00,
"profitRate": 0.0677,
"mqTriggered": true,
"warnings": ["住宿 D2 现付缺凭证"]
}
}
```
### 8.2 边界 -- warnings 为空,全部验完整
```json
{
"code": 200,
"data": {
"orderStatusAfter": "待财务复核",
"mqTriggered": true,
"warnings": null
}
}
```
### 8.3 业务失败 -- recon 未完全填写触发 584081
```json
{
"code": 584081,
"msg": "对账数据不完整,请先完善 recon 信息"
}
```
---
## 9. 业务边界
适用: settlement_status=IN_PROGRESS
不适用: 已提交或已结算
特殊边界:
- warnings 列表不为空时,定制师详阅并处理(如补传凭证)
---
## 10. 修改前后对比
| 字段 / 行为 | 修改前 | 修改后 |
|------|------|------|
| orderStatusAfter | "已结算" | "待财务复核" |
| warnings | 无 | List<String> (可空,软预警列表) |
| submit 阈条件 | 仅 SETTLEMENT_STATUS_NOT_IN_PROGRESS | +584081~584085 |
---
## 11. 影响评估/回滚
**破坏兆容:** orderStatusAfter 变为 "待财务复核" -- 前端如果硬编 "已结算" 却仅需更新判断逻辑。
**前端同步上线:**
- 提交后状态按 "待财务复核" 展示,不再 "已结算"
- warnings 非空时展示提示,建议定制师补传凯缺凭证
**回滚方案:** 无需回滚,状态变更属正常业务流程变更。
---
## 12. 注意事酹
- orderStatusAfter 修改是 **破坏兆容变更**,前端需更新判断逻辑
- warnings 列表需备意 null (展示套带信息或展示 toast)
---
## 13. 关联/联系人
- Issue: https://git.1814.love:8443/wx/HL/issues/4780
- PR: https://git.1814.love:8443/wx/HL/pulls/4783
- Commit: https://git.1814.love:8443/wx/HL/commit/f4877036d4d8f8ac2d56573a16f81a30e1dc2b43
- 后端负责人: 腰苏图