# 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` 无需为当前两组定向测试额外扩展。