9.0 KiB
9.0 KiB
班主任考核提交功能开发说明
功能概述
完善了班主任考核管理界面中的"提交考核"按钮功能,实现了完整的考核评分提交流程。
开发内容
前端部分(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.javabackend/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.javabackend/ruoyi-modules/ruoyi-bzrkh/src/main/resources/mapper/bzrkh/TeacherAssessmentMapper.xml
新增方法:
selectClassDetail()- 查询班级详细信息selectRoutineWorkIndicators()- 查询班主任常规工作指标列表selectClassDeductionIndicator()- 查询班级扣分指标selectSpecialWorkIndicators()- 查询特色工作指标列表selectSavedAssessmentScores()- 查询已保存的评分数据selectSchemeIdByPlanId()- 根据计划ID查询方案IDselectIndicatorIdByCode()- 根据指标编码查询指标IDdeleteAssessmentScoresByPlanAndTeacher()- 逻辑删除评分数据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. 数据存储逻辑
- 先逻辑删除该计划下该教师的历史评分数据
- 插入班主任常规工作指标评分
- 插入班级扣分指标评分
- 插入特色工作指标评分(4个固定指标)
- 将总体评价存储到备注字段
权限配置
API接口权限
bzrkh:teacherAssessment:list- 查看班级和考核计划列表bzrkh:teacherAssessment:detail- 查看考核详情bzrkh:teacherAssessment:submit- 提交考核
详细权限配置请参考:班主任考核提交功能权限配置.md
数据准备
必要的指标数据
系统需要以下5个考核指标才能正常运行:
bzrwjkf001- 班级扣分bzrtsgz001- 及时并妥善处理好学生违纪事件bzrtsgz002- 班级活动获奖情况bzrtsgz003- 班级宣传工作有特色bzrtsgz004- 其他
数据插入脚本:班主任考核提交功能必要数据.sql
部署说明
1. 数据库脚本执行
-- 执行必要数据插入脚本
source 班主任考核提交功能必要数据.sql;
2. 后端编译重启
# 编译ruoyi-bzrkh模块
mvn clean compile -pl ruoyi-modules/ruoyi-bzrkh
# 重启应用服务
# (请根据实际部署方式重启服务)
3. 前端构建
# 前端无需重新构建,代码已支持热更新
# 如需构建:
npm run build:prod
4. 权限配置
- 登录系统管理后台
- 进入系统管理-菜单管理
- 为班主任考核相关菜单配置权限
- 为相关角色分配权限
测试验证
1. 基础功能测试
- 班主任登录系统
- 查看考核计划列表
- 点击"提交考核"按钮
- 弹窗正常显示9张卡片
- 系数自动计算正确
2. 评分功能测试
- 班主任常规工作指标可正常输入评分
- 班级扣分可正常输入,50%计算正确
- 特色工作4个指标可正常输入评分
- 月考核得分自动计算正确
3. 数据保存测试
- 提交评分数据成功
- 数据正确保存到数据库
- 再次打开弹窗数据正确回显
技术亮点
- 响应式系数计算:前端实时计算各项系数,提供直观的数据展示
- 组件化设计:弹窗组件独立封装,便于维护和复用
- 数据一致性:采用逻辑删除+重新插入的方式确保数据一致性
- 权限控制:完整的权限控制体系,确保数据安全
- 用户体验:直观的卡片式布局,清晰的数据展示
- 实时人数统计:班级总人数从xg_student_msg表实时统计,确保数据准确性
班级人数统计规则(2025-01-27更新)
班级总人数统计
- 数据来源:
xg_student_msg表 - 统计条件:
class_id= 班级IDstudent_status= '1'(正常状态)deleted= 0(未逻辑删除)
- 统计方式: COUNT(1)
住校生人数统计
- 数据来源:
xg_student_msg表 - 统计条件:
class_id= 班级IDstudent_status= '1'(正常状态)dormitory_roomIS NOT NULL ANDdormitory_room!= ''(有宿舍信息)deleted= 0(未逻辑删除)
- 统计方式: COUNT(1)
待扩展功能
- 学生违规处分信息查看功能
- 考核结果审核功能
- 考核数据统计分析功能
- 考核历史记录查询功能
开发完成时间: 2025-01-27
开发版本: V1.0.0
测试状态: 待测试验证