update 操作文档

This commit is contained in:
Guoqs
2026-03-11 18:12:35 +08:00
parent bce935e0de
commit 8f99e785b6

View File

@@ -178,3 +178,128 @@
- 使用默认路径:`jsowellTask.importAdapayUnsplitRecordAndCompleteFields()`
- 指定路径:`jsowellTask.importAdapayUnsplitRecordAndCompleteFields('doc/万车充小程序-未分账明细.xlsx')`
## 7. 完整执行流程(落地版)
以下流程是当前代码已支持、可直接按顺序执行的标准操作。
### 7.1 执行前检查
1. 使用 JDK8。
2. 编译通过:
```bash
mvn -pl jsowell-quartz -am -DskipTests compile
```
3. 确认 Excel 文件就绪:
- 默认路径:`doc/万车充小程序-未分账明细.xlsx`
- 或你自己的绝对路径/相对路径
### 7.2 第一步:导入并补齐缺失字段
执行任务方法(任选其一):
1. 默认路径:
```text
jsowellTask.importAdapayUnsplitRecordAndCompleteFields()
```
2. 指定路径:
```text
jsowellTask.importAdapayUnsplitRecordAndCompleteFields('doc/万车充小程序-未分账明细.xlsx')
```
本步骤会自动完成:
1. Excel -> `adapay_unsplit_record` 导入(`insertOrUpdateSelective`,可重复执行)
2. 自动补齐 `order_code / due_refund_amount / settle_amount / pile_type`
3. 输出导入统计与补齐统计日志
### 7.3 第二步:导入后校验
建议执行以下 SQL
```sql
-- 总量
SELECT COUNT(*) AS total_cnt
FROM adapay_unsplit_record;
-- 核心补齐字段缺失情况
SELECT COUNT(*) AS missing_cnt
FROM adapay_unsplit_record
WHERE order_code IS NULL
OR settle_amount IS NULL
OR due_refund_amount IS NULL
OR pile_type IS NULL;
```
`missing_cnt` 理想结果应接近 `0`(少量异常数据可人工排查)。
### 7.4 第三步:执行未分账处理(分账到 memberId=0
执行任务方法(任选其一):
1. 使用默认 appId`Constants.DEFAULT_APP_ID`+ pageSize=500
```text
jsowellTask.processUnsplitRecordToDefaultMember()
```
2. 指定 appId 和分页大小:
```text
jsowellTask.processUnsplitRecordToDefaultMember('你的wechatAppId', 200)
```
建议先用 `200` 小批量试跑,再提升到 `500`
本步骤会自动完成:
1. 分页读取 `queryList()` 的待分账记录
2. 先查汇付最新确认信息,计算实时剩余可分账金额
3.`min(数据库待分账金额, 汇付实时剩余金额)` 作为本次 `confirmAmt`
4.`PaymentConfirm` 分账,分账对象固定 `memberId=0`
5. 回写结果:
- 成功:更新 `confirmed_split_amount``split_flag=SUCCESS`
- 失败:`split_flag=FAILED`
### 7.5 第四步:循环执行直到待分账清零
每轮执行后,建议跑以下 SQL
```sql
-- 按当前业务口径,仍待处理数量
SELECT COUNT(*) AS remain_cnt
FROM adapay_unsplit_record
WHERE (settle_amount > confirmed_split_amount - payment_revoke_amount)
OR (due_refund_amount > refund_amount);
-- 分账结果分布
SELECT split_flag, COUNT(*) AS cnt
FROM adapay_unsplit_record
GROUP BY split_flag;
```
`remain_cnt = 0` 可视为本次补分账完成。
### 7.6 失败重试与回滚
1. 失败重试:重新执行 `processUnsplitRecordToDefaultMember(...)` 即可。
2. 回滚(如金额或目标账户异常):
-`paymentId` 查询对应 `payment_confirm_id`
-`createConfirmReverse(paymentConfirmId, wechatAppId)` 撤销
- 重新执行正确参数的分账流程
## 8. 一键操作建议(便于下次复用)
按下面顺序执行,基本可覆盖同类任务:
1. `jsowellTask.importAdapayUnsplitRecordAndCompleteFields('文件路径')`
2. 校验 `missing_cnt`
3. `jsowellTask.processUnsplitRecordToDefaultMember('appId', 200)`
4. 查看 `remain_cnt`
5.`remain_cnt > 0`,重复第 3-4 步,最后切 `pageSize=500` 提速