Files
hzdyjs/docs/需求文档/心理测评需求/心理健康测评系统设计说明.md
2025-07-24 10:18:35 +08:00

9.2 KiB

心理健康测评系统设计说明

设计目标

设计一个简单实用的心理健康测评系统,由班主任为班级学生进行心理健康状况评估,并记录重点关注的学生,为学校心理健康管理提供有效支持。

数据表设计

1. 心理健康测评表 (xljk_evaluation)

主要功能: 管理班级心理健康测评的基本信息

字段说明:

  • 标准字段: 按要求包含 id、tenant_id、create_by、create_time、update_by、update_time、deleted
  • 业务字段:
    • evaluation_name: 测评名称
    • major_id: 专业ID
    • major_name: 专业名称
    • class_id: 班级ID
    • class_name: 班级名称
    • semester: 学期(如2024上学期)
    • status: 状态(0-草稿,1-已发布,2-已完成)
    • create_name: 创建者姓名(班主任姓名)
    • remark: 备注

2. 心理健康测评明细表 (xljk_evaluation_detail)

主要功能: 记录每个学生的心理健康评估结果

字段说明:

  • 标准字段: 按要求包含 id、tenant_id、create_by、create_time、update_by、update_time、deleted
  • 学生信息:
    • evaluation_id: 关联测评表ID
    • student_id: 学生ID
    • student_no: 学号
    • student_name: 学生姓名
    • gender: 性别(0-男,1-女,2-未知)
    • birth_date: 出生日期
    • phone: 联系电话
  • 评估信息:
    • mental_status: 心理状态(1-健康,2-良好,3-重点关注)
    • score: 分数(仅重点关注时填写)
    • remark: 备注

核心功能流程

1. 测评创建

  • 班主任创建新测评表
  • 选择专业、班级、学年(如2024上学期)
  • 系统自动加载该班级学生信息(专业、班级、学号、姓名、性别、出生日期、联系电话)
  • 初始状态为"草稿"

2. 测评填写

  • 班主任为每个学生选择心理状态:健康、良好、重点关注
  • 选择"重点关注"时,需要填写分数
  • 无固定分数标准,重点关注由班主任自行判断
  • 可保存为草稿,随时继续编辑

3. 测评提交

  • 班主任确认所有学生评估完成后提交
  • 提交后状态改为"已完成"
  • 提交后保存历史测评记录
  • 无需流转审批

4. 测评统计

  • 统计重点关注学生数量和比例
  • 生成重点关注学生名单
  • 支持按学期、专业、班级查看统计数据

设计特点

简化原则

  • 无固定测评周期,由班主任自行发起测评
  • 测评直接提交完成,无需流转审批
  • 重点关注无固定分数标准,由班主任自行判断

数据关联

  • 测评明细表通过 evaluation_id 关联测评主表
  • 学生信息从学生信息管理模块同步获取
  • 保存历史测评记录,支持趋势分析

数据完整性

  • 使用雪花ID作为主键,保证唯一性
  • 外键约束确保测评明细表与测评表的关联
  • 必填字段设置 NOT NULL 约束
  • 合理的索引设计提高查询效率

角色权限

班主任

  • 创建和填写心理健康测评表
  • 查看本班学生的心理测评历史记录
  • 查看本班学生的心理咨询预约情况

心理健康管理员

  • 查看所有班级的测评统计数据
  • 查看重点关注学生名单
  • 无权修改测评数据

心理咨询师

  • 查看重点关注学生名单
  • 查看学生的测评历史
  • 无权修改测评数据

SQL建表语句

-- 心理健康测评表
CREATE TABLE `xljk_evaluation` (
  `id` bigint(20) NOT NULL COMMENT '主键ID',
  `evaluation_name` varchar(100) NOT NULL COMMENT '测评名称',
  `major_id` bigint(20) NOT NULL COMMENT '专业ID',
  `major_name` varchar(100) NOT NULL COMMENT '专业名称',
  `class_id` bigint(20) NOT NULL COMMENT '班级ID',
  `class_name` varchar(100) NOT NULL COMMENT '班级名称',
  `semester` varchar(50) NOT NULL COMMENT '学期(如2024上学期)',
  `status` char(1) NOT NULL DEFAULT '0' COMMENT '状态(0-草稿,1-已发布,2-已完成)',
  `create_by` bigint(20) NOT NULL COMMENT '创建者ID(班主任ID)',
  `create_name` varchar(50) NOT NULL COMMENT '创建者姓名',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `tenant_id` varchar(20) DEFAULT NULL COMMENT '租户ID',
  `deleted` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0-存在,1-删除)',
  PRIMARY KEY (`id`),
  KEY `idx_class_id` (`class_id`),
  KEY `idx_semester` (`semester`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='心理健康测评表';

-- 心理健康测评明细表
CREATE TABLE `xljk_evaluation_detail` (
  `id` bigint(20) NOT NULL COMMENT '主键ID',
  `evaluation_id` bigint(20) NOT NULL COMMENT '测评表ID',
  `student_id` bigint(20) NOT NULL COMMENT '学生ID',
  `student_no` varchar(50) NOT NULL COMMENT '学号',
  `student_name` varchar(50) NOT NULL COMMENT '学生姓名',
  `gender` char(1) DEFAULT NULL COMMENT '性别(0-男,1-女,2-未知)',
  `birth_date` date DEFAULT NULL COMMENT '出生日期',
  `phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `mental_status` char(1) NOT NULL COMMENT '心理状态(1-健康,2-良好,3-重点关注)',
  `score` int(11) DEFAULT NULL COMMENT '分数(仅重点关注时填写)',
  `create_by` bigint(20) NOT NULL COMMENT '创建者',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `tenant_id` varchar(20) DEFAULT NULL COMMENT '租户ID',
  `deleted` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0-存在,1-删除)',
  PRIMARY KEY (`id`),
  KEY `idx_evaluation_id` (`evaluation_id`),
  KEY `idx_student_id` (`student_id`),
  KEY `idx_mental_status` (`mental_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='心理健康测评明细表';

示例数据

-- 插入测评表示例数据
INSERT INTO `xljk_evaluation` VALUES (1, '2024上学期计算机2301班心理健康测评', 101, '计算机应用技术', 1001, '计算机2301班', '2024上学期', '2', 2001, '张班主任', '2025-01-10 09:00:00', 2001, '2025-01-10 10:30:00', '期末测评', '000000', '0');
INSERT INTO `xljk_evaluation` VALUES (2, '2024上学期电子2302班心理健康测评', 102, '电子商务', 1002, '电子2302班', '2024上学期', '0', 2002, '李班主任', '2025-01-11 14:00:00', 2002, '2025-01-11 14:30:00', '期末测评草稿', '000000', '0');
INSERT INTO `xljk_evaluation` VALUES (3, '2023下学期计算机2301班心理健康测评', 101, '计算机应用技术', 1001, '计算机2301班', '2023下学期', '2', 2001, '张班主任', '2024-12-15 09:00:00', 2001, '2024-12-15 11:00:00', '期末测评', '000000', '0');

-- 插入测评明细示例数据
INSERT INTO `xljk_evaluation_detail` VALUES (101, 1, 10001, '2024001', '张三', '0', '2005-06-15', '13800138001', '1', NULL, 2001, '2025-01-10 09:10:00', 2001, '2025-01-10 09:10:00', NULL, '000000', '0');
INSERT INTO `xljk_evaluation_detail` VALUES (102, 1, 10002, '2024002', '李四', '0', '2005-03-22', '13800138002', '2', NULL, 2001, '2025-01-10 09:15:00', 2001, '2025-01-10 09:15:00', NULL, '000000', '0');
INSERT INTO `xljk_evaluation_detail` VALUES (103, 1, 10003, '2024003', '王五', '0', '2005-09-10', '13800138003', '3', 75, 2001, '2025-01-10 09:20:00', 2001, '2025-01-10 09:20:00', '近期学习压力大,需要关注', '000000', '0');
INSERT INTO `xljk_evaluation_detail` VALUES (104, 1, 10004, '2024004', '赵六', '1', '2005-11-05', '13800138004', '1', NULL, 2001, '2025-01-10 09:25:00', 2001, '2025-01-10 09:25:00', NULL, '000000', '0');
INSERT INTO `xljk_evaluation_detail` VALUES (105, 1, 10005, '2024005', '钱七', '1', '2005-07-20', '13800138005', '3', 80, 2001, '2025-01-10 09:30:00', 2001, '2025-01-10 09:30:00', '家庭情况特殊,需要关注', '000000', '0');

-- 插入第三个测评的明细示例数据
INSERT INTO `xljk_evaluation_detail` VALUES (201, 3, 10001, '2024001', '张三', '0', '2005-06-15', '13800138001', '1', NULL, 2001, '2024-12-15 09:10:00', 2001, '2024-12-15 09:10:00', NULL, '000000', '0');
INSERT INTO `xljk_evaluation_detail` VALUES (202, 3, 10002, '2024002', '李四', '0', '2005-03-22', '13800138002', '1', NULL, 2001, '2024-12-15 09:15:00', 2001, '2024-12-15 09:15:00', NULL, '000000', '0');
INSERT INTO `xljk_evaluation_detail` VALUES (203, 3, 10003, '2024003', '王五', '0', '2005-09-10', '13800138003', '3', 70, 2001, '2024-12-15 09:20:00', 2001, '2024-12-15 09:20:00', '期末考试压力大', '000000', '0');
INSERT INTO `xljk_evaluation_detail` VALUES (204, 3, 10004, '2024004', '赵六', '1', '2005-11-05', '13800138004', '2', NULL, 2001, '2024-12-15 09:25:00', 2001, '2024-12-15 09:25:00', NULL, '000000', '0');
INSERT INTO `xljk_evaluation_detail` VALUES (205, 3, 10005, '2024005', '钱七', '1', '2005-07-20', '13800138005', '3', 85, 2001, '2024-12-15 09:30:00', 2001, '2024-12-15 09:30:00', '家庭情况特殊,需要关注', '000000', '0');

使用说明

  1. 执行上述SQL脚本创建数据表和示例数据
  2. 系统会从学生信息管理模块同步学生基础信息
  3. 班主任可以根据需要随时发起心理健康测评
  4. 测评完成后,可以查看重点关注学生名单和统计数据