Files
ccdi/docs/tests/records/2026-03-24-special-check-extended-query-backend-verification.md

41 lines
2.0 KiB
Markdown
Raw Normal View History

# 2026-03-24 专项核查拓展查询后端验证记录
## 执行命令
```bash
mvn test -pl ccdi-project -Dtest=CcdiProjectSpecialCheckExtendedQueryContractTest,CcdiProjectSpecialCheckExtendedPurchaseSqlTest,CcdiProjectSpecialCheckExtendedRecruitmentSqlTest,CcdiProjectSpecialCheckExtendedTransferSqlTest,CcdiProjectSpecialCheckExtendedQueryServiceImplTest
```
```bash
mvn test -pl ccdi-project
```
## 执行结果
- 聚焦专项核查拓展查询测试通过,`Tests run: 11, Failures: 0, Errors: 0, Skipped: 0`
- `ccdi-project` 模块全量测试通过,`Tests run: 178, Failures: 0, Errors: 0, Skipped: 0`
## 项目范围口径检查
- 未发现与 `projectEmployeeScopeSql` 项目员工范围口径相关的偏差
- 采购、招聘、调动 3 个主题的列表与详情 SQL 都锁定了项目范围归属条件
- 服务层已统一校验项目存在性,并在详情不归属项目范围时返回统一业务错误
## 失败与既有问题说明
- 本次验证未出现失败
- 模块全量测试存在若干业务日志与 Mockito 动态 agent 警告,但不影响测试通过,且不属于本次改动引入的问题
## 追加修复记录
- 2026-03-24 晚间追加修复了拓展查询列表 SQL 的 `projectId` 绑定问题
- 根因是 `projectEmployeeScopeSql` 依赖 `#{projectId}`,而采购、招聘、调动 3 个列表查询实际通过 `@Param("query")` 传参,运行期顶层参数表中不存在直接可用的 `projectId`
- 修复方式是在 `selectExtendedPurchasePage``selectExtendedRecruitmentPage``selectExtendedTransferPage` 中统一增加 `<bind name="projectId" value="query.projectId"/>`
- 追加验证命令:
```bash
mvn test -pl ccdi-project -Dtest=CcdiProjectSpecialCheckExtendedQueryContractTest,CcdiProjectSpecialCheckExtendedPurchaseSqlTest,CcdiProjectSpecialCheckExtendedRecruitmentSqlTest,CcdiProjectSpecialCheckExtendedTransferSqlTest,CcdiProjectSpecialCheckExtendedQueryServiceImplTest,CcdiProjectSpecialCheckControllerTest
```
- 追加验证结果:`Tests run: 16, Failures: 0, Errors: 0, Skipped: 0`