# 学生基本信息 — 教务对接说明 ## 接口 | 项目 | 说明 | |------|------| | 路径 | `GET /api/v1/students` | | 鉴权 | Header `X-Jw-Cx-Key` | | 数据范围 | 全部 `xg_student_msg.deleted = 0` 的学生,**分页返回** | | 视图 DDL | `docs/设计文档/database/vw_jw_student_export.sql` | | 服务代码 | `跟教务系统同步学生异动信息/api_service/app.py`(与异动接口同进程) | ## 字段口径(已确认) | 教务字段 | 口径 | |----------|------| | 身份证件类型 | 有 `id_card` →「居民身份证」,否则 `null` | | 所在校区 | 学生 `class_id` → `xg_class_msg.campus_id` → `xg_dorm_campus.campus_name`,再回退班级冗余 `campus_name`;无班级或未设置时为 `null` | | 班主任工号 | `class_teacher_id` → `sys_user.user_no`,空则 `user_name` | | 学生是否在校 | 默认「在校」;学籍状态为 **退学(4)、毕业(5)** →「不在校」 | | 异动类型 | 固定 `null` | | 毕业时间 | 年份整数。已毕业(5):取 `BI_YE` 已处理异动的 `effective_date` 年份;否则 `入学年份 + 学制`(或班级 `graduation_year`) | | 毕业学年学期 | `{毕业年-1}-{毕业年}-2`,例如 `2025-2026-2`;无法推算则为 `null` | | 学习经历 / 何年何月-何年何月 / 在何地学习 | 固定 `null` | | 在校照片 | 固定 `null` | | 性别 | `0`→「男」,`1`→「女」 | | 成员1 | 父亲姓名/关系「父亲」/ `father_phone` | | 成员2 | 母亲姓名/关系「母亲」/ `mother_phone` | | 培养层次 | 班级 `xg_class_msg.class_type` 字典值(`zsjy_education_level`),**非中文名称** | | 系部信息 | 优先 `college_id` → `sys_dept.dept_name`(学生表,其次班级表),再回退冗余 `college_name` | | 专业信息 | 优先 `major_id` → `sys_dept.dept_name`(学生表,其次班级表),再回退冗余 `major_name` | | 班级信息 | `class_id` → `xg_class_msg.class_name`(优先班级表,再回退学生表冗余字段) | ## 培养层次字典值(`zsjy_education_level`) | 字典值 | 中文名称 | |--------|----------| | 0 | 三年制中级技工 | | 1 | 三年制技师 | | 2 | 四年制高级工 | | 3 | 五年制高级技工 | | 4 | 六年制技师 | | 5 | 中高职一体 | ## 学生当前状态映射(本系统 → 教务中文名) | 本系统 `student_status` | 本系统标签 | 接口输出(教务中文名) | |-------------------------|------------|------------------------| | 1 | 在读 | 在读 | | 2 | 休学 | 休学 | | 3 | 复学 | 复学 | | 4 | 退学 | 退学 | | 5 | 毕业 | 毕业 | | 6 | 不在籍 | 其他 | | 7 | 结业 | 结业 | | 8 | 停学 | 停学 | | 9 | 分流 | 其他 | 教务附件2 字典值(供联调参考,接口当前输出**中文名称**): | 教务状态名称 | 字典值 | |--------------|--------| | 在读 | XSDQZT016 | | 休学 | XSDQZT015 | | 退学 | XSDQZT014 | | 停学 | XSDQZT013 | | 复学 | XSDQZT012 | | 毕业 | XSDQZT010 | | 结业 | XSDQZT009 | | 其他 | XSDQZT007 | ## 部署 ```bash # 1. 建视图 mysql -h -u root -p hzdyjs_xg < docs/设计文档/database/vw_jw_student_export.sql # 2. 重启 API(与异动接口相同进程) export JW_CX_CONFIG=/path/to/config.prod.ini python app.py # 3. 调用示例 curl -s -H "X-Jw-Cx-Key: JWCX001" \ "http://127.0.0.1:5050/api/v1/students?page=1&page_size=500" ``` 响应含 `total`(总条数)、`page`、`page_size`、`total_pages`,教务可按页循环直至 `page >= total_pages`。 ## 与异动接口关系 - 异动接口:`/api/v1/student-changes?year=2026`(按异动生效年份) - 学生基本信息:`/api/v1/students?page=1&page_size=500`(分页,含 total / total_pages) - 毕业时间在学生接口中仍可使用;**毕业记录不再通过异动接口同步**(异动接口已排除 `BI_YE`)