4.7 KiB
4.7 KiB
Quickstart: sw-business-bank 银行代扣文件传输配置能力
1. 固定基线
- 在
water-docs中确认当前 feature 为010-bank-transfer-config。 - 在
water-backend中固定 branch 与 commit:- branch:
001-sys009-withholding-closure - commit:
84493513c1d06936210ab7e697985d38958ba5ee
- branch:
2. 阅读必要上下文
docs/design/00_Management/01_Project_Progress.mddocs/design/00_Management/03_Task_Checklist.mddocs/design/02_Detailed_Design/12_REV_Detailed.mddocs/design/03_Technical_Design/03_Interface_Design.mddocs/design/03_Technical_Design/04_Security_Design.mddocs/design/03_Technical_Design/05_Deployment_Design.mdspec.mdresearch.mddata-model.md
3. 准备最小配置样本
准备 7 组配置样本:
- 默认规则
- 租户覆盖规则
- 通道覆盖规则
- 租户-通道覆盖规则
- 协议切换样本(
SFTP -> FTP或FTP -> SFTP) - 非法模板变量样本(例如
{unknown}) - 已落库批次配置切换回归样本
要求:
- 目录分化至少覆盖
send/back/reconcile/archive/localTemp - 变量仅使用固定白名单
- 准备 1 组缺失连接信息样本用于失败验证
4. 执行 backend 验证
最少验证以下场景:
- 默认规则命中:无覆盖时使用默认协议与目录
- 租户覆盖命中:租户覆盖仅影响本租户
- 通道覆盖命中:通道覆盖优先于默认
- 租户-通道覆盖命中:最具体规则优先
- 字段级回退:仅覆盖
sendDir时,其余阶段回退上一级 - 协议切换:同一业务动作切换协议后不改业务拼路径代码
- 配置缺失失败:缺协议、缺 host、缺目录时立即阻断
- 非法变量失败:目录模板命中未声明变量时立即阻断
- 已落库批次不漂移:送盘后切换配置,再处理同批次回盘时仍沿用批次已固化目录
5. 执行文档校验
make validate-file FILE=docs/design/02_Detailed_Design/12_REV_Detailed.md
make validate-file FILE=docs/design/03_Technical_Design/03_Interface_Design.md
make validate-file FILE=docs/design/03_Technical_Design/04_Security_Design.md
make validate-file FILE=docs/design/03_Technical_Design/05_Deployment_Design.md
make validate-file FILE=docs/design/00_Management/01_Project_Progress.md
make validate-file FILE=docs/design/00_Management/03_Task_Checklist.md
make check-links
6. 执行 backend 最小验证
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 test
6.1 执行 Docker 文件通道 Smoke
启动 Docker 测试环境:
docker compose -f infra/docker/bank-transfer-test/compose.yaml up -d
执行 Java SFTP smoke:
mvn -f /Volumes/Dpan/github/water-workspace/water-backend/sw-business-bank/sw-business-bank-server/pom.xml \
-DincludeScope=runtime dependency:build-classpath \
-Dmdep.outputFile=/tmp/sw-business-bank-server.cp
java -cp "$(cat /tmp/sw-business-bank-server.cp):/Volumes/Dpan/github/water-workspace/water-backend/sw-business-bank/sw-business-bank-server/target/classes" \
cn.com.emsoft.sw.bankbusiness.tools.BankTransferSftpSmokeCli \
--local-file /Volumes/Dpan/github/water-workspace/water-docs/infra/docker/bank-transfer-test/tmp/sample.txt \
--host 127.0.0.1 \
--port 2222 \
--username demo \
--password demo123 \
--send-dir /upload/{companyId} \
--company-id C001 \
--channel-code 00001 \
--batch-no SMOKE010 \
--business-date 2026-03-24 \
--remote-file-name smoke-cli-sample.txt
执行 Java FTP smoke:
java -cp "$(cat /tmp/sw-business-bank-server.cp):/Volumes/Dpan/github/water-workspace/water-backend/sw-business-bank/sw-business-bank-server/target/classes" \
cn.com.emsoft.sw.bankbusiness.tools.BankTransferFtpSmokeCli \
--local-file /Volumes/Dpan/github/water-workspace/water-docs/infra/docker/bank-transfer-test/tmp/sample.txt \
--host 127.0.0.1 \
--port 2121 \
--username demo \
--password demo123 \
--send-dir {companyId} \
--company-id C001 \
--channel-code 00001 \
--batch-no SMOKE010FTP \
--business-date 2026-03-24 \
--remote-file-name smoke-cli-ftp-sample.txt
当前已验证结论:
- SFTP roundtrip 通过
- FTP roundtrip 通过
- 上传后再下载的样本 SHA256 一致
7. 汇总验证工件
baseline.mdbackend-validation.mddocs-validation.mdfinal-verdict.md
8. 通过标准
- 五类核心验证场景全部有证据
- 文档校验通过
- backend 编译通过
- 正式文档与验证结论一致
- 台账已同步