Files
ccdi/docs/plans/backend/2026-04-22-staff-recruitment-collation-fix-backend-implementation.md

32 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 员工招聘列表排序规则冲突修复实施计划
## 保存路径确认
- 路径:`docs/plans/backend/2026-04-22-staff-recruitment-collation-fix-backend-implementation.md`
- 归类:后端实施计划
## 背景
- 员工招聘列表查询执行 `ccdi_staff_recruitment``ccdi_staff_recruitment_work``recruit_id` 关联时,报错 `Illegal mix of collations (utf8mb4_0900_ai_ci) and (utf8mb4_general_ci)`
- 现有招聘主表已被纳入全库统一排序规则脚本,但历史工作经历子表在建表时未显式声明 `utf8mb4_general_ci`,且未被纳入统一修复脚本,导致在 MySQL 8 环境中可能沿用默认 `utf8mb4_0900_ai_ci`
## 实施范围
- 后端 MyBatis 查询 XML
- 招聘相关 SQL 建表脚本
- 数据库增量迁移脚本
## 实施步骤
1. 修改招聘列表查询 SQL`ccdi_staff_recruitment_work.recruit_id` 聚合与关联时显式使用 `utf8mb4_general_ci`,先恢复查询可用性。
2. 修正 `2026-04-15-add-staff-recruitment-social-work-summary.sql`,为 `ccdi_staff_recruitment_work` 建表语句补齐 `COLLATE=utf8mb4_general_ci`
3. 补充增量脚本,将现有库中的 `ccdi_staff_recruitment_work` 转换为 `utf8mb4_general_ci`
4. 更新全库统一排序规则脚本,将该表纳入统一修复范围,避免后续漏执行。
5. 编译受影响模块,确认 Mapper XML 与资源装配正常。
## 验证要点
- `selectRecruitmentPage` 查询不再因 `recruit_id` 关联报排序规则冲突。
- `ccdi_staff_recruitment_work` 表级与字符字段排序规则统一为 `utf8mb4_general_ci`
- `mvn -pl ccdi-info-collection -am compile` 通过。