“0901班主任考核计算公式调整”
This commit is contained in:
1 parent
0c0ca0ee7c
commit
933f39d79b
9 files changed
+110
-57
No files matched your search
+1
-1
@@ -72,7 +72,7 @@ public class AssessmentApprovalDetailVo implements Serializable {
|
||||
private String superiorOverallComment;
|
||||
|
||||
/**
|
||||
* 月考核得分
|
||||
* 考核得分
|
||||
*/
|
||||
private BigDecimal monthlyScore;
|
||||
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ public class AssessmentDetailVo implements Serializable {
|
||||
private List<SpecialWorkIndicatorVo> specialWorkIndicators;
|
||||
|
||||
/**
|
||||
* 月考核得分
|
||||
* 考核得分
|
||||
*/
|
||||
private BigDecimal monthlyScore;
|
||||
|
||||
|
||||
+25
-6
@@ -426,7 +426,7 @@ public class AssessmentApprovalServiceImpl implements IAssessmentApprovalService
|
||||
AssessmentDetailVo detailVo = teacherAssessmentService.getAssessmentSubmitDetail(
|
||||
approval.getPlanId(), approval.getClassId(), approval.getEvaluatedUserId());
|
||||
|
||||
// 计算月考核得分
|
||||
// 计算考核得分
|
||||
Double monthlyScore = calculateMonthlyScore(detailVo, approval);
|
||||
|
||||
ScoreRankingVo ranking = new ScoreRankingVo();
|
||||
@@ -469,7 +469,7 @@ public class AssessmentApprovalServiceImpl implements IAssessmentApprovalService
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算月考核得分
|
||||
* 计算考核得分
|
||||
*/
|
||||
private Double calculateMonthlyScore(AssessmentDetailVo detailVo, AssessmentApprovalVo approval) {
|
||||
// 总系数(K)
|
||||
@@ -523,10 +523,29 @@ public class AssessmentApprovalServiceImpl implements IAssessmentApprovalService
|
||||
}
|
||||
}
|
||||
|
||||
// 月考核得分 = 总系数(K)* (班主任常规工作评分 - 按班级扣分50%计的分值 + 特色工作评分)
|
||||
// 注意:班级扣分是减法,因为它是扣分项
|
||||
BigDecimal monthlyScore = totalCoefficient.multiply(
|
||||
BigDecimal.valueOf(routineWorkTotal - deductionHalf + specialWorkTotal));
|
||||
// 判断是否为自评模式(如果没有上级评分,则为自评模式)
|
||||
boolean isSelfEvaluationMode = scoreDetail.getClassDeductionScore() != null &&
|
||||
scoreDetail.getClassDeductionScore().getSuperiorScore() == null;
|
||||
|
||||
// 检查是否有实际评分数据(避免空白状态显示50分)
|
||||
boolean hasAnyScore = routineWorkTotal > 0 || deductionHalf > 0 || specialWorkTotal > 0;
|
||||
|
||||
BigDecimal monthlyScore;
|
||||
if (!hasAnyScore || totalCoefficient.compareTo(BigDecimal.ZERO) == 0) {
|
||||
// 没有评分数据时返回0
|
||||
monthlyScore = BigDecimal.ZERO;
|
||||
} else if (isSelfEvaluationMode) {
|
||||
// 自评模式:修正后的考核得分公式 = 总系数(K)* ((班主任常规工作评分 + 班级扣分项满分值) - 按班级扣分50%计的分值 + 特色工作评分)
|
||||
// 班级扣分项满分值(固定50分)- 仅在有评分数据时计算
|
||||
double classDeductionMaxScore = 50.0;
|
||||
monthlyScore = totalCoefficient.multiply(
|
||||
BigDecimal.valueOf((routineWorkTotal + classDeductionMaxScore) - deductionHalf + specialWorkTotal));
|
||||
} else {
|
||||
// 审核模式:考核得分 = 总系数(K)* (班主任常规工作评分 - 按班级扣分50%计的分值 + 特色工作评分)
|
||||
// 注意:班级扣分是减法,因为它是扣分项
|
||||
monthlyScore = totalCoefficient.multiply(
|
||||
BigDecimal.valueOf(routineWorkTotal - deductionHalf + specialWorkTotal));
|
||||
}
|
||||
|
||||
return monthlyScore.setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
}
|
||||
|
||||
@@ -124,7 +124,19 @@
|
||||
- 计算公式:K = K1 * (K2 + K3)
|
||||
|
||||
### 2. 月考核得分计算
|
||||
- 计算公式:总系数(K)* (班主任常规工作自评分之和 - 按班级扣分50%计的分值 + 特色工作总分值)
|
||||
|
||||
#### 自评模式(修正后公式)
|
||||
- 计算公式:总系数(K)* ((班主任常规工作自评分之和 + 班级扣分项满分值) - 按班级扣分50%计的分值 + 特色工作总分值)
|
||||
- 班级扣分项满分值:固定50分(来自指标设置)
|
||||
- 修正原因:确保基础分值不受扣分影响,提高计算结果的合理性
|
||||
|
||||
#### 审核模式(保持不变)
|
||||
- 计算公式:总系数(K)* (班主任常规工作上级评分之和 + 班级管理实效上级评分 + 特色工作上级评分之和)
|
||||
|
||||
#### 公式变化对比
|
||||
- **修正前**:K × (常规工作自评分 - 班级扣分50% + 特色工作总分)
|
||||
- **修正后**:K × ((常规工作自评分 + 50) - 班级扣分50% + 特色工作总分)
|
||||
- **关键变化**:新增班级扣分项满分值(50分)确保基础分值
|
||||
|
||||
### 3. 数据存储逻辑
|
||||
1. 先逻辑删除该计划下该教师的历史评分数据
|
||||
|
||||
@@ -2186,7 +2186,7 @@ DROP TABLE IF EXISTS `rs_overseas_record_status_backup`;
|
||||
CREATE TABLE `rs_overseas_record_status_backup` (
|
||||
`record_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '记录ID',
|
||||
`completion_status` char(1) DEFAULT '0' COMMENT '完成状态:0-进行中,1-已完成,2-提前结束',
|
||||
`old_status_text` varchar(12) CHARACTER SET latin1 NOT NULL DEFAULT '',
|
||||
`old_status_text` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '原状态文本',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
@@ -249,17 +249,17 @@
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<!-- 7. 月考核得分卡片 -->
|
||||
<!-- 7. 考核得分卡片 -->
|
||||
<el-card shadow="never" class="info-card">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>月考核得分</span>
|
||||
<span>考核得分</span>
|
||||
</div>
|
||||
</template>
|
||||
<el-form :model="monthlyScoreForm" label-width="100px" class="monthly-score-form">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="月考核得分">
|
||||
<el-form-item label="考核得分">
|
||||
<el-input :value="calculateMonthlyScore().toFixed(2)" readonly style="width: 100%; text-align: center" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -360,7 +360,7 @@ const managementEffectivenessForm = reactive({
|
||||
superiorComment: ''
|
||||
});
|
||||
|
||||
// 月考核得分表单
|
||||
// 考核得分表单
|
||||
const monthlyScoreForm = reactive({
|
||||
selfOverallComment: '',
|
||||
superiorOverallComment: ''
|
||||
@@ -404,7 +404,7 @@ const formatNumber = (value?: number | string, precision = 4) => {
|
||||
return numValue.toFixed(precision);
|
||||
};
|
||||
|
||||
/** 计算月考核得分 */
|
||||
/** 计算考核得分 */
|
||||
const calculateMonthlyScore = () => {
|
||||
// 总系数(K)
|
||||
const totalCoefficient = approvalDetail.value?.coefficient?.totalCoefficient || 0;
|
||||
@@ -418,7 +418,7 @@ const calculateMonthlyScore = () => {
|
||||
// 特色工作上级评分之和(使用上级评分,而非自评分)
|
||||
const specialWorkTotal = specialWorkScores.value.reduce((sum, item) => sum + (item.superiorScore || 0), 0);
|
||||
|
||||
// 月考核得分 = 总系数(K)* (班主任常规工作上级评分之和 + 班级管理实效上级评分 + 特色工作上级评分之和)
|
||||
// 考核得分 = 总系数(K)* (班主任常规工作上级评分之和 + 班级管理实效上级评分 + 特色工作上级评分之和)
|
||||
return totalCoefficient * (routineWorkTotal + managementEffectivenessScore + specialWorkTotal);
|
||||
};
|
||||
|
||||
@@ -490,25 +490,27 @@ const loadApprovalDetail = async () => {
|
||||
managementEffectivenessForm.classDeduction = Number(indicator.selfScore) || 0;
|
||||
managementEffectivenessForm.classDeductionHalf = (Number(indicator.selfScore) || 0) * 0.5;
|
||||
managementEffectivenessForm.selfComment = indicator.selfComment || '';
|
||||
// 上级评分默认使用按班级扣分50%计的分值
|
||||
// 上级评分默认使用50分-按班级扣分50%计的分值
|
||||
const classDeductionHalf = (Number(indicator.selfScore) || 0) * 0.5;
|
||||
managementEffectivenessForm.superiorScore = Number(indicator.superiorScore) || classDeductionHalf;
|
||||
const defaultSuperiorScore = 50 - classDeductionHalf;
|
||||
managementEffectivenessForm.superiorScore = Number(indicator.superiorScore) || defaultSuperiorScore;
|
||||
managementEffectivenessForm.superiorComment = indicator.superiorComment || '';
|
||||
console.log('班级管理实效数据初始化:', {
|
||||
班级扣分: managementEffectivenessForm.classDeduction,
|
||||
扣分50计: managementEffectivenessForm.classDeductionHalf,
|
||||
自评意见: managementEffectivenessForm.selfComment,
|
||||
上级评分: managementEffectivenessForm.superiorScore,
|
||||
上级意见: managementEffectivenessForm.superiorComment
|
||||
上级意见: managementEffectivenessForm.superiorComment,
|
||||
默认上级评分计算: `50 - ${classDeductionHalf} = ${defaultSuperiorScore}`
|
||||
});
|
||||
} else {
|
||||
// 如果没有找到班级扣分指标,设置默认值
|
||||
managementEffectivenessForm.classDeduction = 0;
|
||||
managementEffectivenessForm.classDeductionHalf = 0;
|
||||
managementEffectivenessForm.selfComment = '';
|
||||
managementEffectivenessForm.superiorScore = 0; // 默认为0
|
||||
managementEffectivenessForm.superiorScore = 50; // 默认为满分50分
|
||||
managementEffectivenessForm.superiorComment = '';
|
||||
console.warn('班级管理实效数据为空,使用默认值');
|
||||
console.warn('班级管理实效数据为空,使用默认值,上级评分默认为满分50分');
|
||||
}
|
||||
|
||||
// 初始化特色工作数据 - 确保包含所有必要字段
|
||||
@@ -541,10 +543,10 @@ const loadApprovalDetail = async () => {
|
||||
console.warn('特色工作数据为空或格式错误');
|
||||
}
|
||||
|
||||
// 初始化月考核得分数据
|
||||
// 初始化考核得分数据
|
||||
monthlyScoreForm.selfOverallComment = approvalDetail.value?.selfOverallComment || '';
|
||||
monthlyScoreForm.superiorOverallComment = approvalDetail.value?.superiorOverallComment || '';
|
||||
console.log('月考核得分数据初始化:', {
|
||||
console.log('考核得分数据初始化:', {
|
||||
自我总体评价: monthlyScoreForm.selfOverallComment,
|
||||
上级总体评价: monthlyScoreForm.superiorOverallComment,
|
||||
计算得分: calculateMonthlyScore().toFixed(2)
|
||||
|
||||
@@ -202,17 +202,17 @@
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<!-- 7. 月考核得分卡片 -->
|
||||
<!-- 7. 考核得分卡片 -->
|
||||
<el-card shadow="never" class="info-card">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>月考核得分</span>
|
||||
<span>考核得分</span>
|
||||
</div>
|
||||
</template>
|
||||
<el-form label-width="100px" class="monthly-score-form">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="月考核得分">
|
||||
<el-form-item label="考核得分">
|
||||
<el-input :value="calculateMonthlyScore().toFixed(2)" readonly style="width: 100%; text-align: center" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -259,7 +259,7 @@
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="月考核得分">
|
||||
<el-descriptions-item label="考核得分">
|
||||
{{ calculateMonthlyScore().toFixed(2) }}分
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审批时间">
|
||||
@@ -343,7 +343,7 @@ const managementEffectivenessData = reactive({
|
||||
superiorComment: ''
|
||||
});
|
||||
|
||||
// 月考核得分数据
|
||||
// 考核得分数据
|
||||
const monthlyScoreData = reactive({
|
||||
selfOverallComment: '',
|
||||
superiorOverallComment: ''
|
||||
@@ -409,7 +409,7 @@ const formatNumber = (value?: number | string, precision = 4) => {
|
||||
return numValue.toFixed(precision);
|
||||
};
|
||||
|
||||
/** 计算月考核得分 */
|
||||
/** 计算考核得分 */
|
||||
const calculateMonthlyScore = () => {
|
||||
// 总系数(K)
|
||||
const totalCoefficient = viewDetail.value?.coefficient?.totalCoefficient || 0;
|
||||
@@ -423,7 +423,7 @@ const calculateMonthlyScore = () => {
|
||||
// 特色工作上级评分之和(查看界面显示最终审批结果,使用上级评分)
|
||||
const specialWorkTotal = specialWorkScores.value.reduce((sum, item) => sum + (item.superiorScore || 0), 0);
|
||||
|
||||
// 月考核得分 = 总系数(K)* (班主任常规工作上级评分之和 + 班级管理实效上级评分 + 特色工作上级评分之和)
|
||||
// 考核得分 = 总系数(K)* (班主任常规工作上级评分之和 + 班级管理实效上级评分 + 特色工作上级评分之和)
|
||||
return totalCoefficient * (routineWorkTotal + managementEffectivenessScore + specialWorkTotal);
|
||||
};
|
||||
|
||||
@@ -431,7 +431,7 @@ const calculateMonthlyScore = () => {
|
||||
const calculateEvaluationLevel = () => {
|
||||
const score = calculateMonthlyScore();
|
||||
console.log('=== 📊 评价等级计算调试 ===');
|
||||
console.log('💯 月考核得分:', score);
|
||||
console.log('💯 考核得分:', score);
|
||||
console.log('📈 是否有统计数据:', !!evaluationStats.value);
|
||||
console.log('👤 当前用户ID:', currentRow.value?.evaluatedUserId);
|
||||
|
||||
@@ -683,10 +683,10 @@ const loadViewDetail = async () => {
|
||||
console.warn('特色工作数据为空或格式错误');
|
||||
}
|
||||
|
||||
// 初始化月考核得分数据
|
||||
// 初始化考核得分数据
|
||||
monthlyScoreData.selfOverallComment = viewDetail.value?.selfOverallComment || '';
|
||||
monthlyScoreData.superiorOverallComment = viewDetail.value?.superiorOverallComment || '';
|
||||
console.log('月考核得分数据初始化:', {
|
||||
console.log('考核得分数据初始化:', {
|
||||
自我总体评价: monthlyScoreData.selfOverallComment,
|
||||
上级总体评价: monthlyScoreData.superiorOverallComment,
|
||||
计算得分: calculateMonthlyScore().toFixed(2)
|
||||
|
||||
@@ -280,17 +280,17 @@
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
<!-- 7. 月考核得分卡片 -->
|
||||
<!-- 7. 考核得分卡片 -->
|
||||
<el-card shadow="never" class="info-card">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>月考核得分</span>
|
||||
<span>考核得分</span>
|
||||
</div>
|
||||
</template>
|
||||
<el-form :model="monthlyScoreForm" label-width="100px" class="monthly-score-form">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="月考核得分">
|
||||
<el-form-item label="考核得分">
|
||||
<el-input :value="calculateMonthlyScore().toFixed(2)" readonly style="width: 100%; text-align: center" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -455,7 +455,7 @@ const specialWorkForm = reactive({
|
||||
totalScore: 0
|
||||
});
|
||||
|
||||
// 月考核得分表单
|
||||
// 考核得分表单
|
||||
const monthlyScoreForm = reactive({
|
||||
overallComment: ''
|
||||
});
|
||||
@@ -509,7 +509,7 @@ const calculateTotalSpecialScore = () => {
|
||||
(specialWorkForm.score1 || 0) + (specialWorkForm.score2 || 0) + (specialWorkForm.score3 || 0) + (specialWorkForm.score4 || 0);
|
||||
};
|
||||
|
||||
/** 计算月考核得分 */
|
||||
/** 计算考核得分 */
|
||||
const calculateMonthlyScore = () => {
|
||||
// 总系数(K)
|
||||
const totalCoefficient = assessmentDetail.value?.coefficient?.totalCoefficient || 0;
|
||||
@@ -523,8 +523,18 @@ const calculateMonthlyScore = () => {
|
||||
// 特色工作总分值
|
||||
const specialWorkTotal = specialWorkForm.totalScore || 0;
|
||||
|
||||
// 月考核得分 = 总系数(K)* (班主任常规工作自评分之和 - 按班级扣分50%计的分值 + 特色工作总分值)
|
||||
return totalCoefficient * (routineWorkTotal - deductionHalf + specialWorkTotal);
|
||||
// 检查是否有实际评分数据(避免空白状态显示50分)
|
||||
const hasAnyScore = routineWorkTotal > 0 || deductionHalf > 0 || specialWorkTotal > 0;
|
||||
|
||||
if (!hasAnyScore || totalCoefficient === 0) {
|
||||
return 0; // 没有评分数据时显示0
|
||||
}
|
||||
|
||||
// 班级扣分项满分值(固定50分)- 仅在有评分数据时计算
|
||||
const classDeductionMaxScore = 50;
|
||||
|
||||
// 修正后的考核得分公式 = 总系数(K)* ((班主任常规工作自评分之和 + 班级扣分项满分值) - 按班级扣分50%计的分值 + 特色工作总分值)
|
||||
return totalCoefficient * ((routineWorkTotal + classDeductionMaxScore) - deductionHalf + specialWorkTotal);
|
||||
};
|
||||
|
||||
/** 打开弹窗 */
|
||||
@@ -609,7 +619,7 @@ const loadAssessmentDetail = async () => {
|
||||
// 确保特色工作总分重新计算
|
||||
calculateTotalSpecialScore();
|
||||
|
||||
// 初始化月考核得分数据
|
||||
// 初始化考核得分数据
|
||||
monthlyScoreForm.overallComment = assessmentDetail.value?.overallComment || '';
|
||||
|
||||
// 详细的调试信息:验证数据是否正确加载
|
||||
@@ -978,7 +988,7 @@ defineExpose({
|
||||
}
|
||||
}
|
||||
|
||||
/* 月考核得分表单样式优化 */
|
||||
/* 考核得分表单样式优化 */
|
||||
:deep(.monthly-score-form) {
|
||||
.el-form-item__label {
|
||||
text-align: center;
|
||||
|
||||
@@ -256,17 +256,17 @@
|
||||
</template>
|
||||
</el-card>
|
||||
|
||||
<!-- 7. 月考核得分卡片 -->
|
||||
<!-- 7. 考核得分卡片 -->
|
||||
<el-card shadow="never" class="info-card">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>月考核得分</span>
|
||||
<span>考核得分</span>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 提交模式:简单显示 -->
|
||||
<template v-if="viewMode === 'submit'">
|
||||
<el-descriptions :column="1" border>
|
||||
<el-descriptions-item label="月考核得分">
|
||||
<el-descriptions-item label="考核得分">
|
||||
<div class="monthly-score">{{ formatNumber(calculateMonthlyScore(), 2) }}</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="总体评价">
|
||||
@@ -279,7 +279,7 @@
|
||||
<el-form label-width="100px" class="monthly-score-form">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="月考核得分">
|
||||
<el-form-item label="考核得分">
|
||||
<el-input :value="calculateMonthlyScore().toFixed(2)" readonly style="width: 100%; text-align: center; height: 24px;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -325,7 +325,7 @@
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="月考核得分">
|
||||
<el-descriptions-item label="考核得分">
|
||||
{{ calculateMonthlyScore().toFixed(2) }}分
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审批时间">
|
||||
@@ -556,12 +556,12 @@ const specialWorkForm = reactive({
|
||||
totalScore: 0
|
||||
});
|
||||
|
||||
// 月考核得分表单(只读)
|
||||
// 考核得分表单(只读)
|
||||
const monthlyScoreForm = reactive({
|
||||
overallComment: ''
|
||||
});
|
||||
|
||||
// 审批模式下的月考核得分数据
|
||||
// 审批模式下的考核得分数据
|
||||
const approvalMonthlyScoreData = reactive({
|
||||
selfOverallComment: '',
|
||||
superiorOverallComment: ''
|
||||
@@ -632,7 +632,7 @@ const formatNumber = (value?: number | string, precision = 4) => {
|
||||
return numValue.toFixed(precision);
|
||||
};
|
||||
|
||||
/** 计算月考核得分 */
|
||||
/** 计算考核得分 */
|
||||
const calculateMonthlyScore = () => {
|
||||
if (viewMode.value === 'approval') {
|
||||
// 审批模式:使用上级评分计算
|
||||
@@ -648,7 +648,7 @@ const calculateMonthlyScore = () => {
|
||||
// 特色工作上级评分之和
|
||||
const specialWorkTotal = approvalSpecialWorkScores.value.reduce((sum, item) => sum + (item.superiorScore || 0), 0);
|
||||
|
||||
// 月考核得分 = 总系数(K)* (班主任常规工作上级评分之和 + 班级管理实效上级评分 + 特色工作上级评分之和)
|
||||
// 考核得分 = 总系数(K)* (班主任常规工作上级评分之和 + 班级管理实效上级评分 + 特色工作上级评分之和)
|
||||
return totalCoefficient * (routineWorkTotal + managementEffectivenessScore + specialWorkTotal);
|
||||
} else {
|
||||
// 提交模式:使用自评分计算
|
||||
@@ -664,8 +664,18 @@ const calculateMonthlyScore = () => {
|
||||
// 特色工作总分值
|
||||
const specialWorkTotal = specialWorkForm.totalScore || 0;
|
||||
|
||||
// 月考核得分 = 总系数(K)* (班主任常规工作自评分之和 - 按班级扣分50%计的分值 + 特色工作总分值)
|
||||
return totalCoefficient * (routineWorkTotal - deductionHalf + specialWorkTotal);
|
||||
// 检查是否有实际评分数据(避免空白状态显示50分)
|
||||
const hasAnyScore = routineWorkTotal > 0 || deductionHalf > 0 || specialWorkTotal > 0;
|
||||
|
||||
if (!hasAnyScore || totalCoefficient === 0) {
|
||||
return 0; // 没有评分数据时显示0
|
||||
}
|
||||
|
||||
// 班级扣分项满分值(固定50分)- 仅在有评分数据时计算
|
||||
const classDeductionMaxScore = 50;
|
||||
|
||||
// 修正后的考核得分公式 = 总系数(K)* ((班主任常规工作自评分之和 + 班级扣分项满分值) - 按班级扣分50%计的分值 + 特色工作总分值)
|
||||
return totalCoefficient * ((routineWorkTotal + classDeductionMaxScore) - deductionHalf + specialWorkTotal);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -673,7 +683,7 @@ const calculateMonthlyScore = () => {
|
||||
const calculateEvaluationLevel = () => {
|
||||
const score = calculateMonthlyScore();
|
||||
console.log('=== 📊 评价等级计算调试 ===');
|
||||
console.log('💯 月考核得分:', score);
|
||||
console.log('💯 考核得分:', score);
|
||||
console.log('📈 是否有统计数据:', !!evaluationStats.value);
|
||||
|
||||
if (evaluationStats.value) {
|
||||
@@ -899,10 +909,10 @@ const loadApprovalDetail = async () => {
|
||||
console.log('审批模式 - 特色工作数据初始化完成,条目数量:', approvalSpecialWorkScores.value.length);
|
||||
}
|
||||
|
||||
// 初始化月考核得分数据
|
||||
// 初始化考核得分数据
|
||||
approvalMonthlyScoreData.selfOverallComment = approvalDetail.value?.selfOverallComment || '';
|
||||
approvalMonthlyScoreData.superiorOverallComment = approvalDetail.value?.superiorOverallComment || '';
|
||||
console.log('审批模式 - 月考核得分数据初始化完成');
|
||||
console.log('审批模式 - 考核得分数据初始化完成');
|
||||
|
||||
// 获取评价等级统计数据
|
||||
try {
|
||||
@@ -976,7 +986,7 @@ const loadAssessmentDetail = async () => {
|
||||
specialWorkForm.totalScore =
|
||||
(specialWorkForm.score1 || 0) + (specialWorkForm.score2 || 0) + (specialWorkForm.score3 || 0) + (specialWorkForm.score4 || 0);
|
||||
|
||||
// 初始化月考核得分数据
|
||||
// 初始化考核得分数据
|
||||
monthlyScoreForm.overallComment = assessmentDetail.value?.overallComment || '';
|
||||
|
||||
console.log('=== 查看考核数据加载完成 ===');
|
||||
|
||||
Reference in new issue
Block a user