86 lines
3.5 KiB
Markdown
86 lines
3.5 KiB
Markdown
# Backend Validation: sw-business-bank 银行代扣文件传输配置能力
|
||
|
||
## 固定基线
|
||
|
||
- 分支:`develop`
|
||
- 提交:`b540f1f48bf2d6c28aa183749ca61231071c0942`
|
||
- 验证日期:2026-03-24
|
||
|
||
## 验证命令
|
||
|
||
```bash
|
||
mvn -f /Volumes/Dpan/github/water-workspace/water-backend/sw-business-bank/pom.xml -pl sw-business-bank-server -am -DskipTests compile
|
||
mvn -f /Volumes/Dpan/github/water-workspace/water-backend/sw-business-bank/pom.xml -pl sw-business-bank-server -am -Dtest=BankTransferPathResolverTest,BankWithholdingTransferConfigTest -Dsurefire.failIfNoSpecifiedTests=false test
|
||
```
|
||
|
||
## 结果摘要
|
||
|
||
- 编译:通过
|
||
- 定向测试:通过
|
||
- 测试统计:2 个测试类,9 个测试用例全部通过
|
||
- Docker 文件通道 smoke:通过
|
||
|
||
## 场景证据
|
||
|
||
### 默认规则
|
||
|
||
- `BankTransferPathResolverTest.resolve_usesDefaultRuleWhenNoOverrideMatches`
|
||
- 结论:未命中覆盖时,按默认 `SFTP` 与默认目录生成 `resolvedDir/resolvedPath`
|
||
|
||
### 租户覆盖
|
||
|
||
- `BankTransferPathResolverTest.resolve_prefersTenantChannelThenTenantThenChannel`
|
||
- 结论:存在租户与租户-通道覆盖时,租户相关覆盖能命中并参与最终结果
|
||
|
||
### 通道覆盖
|
||
|
||
- `BankTransferPathResolverTest.resolve_prefersTenantChannelThenTenantThenChannel`
|
||
- 结论:通道覆盖在默认规则之上生效,并在存在更具体作用域时被更高优先级覆盖
|
||
|
||
### 租户-通道覆盖
|
||
|
||
- `BankTransferPathResolverTest.resolve_prefersTenantChannelThenTenantThenChannel`
|
||
- 结论:`TENANT_CHANNEL` 优先级最高,可同时覆盖协议与目录
|
||
|
||
### 字段级回退
|
||
|
||
- `BankTransferPathResolverTest.resolve_fallsBackFieldByFieldWhenHigherScopeIsPartial`
|
||
- 结论:高优先级仅覆盖协议时,目录继续回退到下一级有效规则,不生成空路径
|
||
|
||
### 协议切换
|
||
|
||
- `BankTransferPathResolverTest.resolve_switchesProtocolWithoutChangingCallerLogic`
|
||
- 结论:同一路径解析入口可在 `SFTP/FTP` 间切换,无需调用方自行拼路径
|
||
|
||
### `ARCHIVE` / `LOCAL_TEMP`
|
||
|
||
- `BankTransferPathResolverTest.resolve_supportsArchiveAndLocalTempStages`
|
||
- 结论:归档目录与本地临时目录均纳入统一解析范围
|
||
|
||
### 非法模板变量失败
|
||
|
||
- `BankTransferPathResolverTest.resolve_rejectsUnknownTemplateVariable`
|
||
- 结论:命中未声明变量时立即抛出配置错误
|
||
|
||
### 配置缺失失败
|
||
|
||
- `BankTransferPathResolverTest.resolve_rejectsMissingConfig`
|
||
- 结论:协议连接信息不完整时立即阻断当前文件动作
|
||
|
||
### 已落库批次配置切换回归
|
||
|
||
- `BankWithholdingTransferConfigTest.resolveStoredOrCurrentBackLocation_reusesPersistedBatchConfigAfterConfigSwitch`
|
||
- 结论:已固化 `backProtocol/backDir` 的批次继续沿用原目录,不漂移到新配置
|
||
|
||
- `BankWithholdingTransferConfigTest.resolveStoredOrCurrentBackLocation_usesCurrentResolverWhenBatchHasNoSnapshot`
|
||
- 结论:未固化回盘目录的旧对象仍可回退到当前统一解析器
|
||
|
||
## 备注
|
||
|
||
- 已执行基于 Docker 容器的本地文件通道 smoke:
|
||
- `BankTransferSftpSmokeCli` -> `bank-transfer-test-sftp (127.0.0.1:2222)` 上传/下载/哈希比对通过
|
||
- `BankTransferFtpSmokeCli` -> `bank-transfer-test-ftp (127.0.0.1:2121)` 上传/下载/哈希比对通过
|
||
- 当前样本 SHA256:`2520ee11a48cb01c9372c91a012549a50a39de40441a4295309993727239653b`
|
||
- 本轮仍未执行真实银行 `SFTP/FTP` 网络连通性验证;相关联调继续作为 deferred 保留。
|
||
- H2 测试夹具本轮未新增数据库级用例,`application-unit-test.yaml` 与 `sql/create_tables.sql` 无需为当前两组定向测试额外扩展。
|