# T2 任务简报:Onboarding 实体、Repository 与评价聚合查询 ## Where This Fits - Wave: W1 - Depends on: T1 - Contract: `changes/n04-onboard/execution-contract.md` - Design: `changes/n04-onboard/design.md` 的 Architecture、Data Model、Decisions ## Objective 在 V38/V39 表结构之上新增实体、Repository 和公司评价聚合查询,先写持久化失败测试,再实现最小映射。 ## Files In Scope - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/OnboardingChecklistItem.java` - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/StudentOnboardingProgress.java` - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/CompanyKnowledge.java` - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/OnboardingChecklistItemRepository.java` - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/StudentOnboardingProgressRepository.java` - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/CompanyKnowledgeRepository.java` - 必要时只读扩展 `mydreamjob-server/src/main/java/com/mydreamjob/review/JobReviewRepository.java` 和 `JobReviewDimensionScoreRepository.java` 的公司级聚合查询。 - `mydreamjob-server/src/test/java/com/mydreamjob/onboarding/OnboardingRepositoryIntegrationTest.java` ## Required Behavior - `OnboardingChecklistItem` 映射 `onboarding_checklist_items`,含 `scopeType`、`scopeId`、`companyId`、`itemKey`、title、description、category、sortOrder、required、active、idempotencyKey、requestHash、version、审计时间。 - `StudentOnboardingProgress` 映射 `student_onboarding_progress`,含 studentUserId、itemId、completed、completedAt、version、审计时间。 - `CompanyKnowledge` 映射 `company_knowledge`,含 companyId、culture、workPolicies、onboardingGuide、version、审计时间。 - 清单 Repository 支持按 `companyId` 查询活动通用项+活动企业项,并按 `sortOrder ASC, id ASC` 稳定排序。 - 进度 Repository 支持按学生和多个 itemId 批量读取,并按学生+条目唯一查询。 - 知识 Repository 支持按 companyId 查询。 - 评价聚合查询支持公司下全部 `PUBLISHED` 且 `AUTO_APPROVED/APPROVED` 的评价评分分布、tags 原始列和八维汇总;不得逐岗位或逐评价产生 N+1。 ## TDD Requirement 1. 先写 `OnboardingRepositoryIntegrationTest`,确认新实体/Repository 不存在或查询失败。 2. 再实现最小实体和 Repository 使测试通过。 3. 不创建 Service、Controller、DTO 或业务状态机。 ## Evidence Commands ```powershell cd D:\1\zhi\zhilai\mydreamjob-server mvn -Dtest=OnboardingRepositoryIntegrationTest test ``` ## Done Definition - 新实体与三张表映射通过 Hibernate `ddl-auto=validate`。 - 合并查询只返回活动通用项和当前企业活动项。 - 多学生、多企业、软删除项和排序测试通过。 - 公司评分/tags/八维聚合仅统计公开评价。