更新心理健康模块配置和前端依赖

This commit is contained in:
李旭明 committed 2025-08-04 11:04:00 +08:00
1 parent 593aa01a70
commit 7ad62a88c4
120 files changed
+19796 -82

No files matched your search

@@ -0,0 +1,234 @@
# 心理健康系统-心理咨询预约功能需求说明(xljk_consultation)
## 1. 项目定位
- **一级模块**:心理健康系统(Mental Health System)
- **二级功能**:心理咨询预约(Consultation Appointment)
- **功能标识前缀**:xljk_consultation
- **其他二级功能举例**:心理健康测评(xljk_evaluation)、心理危机干预等
## 2. 主要功能
### 2.1 预约时段管理(心理健康管理员)
- 设置咨询师工作日历(可选上午/下午、时间段、最大预约数、状态)
- 支持批量配置、复制、日历/表格视图
### 2.2 预约申请与处理
- 学生自主预约
- 咨询师处理预约(确认/拒绝/记录到访情况/填写咨询内容)
- 预约三次不到自动限制
### 2.3 咨询记录管理
- 咨询师填写沟通时长、内容
- 历史记录可查
### 2.4 统计与报表
- 按学期统计预约数、到访数、到访率、沟通时长
- 支持班级、专业等维度
### 2.5 角色权限
- 管理员:配置时段、管理咨询师、查阅统计
- 咨询师:处理预约、填写记录、查阅统计
- 班主任:查阅本班学生预约情况
- 学生:自主预约、查阅个人记录
## 3. 数据结构设计(表名全部以xljk_consultation_为前缀)
### 3.1 咨询师表(xljk_consultation_counselor)
| 字段名 | 类型 | 说明 |
| -------------- | ------------ | ------------ |
| id | bigint(20) NOT NULL | 主键ID |
| tenant_id | varchar(20) NOT NULL DEFAULT '000000' | 租户编号 |
| create_dept | bigint(20) DEFAULT NULL | 创建部门 |
| create_by | bigint(20) DEFAULT NULL | 创建者 |
| create_time | datetime DEFAULT NULL | 创建时间 |
| update_by | bigint(20) DEFAULT NULL | 更新者 |
| update_time | datetime DEFAULT NULL | 更新时间 |
| deleted | tinyint(1) DEFAULT 0 | 删除标志(0代表存在 1代表删除) |
| name | varchar(50) | 咨询师姓名 |
| work_no | varchar(20) | 工号 |
| title | varchar(50) | 职称 |
| specialty | varchar(255) | 专长领域 |
| introduction | text | 简介 |
| status | char(1) | 状态(0正常 1停用)|
### 3.2 预约时段表(xljk_consultation_schedule)
| 字段名 | 类型 | 说明 |
| ------------------ | ------------ | ------------ |
| id | bigint(20) NOT NULL | 主键ID |
| tenant_id | varchar(20) NOT NULL DEFAULT '000000' | 租户编号 |
| create_dept | bigint(20) DEFAULT NULL | 创建部门 |
| create_by | bigint(20) DEFAULT NULL | 创建者 |
| create_time | datetime DEFAULT NULL | 创建时间 |
| update_by | bigint(20) DEFAULT NULL | 更新者 |
| update_time | datetime DEFAULT NULL | 更新时间 |
| deleted | tinyint(1) DEFAULT 0 | 删除标志(0代表存在 1代表删除) |
| counselor_id | bigint(20) | 咨询师ID |
| schedule_date | date | 日期 |
| morning_enabled | tinyint(1) | 上午启用 |
| morning_start_time | time | 上午开始 |
| morning_end_time | time | 上午结束 |
| afternoon_enabled | tinyint(1) | 下午启用 |
| afternoon_start_time| time | 下午开始 |
| afternoon_end_time | time | 下午结束 |
| max_appointments | int | 最大预约数 |
| current_appointments| int | 当前预约数 |
| status | char(1) | 0可预约 1已满 2停用 |
### 3.3 预约记录表(xljk_consultation_appointment)
| 字段名 | 类型 | 说明 |
| ------------------ | ------------ | ------------ |
| id | bigint(20) NOT NULL | 主键ID |
| tenant_id | varchar(20) NOT NULL DEFAULT '000000' | 租户编号 |
| create_dept | bigint(20) DEFAULT NULL | 创建部门 |
| create_by | bigint(20) DEFAULT NULL | 创建者 |
| create_time | datetime DEFAULT NULL | 创建时间 |
| update_by | bigint(20) DEFAULT NULL | 更新者 |
| update_time | datetime DEFAULT NULL | 更新时间 |
| deleted | tinyint(1) DEFAULT 0 | 删除标志(0代表存在 1代表删除) |
| student_id | bigint(20) | 学生ID |
| student_name | varchar(50) | 学生姓名 |
| student_no | varchar(20) | 学号 |
| phone | varchar(20) | 手机号 |
| major | varchar(100) | 专业 |
| class_name | varchar(50) | 班级 |
| counselor_id | bigint(20) | 咨询师ID |
| schedule_id | bigint(20) | 预约时段ID |
| appointment_date | date | 预约日期 |
| time_slot | char(1) | 0上午 1下午 |
| status | char(1) | 0待处理 1已确认 2已完成 3已取消 4未到访 |
| apply_time | datetime | 申请时间 |
| process_time | datetime | 处理时间 |
| process_remark | varchar(500) | 处理备注 |
### 3.4 咨询记录表(xljk_consultation_record)
| 字段名 | 类型 | 说明 |
| ------------------ | ------------ | ------------ |
| id | bigint(20) NOT NULL | 主键ID |
| tenant_id | varchar(20) NOT NULL DEFAULT '000000' | 租户编号 |
| create_dept | bigint(20) DEFAULT NULL | 创建部门 |
| create_by | bigint(20) DEFAULT NULL | 创建者 |
| create_time | datetime DEFAULT NULL | 创建时间 |
| update_by | bigint(20) DEFAULT NULL | 更新者 |
| update_time | datetime DEFAULT NULL | 更新时间 |
| deleted | tinyint(1) DEFAULT 0 | 删除标志(0代表存在 1代表删除) |
| appointment_id | bigint(20) | 预约记录ID |
| visit_status | char(1) | 0正常到访 1未到访 |
| duration | int | 沟通时长(分钟)|
| content | text | 咨询内容 |
### 3.5 未到访记录表(xljk_consultation_no_show)
| 字段名 | 类型 | 说明 |
| ------------------ | ------------ | ------------ |
| id | bigint(20) NOT NULL | 主键ID |
| tenant_id | varchar(20) NOT NULL DEFAULT '000000' | 租户编号 |
| create_dept | bigint(20) DEFAULT NULL | 创建部门 |
| create_by | bigint(20) DEFAULT NULL | 创建者 |
| create_time | datetime DEFAULT NULL | 创建时间 |
| update_by | bigint(20) DEFAULT NULL | 更新者 |
| update_time | datetime DEFAULT NULL | 更新时间 |
| deleted | tinyint(1) DEFAULT 0 | 删除标志(0代表存在 1代表删除) |
| student_id | bigint(20) | 学生ID |
| appointment_id | bigint(20) | 预约记录ID |
| no_show_date | date | 未到访日期 |
| expire_date | date | 限制到期日 |
| status | char(1) | 0生效中 1已过期 2已解除 |
## 4. API设计(全部以/xljk/consultation为前缀)
### 4.1 预约时段管理
- GET `/api/xljk/consultation/schedule/list`
- GET `/api/xljk/consultation/schedule/{id}`
- POST `/api/xljk/consultation/schedule`
- PUT `/api/xljk/consultation/schedule`
- DELETE `/api/xljk/consultation/schedule/{ids}`
- POST `/api/xljk/consultation/schedule/batch`
- POST `/api/xljk/consultation/schedule/copy`
- GET `/api/xljk/consultation/schedule/calendar`
### 4.2 预约管理
- GET `/api/xljk/consultation/appointment/list`
- GET `/api/xljk/consultation/appointment/{id}`
- POST `/api/xljk/consultation/appointment/apply`
- POST `/api/xljk/consultation/appointment/process`
- POST `/api/xljk/consultation/appointment/record`
- GET `/api/xljk/consultation/appointment/record/{appointmentId}`
- POST `/api/xljk/consultation/appointment/cancel`
- GET `/api/xljk/consultation/appointment/student`
### 4.3 咨询师管理
- GET `/api/xljk/consultation/counselor/list`
- GET `/api/xljk/consultation/counselor/{id}`
- POST `/api/xljk/consultation/counselor`
- PUT `/api/xljk/consultation/counselor`
- DELETE `/api/xljk/consultation/counselor/{ids}`
### 4.4 统计与报表
- GET `/api/xljk/consultation/statistics/overview`
- GET `/api/xljk/consultation/statistics/by-class`
- GET `/api/xljk/consultation/statistics/by-major`
- GET `/api/xljk/consultation/statistics/by-semester`
### 4.5 预约限制管理
- GET `/api/xljk/consultation/no-show/list` # 查询未到访记录列表
- GET `/api/xljk/consultation/no-show/{id}` # 获取未到访记录详情
- PUT `/api/xljk/consultation/no-show/{id}/release` # 解除预约限制
- GET `/api/xljk/consultation/no-show/check-limitation` # 检查学生是否被限制预约
## 5. 权限标识建议
- `xljk:consultation:schedule:list`
- `xljk:consultation:appointment:apply`
- `xljk:consultation:appointment:process`
- `xljk:consultation:appointment:record`
- `xljk:consultation:counselor:list`
- `xljk:consultation:statistics:view`
- `xljk:consultation:noshow:list` # 查看未到访记录列表
- `xljk:consultation:noshow:query` # 查看未到访记录详情
- `xljk:consultation:noshow:release` # 解除预约限制
## 6. 业务流程
### 6.1 预约流程
1. 管理员设置预约时段
2. 学生发起预约申请
3. 咨询师处理预约申请(确认/拒绝)
4. 系统通知学生预约结果
### 6.2 咨询流程
1. 学生按预约时间到访
2. 咨询师进行咨询
3. 咨询师记录咨询情况(到访情况、沟通时长、咨询内容)
4. 系统更新预约状态为"已完成"
### 6.3 未到访处理流程
1. 学生未按预约时间到访
2. 咨询师记录为"未到访"
3. 系统在`xljk_consultation_no_show`表中创建未到访记录
4. 系统检查30天内学生未到访次数
5. 如达到三次未到访,系统自动限制7天内不能预约(从最后一次未到访日期算起,不含当天)
6. 限制期间学生尝试预约时,系统提示预约受限及解除日期
### 6.4 预约限制解除流程
1. **自动解除**:
- 系统定期检查限制记录
- 限制期满7天后,自动将状态更新为"已过期(1)"
- 状态更新后,学生可以正常预约
2. **手动解除**:
- 心理健康管理员可通过"预约限制解除"菜单查看限制记录
- 管理员可手动解除限制,将状态更改为"已解除(2)"
- 手动解除后,学生立即可以正常预约
3. **限制状态说明**:
- "生效中(0)":限制当前有效,学生无法预约
- "已过期(1)":限制已自动到期,学生可以预约
- "已解除(2)":限制被管理员手动解除,学生可以预约
## 7. 其他说明
- 咨询内容属于高度敏感信息,需要特别注意保密
- 预约规则可能需要根据实际情况进行调整
- 当前仅支持一位咨询师,后续可扩展多咨询师
- 所有表均包含基础字段(创建者、创建时间、更新者、更新时间、逻辑删除、租户ID)
- 预约限制功能中,30天内累计三次未到访的计算以`no_show_date`字段为准
- 预约限制到期日计算公式:`expire_date = no_show_date + 7天`(不包含未到访当天)
- 预约限制解除页面仅显示有限制的记录(即`status`有值的记录)