|
@@ -17,12 +17,16 @@ import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
import com.github.yulichang.toolkit.MPJWrappers;
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
import com.xjrsoft.common.enums.AssessmentTypeEnum;
|
|
|
+import com.xjrsoft.common.enums.EvaluateTypeEnum;
|
|
|
import com.xjrsoft.common.enums.ScoreTypeEnum;
|
|
|
import com.xjrsoft.common.model.result.RT;
|
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.common.utils.excel.ExcelMergeUtil;
|
|
|
import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
import com.xjrsoft.module.base.mapper.BaseClassMapper;
|
|
|
+import com.xjrsoft.module.evaluate.dto.TeaEvaluateClassDto;
|
|
|
+import com.xjrsoft.module.evaluate.mapper.EvaluateResultMapper;
|
|
|
+import com.xjrsoft.module.evaluate.vo.TeaEvaluateClassListVo;
|
|
|
import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
|
|
|
import com.xjrsoft.module.organization.entity.User;
|
|
|
import com.xjrsoft.module.organization.service.IUserService;
|
|
@@ -46,6 +50,7 @@ import com.xjrsoft.module.student.mapper.BaseStudentAssessmentProjectMapper;
|
|
|
import com.xjrsoft.module.student.mapper.BaseStudentAssessmentStudentRelationMapper;
|
|
|
import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
|
|
|
import com.xjrsoft.module.student.service.IBaseStudentAssessmentInspectionService;
|
|
|
+import com.xjrsoft.module.student.service.IQuotaFormulaRuleService;
|
|
|
import com.xjrsoft.module.student.vo.BaseStudentAssessmentClassListVo;
|
|
|
import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionMobilePageVo;
|
|
|
import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionMobileVo;
|
|
@@ -58,12 +63,19 @@ import com.xjrsoft.module.system.entity.File;
|
|
|
import com.xjrsoft.module.system.service.IFileService;
|
|
|
import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import me.zhyd.oauth.log.Log;
|
|
|
+import org.checkerframework.checker.units.qual.A;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import javax.script.ScriptEngine;
|
|
|
+import javax.script.ScriptEngineManager;
|
|
|
+import javax.script.ScriptException;
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
@@ -73,7 +85,6 @@ import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static javax.swing.UIManager.put;
|
|
|
|
|
|
/**
|
|
|
* @title: 学生班级巡查考核
|
|
@@ -105,6 +116,10 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
|
|
|
|
|
|
private final IWeChatService weChatService;
|
|
|
|
|
|
+ private final EvaluateResultMapper evaluateResultMapper;
|
|
|
+
|
|
|
+ private final IQuotaFormulaRuleService quotaFormulaRuleService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<BaseStudentAssessmentInspectionPageVo> getPage(Page<BaseStudentAssessmentInspectionPageDto> page, BaseStudentAssessmentInspectionPageDto dto) {
|
|
|
Page<BaseStudentAssessmentInspectionPageVo> result = assessmentInspectionMapper.getPage(page, dto);
|
|
@@ -421,6 +436,15 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
|
|
|
awardsAndHonorableMap.put(q.getClassId(), q);
|
|
|
}
|
|
|
|
|
|
+ //查询任课教师查询班级的数据
|
|
|
+ TeaEvaluateClassDto evaluateClassDto = new TeaEvaluateClassDto();
|
|
|
+ evaluateClassDto.setEvaluateType(EvaluateTypeEnum.TEACHER_EVALUATE_CLASS.getCode());
|
|
|
+ evaluateClassDto.setYear(dto.getYear());
|
|
|
+ evaluateClassDto.setMonth(dto.getMonth());
|
|
|
+ List<TeaEvaluateClassListVo> teaEvaluateClassList = evaluateResultMapper.getTeaEvaluateClassList(evaluateClassDto);
|
|
|
+ Map<Long, List<TeaEvaluateClassListVo>> classEvaluateMap = teaEvaluateClassList.stream().collect(Collectors.groupingBy(TeaEvaluateClassListVo::getEvaluatedObjectId));
|
|
|
+ String jskhFormula = quotaFormulaRuleService.getFormulaByQuota("teacher_assessment");
|
|
|
+
|
|
|
//将结果写进对应的班级里
|
|
|
for(CalssQuantitativeAssessmentPageVo c: resultPage.getRecords()){
|
|
|
Long classId = Long.parseLong(c.getClassId());
|
|
@@ -458,6 +482,32 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
|
|
|
c.setHonorScore(10D);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if(classEvaluateMap.containsKey(classId)){
|
|
|
+ Map<Long, List<TeaEvaluateClassListVo>> evaluateCategoryMap = classEvaluateMap.get(classId).stream().collect(Collectors.groupingBy(TeaEvaluateClassListVo::getId));
|
|
|
+ int evaluateItemSize = evaluateCategoryMap.size();
|
|
|
+
|
|
|
+ List<Double> evaluateSocreList = new ArrayList<>();//存每个项的平均分
|
|
|
+ for (Long id : evaluateCategoryMap.keySet()) {
|
|
|
+ List<TeaEvaluateClassListVo> resultList = evaluateCategoryMap.get(id);
|
|
|
+ int allSorce = resultList.stream().mapToInt(TeaEvaluateClassListVo::getScore).sum();
|
|
|
+ double avgScore = BigDecimal.valueOf(allSorce).divide(BigDecimal.valueOf(resultList.size())).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ evaluateSocreList.add(avgScore);
|
|
|
+ }
|
|
|
+
|
|
|
+ double jskhValue = evaluateSocreList.stream().mapToDouble(Double::doubleValue).sum();
|
|
|
+ c.setTeacherAssessComprehensiveIndex(jskhValue);
|
|
|
+ String replacedExpression = jskhFormula.replace("JSKH", Double.toString(jskhValue));
|
|
|
+
|
|
|
+ ScriptEngineManager manager = new ScriptEngineManager();
|
|
|
+ ScriptEngine engine = manager.getEngineByName("JavaScript");
|
|
|
+ try {
|
|
|
+ double result = ((Number) engine.eval(replacedExpression)).doubleValue();
|
|
|
+ c.setTeacherAssessScore(result);
|
|
|
+ } catch (ScriptException e) {
|
|
|
+ Log.error(e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|