修正专项核查拓展查询项目参数绑定

This commit is contained in:
wkc
2026-03-24 23:38:06 +08:00
parent 1770d304e5
commit 98430b4c8d
5 changed files with 19 additions and 0 deletions

View File

@@ -491,6 +491,7 @@
</select>
<select id="selectExtendedPurchasePage" resultMap="ExtendedPurchaseListItemResultMap">
<bind name="projectId" value="query.projectId"/>
select
p.purchase_id,
p.project_name,
@@ -574,6 +575,7 @@
</select>
<select id="selectExtendedRecruitmentPage" resultMap="ExtendedRecruitmentListItemResultMap">
<bind name="projectId" value="query.projectId"/>
select distinct r.recruit_id,
r.recruit_name,
r.pos_name,
@@ -644,6 +646,7 @@
</select>
<select id="selectExtendedTransferPage" resultMap="ExtendedTransferListItemResultMap">
<bind name="projectId" value="query.projectId"/>
select
t.id,
s.name as staff_name,

View File

@@ -26,6 +26,7 @@ class CcdiProjectSpecialCheckExtendedPurchaseSqlTest {
String detailSql = extractSelect(xml, "selectExtendedPurchaseDetail");
assertTrue(listSql.contains("projectEmployeeScopeSql"));
assertTrue(listSql.contains("name=\"projectId\" value=\"query.projectId\""));
assertTrue(listSql.contains("select distinct scope.staff_name"));
assertTrue(listSql.contains("applicant_name"));
assertTrue(listSql.contains("apply_date"));

View File

@@ -26,6 +26,7 @@ class CcdiProjectSpecialCheckExtendedRecruitmentSqlTest {
String detailSql = extractSelect(xml, "selectExtendedRecruitmentDetail");
assertTrue(listSql.contains("projectEmployeeScopeSql"));
assertTrue(listSql.contains("name=\"projectId\" value=\"query.projectId\""));
assertTrue(listSql.contains("select distinct r.recruit_id"));
assertTrue(listSql.contains("interviewer_name1"));
assertTrue(listSql.contains("interviewer_name2"));

View File

@@ -26,6 +26,7 @@ class CcdiProjectSpecialCheckExtendedTransferSqlTest {
String detailSql = extractSelect(xml, "selectExtendedTransferDetail");
assertTrue(listSql.contains("projectEmployeeScopeSql"));
assertTrue(listSql.contains("name=\"projectId\" value=\"query.projectId\""));
assertTrue(listSql.contains("ccdi_staff_transfer t"));
assertTrue(listSql.contains("ccdi_base_staff s"));
assertTrue(listSql.contains("scope.staff_name = s.name"));

View File

@@ -25,3 +25,16 @@ mvn test -pl ccdi-project
- 本次验证未出现失败
- 模块全量测试存在若干业务日志与 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`