2.7 KiB
2.7 KiB
柜台未结账正式红冲验证记录
背景
柜台结账历史口径要求未结账和已结账记录均可红冲。原实现仅覆盖已结账红冲,本次补齐未结账正式红冲,并在柜台结账未结账列表提供前端入口。
实现范围
- 后端
POST /business/charge/counter-settle/red-flush按支付主单状态分流已结账/未结账红冲。 - 未结账红冲仅支持柜台收费、账单缴费、收款方向、
UNSETTLED、settleId=null的支付主单。 - 未结账红冲生成正式反向支付流水,原支付主单更新为
REVERSED,营业账恢复未收费。 - 新增
biz_counter_unsettled_red_flush_record查询投影,红冲记录查询/导出合并已结账与未结账红冲。 - 前端柜台结账“未结账”列表新增单笔红冲按钮;已结账明细与未结账入口均要求非空红冲原因。
验证命令
| 范围 | 命令 | 结果 | 说明 |
|---|---|---|---|
| 后端单测 | mvn -pl sw-business/sw-business-server -am -Dtest=CounterSettleApplicationServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test |
通过 | CounterSettleApplicationServiceImplTest 共 31 个用例通过,覆盖未结账红冲成功、混批拒绝、重复/并发拒绝、越权拒绝和红冲记录查询。 |
| 后端最终回归 | mvn -pl sw-business/sw-business-server -am -Dtest=CounterSettleApplicationServiceImplTest,PaymentRecordServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test |
通过 | 共 50 个用例通过,其中柜台结账 32 个、支付记录 18 个。 |
| 前端依赖 | pnpm install |
通过 | 前端 worktree 初始缺少 node_modules,安装依赖后继续验证。 |
| 前端类型检查 | pnpm ts:check |
未通过 | 首次执行因 Node 默认 4GB 堆内存 OOM 退出。 |
| 前端类型检查 | NODE_OPTIONS=--max-old-space-size=8192 pnpm ts:check |
未通过 | 全仓存在既有 TS 基线错误,主要为自动导入类型未识别和无关业务类型问题。 |
| 前端局部过滤 | NODE_OPTIONS=--max-old-space-size=8192 pnpm ts:check 2>&1 | rg "counterCheckout|counterSettle" |
通过本次改动检查 | 过滤后仅剩未触碰的 CheckoutTopSummary.vue、CounterSettleConfirmDialog.vue、CounterSettledPanel.vue 自动导入基线错误;本次触碰的 CounterUnsettledPanel.vue、CounterSettledDetailDialog.vue、counterCheckout/index.vue、counterSettle.ts 无新增错误。 |
结论
柜台未结账正式红冲已完成后端最小闭环验证。红冲后原收费支付主单不再进入待结账候选,营业账恢复未收费,红冲记录查询可追溯未结账红冲投影。前端入口已补齐,但全仓 vue-tsc 仍受既有自动导入类型基线影响,需要另行治理。