Files
hzdyjs/backend/ruoyi-modules/ruoyi-bzrkh/班主任考核提交功能开发说明.md
T

9.0 KiB
Raw Blame History

班主任考核提交功能开发说明

功能概述

完善了班主任考核管理界面中的"提交考核"按钮功能,实现了完整的考核评分提交流程。

开发内容

前端部分(Vue 3 + TypeScript + Element Plus)

1. API类型定义扩展

文件位置: web/src/api/bzrkh/teacherAssessment/types.ts

新增类型定义:

  • ClassDetailVO - 班级详细信息
  • CoefficientVO - 系数信息
  • AssessmentIndicatorVO - 考核指标信息
  • SpecialWorkIndicatorVO - 特色工作指标
  • AssessmentSubmitVO - 考核提交数据
  • AssessmentDetailVO - 考核详情数据

2. API接口扩展

文件位置: web/src/api/bzrkh/teacherAssessment/index.ts

新增接口:

  • getAssessmentSubmitDetail() - 获取考核提交详情数据
  • submitAssessmentScore() - 提交考核评分数据

3. 提交弹窗组件

文件位置: web/src/views/bzrkh/teacherAssessment/submitDialog.vue

功能特性:

  • 9张卡片式布局:班级信息、人数系数、住校生系数、层次系数、总系数、班主任常规工作、班级管理实效、特色工作、月考核得分
  • 自动系数计算:根据班级人数、住校生人数、班级层次自动计算各项系数
  • 动态评分:支持自评分数输入和自评意见填写
  • 实时计算:月考核得分根据公式自动计算
  • 数据验证:表单验证确保数据完整性

4. 主界面集成

文件位置: web/src/views/bzrkh/teacherAssessment/index.vue

集成内容:

  • 引入提交弹窗组件
  • 修改提交考核按钮逻辑
  • 添加成功回调处理

后端部分(Spring Boot 3.4.6 + MyBatis-Plus)

1. VO类创建

文件位置: backend/ruoyi-modules/ruoyi-bzrkh/src/main/java/org/dromara/bzrkh/domain/vo/

新增VO类:

  • ClassDetailVo.java - 班级详细信息视图对象
  • CoefficientVo.java - 系数信息视图对象
  • AssessmentIndicatorScoreVo.java - 考核指标评分视图对象
  • SpecialWorkIndicatorVo.java - 特色工作指标视图对象
  • AssessmentDetailVo.java - 考核详情视图对象

2. BO类创建

文件位置: backend/ruoyi-modules/ruoyi-bzrkh/src/main/java/org/dromara/bzrkh/domain/bo/

新增BO类:

  • AssessmentSubmitBo.java - 考核提交业务对象

3. Controller扩展

文件位置: backend/ruoyi-modules/ruoyi-bzrkh/src/main/java/org/dromara/bzrkh/controller/TeacherAssessmentController.java

新增接口:

  • getAssessmentSubmitDetail() - 获取考核提交详情数据
  • submitAssessmentScore() - 提交考核评分数据

4. Service接口和实现扩展

文件位置:

  • backend/ruoyi-modules/ruoyi-bzrkh/src/main/java/org/dromara/bzrkh/service/ITeacherAssessmentService.java
  • backend/ruoyi-modules/ruoyi-bzrkh/src/main/java/org/dromara/bzrkh/service/impl/TeacherAssessmentServiceImpl.java

新增方法:

  • getAssessmentSubmitDetail() - 获取考核提交详情数据
  • submitAssessmentScore() - 提交考核评分数据
  • calculateCoefficient() - 计算系数信息(私有方法)
  • calculateStudentCountCoefficient() - 计算人数系数(私有方法)
  • calculateBoardingCoefficient() - 计算住校生系数(私有方法)
  • calculateLevelCoefficient() - 计算层次系数(私有方法)
  • mergeAssessmentScores() - 合并已保存的评分数据(私有方法)

5. Mapper接口和XML扩展

文件位置:

  • backend/ruoyi-modules/ruoyi-bzrkh/src/main/java/org/dromara/bzrkh/mapper/TeacherAssessmentMapper.java
  • backend/ruoyi-modules/ruoyi-bzrkh/src/main/resources/mapper/bzrkh/TeacherAssessmentMapper.xml

新增方法:

  • selectClassDetail() - 查询班级详细信息
  • selectRoutineWorkIndicators() - 查询班主任常规工作指标列表
  • selectClassDeductionIndicator() - 查询班级扣分指标
  • selectSpecialWorkIndicators() - 查询特色工作指标列表
  • selectSavedAssessmentScores() - 查询已保存的评分数据
  • selectSchemeIdByPlanId() - 根据计划ID查询方案ID
  • selectIndicatorIdByCode() - 根据指标编码查询指标ID
  • deleteAssessmentScoresByPlanAndTeacher() - 逻辑删除评分数据
  • insertAssessmentScore() - 插入评分数据
  • updateAssessmentScoreRemark() - 更新评分数据备注

核心业务逻辑

1. 系数计算规则

人数系数(K2)

  • 班级人数36~40人(含36人),系数为1
  • 超过40人,每增加1名学生,系数增加0.02
  • 少于36人,每减少1名学生,系数减少0.02
  • 本项系数最低0.7

住校生系数(K3)

  • 根据住校生人数,按人均0.005计算

层次系数(K1)

  • 技师班(K1=0.95)
  • 高级工班(K1=1)
  • 中级工班(K1=1.05)
  • 预备技师班(K1=0.95)
  • 中高职一体(K1=1)

总系数(K)

  • 计算公式:K = K1 * (K2 + K3)

2. 月考核得分计算

自评模式(修正后公式)

  • 计算公式:总系数(K)* ((班主任常规工作自评分之和 + 班级扣分项满分值) - 按班级扣分50%计的分值 + 特色工作总分值)
  • 班级扣分项满分值:固定50分(来自指标设置)
  • 修正原因:确保基础分值不受扣分影响,提高计算结果的合理性

审核模式(保持不变)

  • 计算公式:总系数(K)* (班主任常规工作上级评分之和 + 班级管理实效上级评分 + 特色工作上级评分之和)

公式变化对比

  • 修正前:K × (常规工作自评分 - 班级扣分50% + 特色工作总分)
  • 修正后:K × ((常规工作自评分 + 50) - 班级扣分50% + 特色工作总分)
  • 关键变化:新增班级扣分项满分值(50分)确保基础分值

3. 数据存储逻辑

  1. 先逻辑删除该计划下该教师的历史评分数据
  2. 插入班主任常规工作指标评分
  3. 插入班级扣分指标评分
  4. 插入特色工作指标评分(4个固定指标)
  5. 将总体评价存储到备注字段

权限配置

API接口权限

  • bzrkh:teacherAssessment:list - 查看班级和考核计划列表
  • bzrkh:teacherAssessment:detail - 查看考核详情
  • bzrkh:teacherAssessment:submit - 提交考核

详细权限配置请参考:班主任考核提交功能权限配置.md

数据准备

必要的指标数据

系统需要以下5个考核指标才能正常运行:

  1. bzrwjkf001 - 班级扣分
  2. bzrtsgz001 - 及时并妥善处理好学生违纪事件
  3. bzrtsgz002 - 班级活动获奖情况
  4. bzrtsgz003 - 班级宣传工作有特色
  5. bzrtsgz004 - 其他

数据插入脚本:班主任考核提交功能必要数据.sql

部署说明

1. 数据库脚本执行

-- 执行必要数据插入脚本
source 班主任考核提交功能必要数据.sql;

2. 后端编译重启

# 编译ruoyi-bzrkh模块
mvn clean compile -pl ruoyi-modules/ruoyi-bzrkh

# 重启应用服务
# (请根据实际部署方式重启服务)

3. 前端构建

# 前端无需重新构建,代码已支持热更新
# 如需构建:
npm run build:prod

4. 权限配置

  1. 登录系统管理后台
  2. 进入系统管理-菜单管理
  3. 为班主任考核相关菜单配置权限
  4. 为相关角色分配权限

测试验证

1. 基础功能测试

  • 班主任登录系统
  • 查看考核计划列表
  • 点击"提交考核"按钮
  • 弹窗正常显示9张卡片
  • 系数自动计算正确

2. 评分功能测试

  • 班主任常规工作指标可正常输入评分
  • 班级扣分可正常输入,50%计算正确
  • 特色工作4个指标可正常输入评分
  • 月考核得分自动计算正确

3. 数据保存测试

  • 提交评分数据成功
  • 数据正确保存到数据库
  • 再次打开弹窗数据正确回显

技术亮点

  1. 响应式系数计算:前端实时计算各项系数,提供直观的数据展示
  2. 组件化设计:弹窗组件独立封装,便于维护和复用
  3. 数据一致性:采用逻辑删除+重新插入的方式确保数据一致性
  4. 权限控制:完整的权限控制体系,确保数据安全
  5. 用户体验:直观的卡片式布局,清晰的数据展示
  6. 实时人数统计:班级总人数从xg_student_msg表实时统计,确保数据准确性

班级人数统计规则(2025-01-27更新)

班级总人数统计

  • 数据来源: xg_student_msg表
  • 统计条件:
    • class_id = 班级ID
    • student_status = '1'(正常状态)
    • deleted = 0(未逻辑删除)
  • 统计方式: COUNT(1)

住校生人数统计

  • 数据来源: xg_student_msg表
  • 统计条件:
    • class_id = 班级ID
    • student_status = '1'(正常状态)
    • dormitory_room IS NOT NULL AND dormitory_room != ''(有宿舍信息)
    • deleted = 0(未逻辑删除)
  • 统计方式: COUNT(1)

待扩展功能

  1. 学生违规处分信息查看功能
  2. 考核结果审核功能
  3. 考核数据统计分析功能
  4. 考核历史记录查询功能

开发完成时间: 2025-01-27
开发版本: V1.0.0
测试状态: 待测试验证