|
|
@@ -10,6 +10,7 @@ import com.template.common.utils.ExcelUtils;
|
|
|
import com.template.common.utils.paramUtils;
|
|
|
import com.template.model.enumModel.*;
|
|
|
import com.template.model.evaluate.student.SmartEvaluateStudent;
|
|
|
+import com.template.model.evaluate.student.SmartSubjectTemplate;
|
|
|
import com.template.model.pojo.*;
|
|
|
import com.template.model.request.deleteSmartScoreRequest;
|
|
|
import com.template.model.request.insertScoreRequest;
|
|
|
@@ -81,7 +82,10 @@ public class SmartScoreController implements SmartScoreControllerAPI {
|
|
|
private SmartAuthorGroupService smartAuthorGroupService;
|
|
|
|
|
|
@Autowired
|
|
|
- public SmartEvaluateStudentService smartEvaluateStudentService;
|
|
|
+ private SmartEvaluateStudentService smartEvaluateStudentService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SmartSubjectTemplateService smartSubjectTemplateService;
|
|
|
|
|
|
@Override
|
|
|
@DESRespondSecret(validated = true)
|
|
|
@@ -316,58 +320,58 @@ public class SmartScoreController implements SmartScoreControllerAPI {
|
|
|
return CommonResult.fail("考试类型数据为空,添加失败");
|
|
|
}
|
|
|
|
|
|
- //学生综合评价中是否存在历史数据
|
|
|
- //更新综合素质评价
|
|
|
- SmartEvaluateStudent evaStudent = smartEvaluateStudentService.getEvaluateStudent(isr.getUserId(), isr.getSemesterId(), isr.getExamType());
|
|
|
- if (evaStudent != null) {
|
|
|
- BigDecimal scoreNum = new BigDecimal(evaStudent.getScoreNum()).add(new BigDecimal(isr.getScore()));
|
|
|
- Integer subjectNum = evaStudent.getSubjectNum() + 1;
|
|
|
- evaStudent.setScoreNum(scoreNum.doubleValue());
|
|
|
- evaStudent.setSubjectNum(subjectNum);
|
|
|
- int updateEva = smartEvaluateStudentService.updateSmartEvaluateStudent(evaStudent);
|
|
|
- if (updateEva <= 0) {
|
|
|
- return CommonResult.fail("添加失败");
|
|
|
- }
|
|
|
- } else {
|
|
|
- //region 添加到学生综合素质评价表中
|
|
|
- SmartEvaluateStudent ses = new SmartEvaluateStudent();
|
|
|
- ses.setTermId(isr.getSemesterId());
|
|
|
- ses.setTerm(isr.getSemester());
|
|
|
- ses.setGradeName(isr.getGrade());
|
|
|
- ses.setGradeId(isr.getGradeId());
|
|
|
- ses.setExamType(examType == null ? "" : examType.getName());
|
|
|
- ses.setExamTypeId(isr.getExamType());
|
|
|
- ses.setClassId(isr.getSchoolClassId());
|
|
|
- ses.setClassName(isr.getSchoolClass());
|
|
|
- ses.setCardNo(isr.getCardNo());
|
|
|
- ses.setName(user.getName());
|
|
|
- ses.setUserId(isr.getUserId());
|
|
|
-
|
|
|
- BigDecimal totalScore = new BigDecimal(0.0);
|
|
|
- Integer subjectNum = 0;
|
|
|
- List<SmartScore> userScores = smartScoreService.getScores(isr.getUserId(), isr.getSemesterId(), isr.getExamType());
|
|
|
- for (SmartScore userScore : userScores) {
|
|
|
- totalScore.add(new BigDecimal(userScore.getScore()));
|
|
|
- subjectNum++;
|
|
|
- }
|
|
|
-
|
|
|
- totalScore = totalScore.add(new BigDecimal(isr.getScore()));
|
|
|
- ses.setScoreNum(totalScore.doubleValue());//分数要计算 已经加进去的成绩的
|
|
|
- ses.setSubjectNum(++subjectNum);
|
|
|
-
|
|
|
- Integer insertStudent = smartEvaluateStudentService.insertSmartEvaluateStudent(ses);
|
|
|
-
|
|
|
- if (insertStudent <= 0) {
|
|
|
- return CommonResult.fail("添加失败");
|
|
|
- }
|
|
|
- //endregion
|
|
|
- }
|
|
|
-
|
|
|
int result = smartScoreService.insertSmartScore(ss);
|
|
|
if (result <= 0) {
|
|
|
return CommonResult.fail("添加失败");
|
|
|
}
|
|
|
|
|
|
+ //region 学生综合素质评价
|
|
|
+ SmartEvaluateStudent evaStudent = smartEvaluateStudentService.getEvaluateStudent(isr.getUserId(), isr.getSemesterId());
|
|
|
+ SmartSubjectTemplate subjectTemplate = smartSubjectTemplateService.queryTemplateByTermId(isr.getSemesterId(), isr.getGradeId());
|
|
|
+ if (subjectTemplate != null) {
|
|
|
+ List<String> examTypes = Arrays.asList(subjectTemplate.getExamType().split(","));
|
|
|
+ List<SmartScore> userScores = smartScoreService.getScores(isr.getUserId(), isr.getSemesterId(), examTypes);
|
|
|
+ BigDecimal totalScoreNum = new BigDecimal(0.0);
|
|
|
+ Integer scoreNum = 0;
|
|
|
+ if (userScores != null && userScores.size() > 0) {
|
|
|
+ for (SmartScore userScore : userScores) {
|
|
|
+ totalScoreNum = totalScoreNum.add(new BigDecimal(userScore.getScore()));
|
|
|
+ scoreNum++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaStudent != null) {
|
|
|
+ evaStudent.setScoreNum(totalScoreNum.doubleValue());
|
|
|
+ evaStudent.setSubjectNum(scoreNum);
|
|
|
+ int updateEva = smartEvaluateStudentService.updateSmartEvaluateStudent(evaStudent);
|
|
|
+ if (updateEva <= 0) {
|
|
|
+ return CommonResult.fail("添加失败");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //region 添加到学生综合素质评价表中
|
|
|
+ SmartEvaluateStudent ses = new SmartEvaluateStudent();
|
|
|
+ ses.setTermId(isr.getSemesterId());
|
|
|
+ ses.setTerm(isr.getSemester());
|
|
|
+ ses.setGradeName(isr.getGrade());
|
|
|
+ ses.setGradeId(isr.getGradeId());
|
|
|
+ ses.setClassId(isr.getSchoolClassId());
|
|
|
+ ses.setClassName(isr.getSchoolClass());
|
|
|
+ ses.setCardNo(isr.getCardNo());
|
|
|
+ ses.setName(user.getName());
|
|
|
+ ses.setUserId(isr.getUserId());
|
|
|
+ ses.setScoreNum(totalScoreNum.doubleValue());
|
|
|
+ ses.setSubjectNum(scoreNum);
|
|
|
+
|
|
|
+ Integer insertStudent = smartEvaluateStudentService.insertSmartEvaluateStudent(ses);
|
|
|
+
|
|
|
+ if (insertStudent <= 0) {
|
|
|
+ return CommonResult.fail("添加失败");
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
return CommonResult.ok("添加成功");
|
|
|
}
|
|
|
|
|
|
@@ -384,63 +388,6 @@ public class SmartScoreController implements SmartScoreControllerAPI {
|
|
|
return CommonResult.fail("成绩数据无效,无法编辑");
|
|
|
}
|
|
|
|
|
|
- //更新综合素质评价
|
|
|
- SmartEvaluateStudent evaStudent = smartEvaluateStudentService.getEvaluateStudent(usr.getUserId(), usr.getSemesterId(), usr.getExamType());
|
|
|
- if (evaStudent != null) {
|
|
|
- BigDecimal scoreNum = new BigDecimal(evaStudent.getScoreNum());
|
|
|
- scoreNum = scoreNum.subtract(scoreNum);
|
|
|
- scoreNum = scoreNum.add(new BigDecimal(usr.getScore()));
|
|
|
-
|
|
|
- evaStudent.setScoreNum(scoreNum.doubleValue());
|
|
|
-
|
|
|
- int updateStudent = smartEvaluateStudentService.updateSmartEvaluateStudent(evaStudent);
|
|
|
- if (updateStudent <= 0) {
|
|
|
- return CommonResult.fail("编辑失败");
|
|
|
- }
|
|
|
- } else {
|
|
|
- //判断学生是否有效
|
|
|
- SmartUser user = smartUserService.getSmartById(usr.getUserId());
|
|
|
- if (user == null) {
|
|
|
- return CommonResult.fail("学生信息无效,无法编辑学生成绩");
|
|
|
- }
|
|
|
-
|
|
|
- SmartExamtype examType = smartExamtypeService.getSmartById(usr.getExamType());
|
|
|
- if (examType == null) {
|
|
|
- return CommonResult.fail("考试类型数据为空,编辑失败");
|
|
|
- }
|
|
|
-
|
|
|
- //region 添加到学生综合素质评价表中
|
|
|
- SmartEvaluateStudent ses = new SmartEvaluateStudent();
|
|
|
- ses.setTermId(usr.getSemesterId());
|
|
|
- ses.setTerm(usr.getSemester());
|
|
|
- ses.setGradeName(usr.getGrade());
|
|
|
- ses.setGradeId(usr.getGradeId());
|
|
|
- ses.setExamType(examType == null ? "" : examType.getName());
|
|
|
- ses.setExamTypeId(usr.getExamType());
|
|
|
- ses.setClassId(usr.getSchoolClassId());
|
|
|
- ses.setClassName(usr.getSchoolClass());
|
|
|
- ses.setCardNo(usr.getCardNo());
|
|
|
- ses.setName(user.getName());
|
|
|
- ses.setUserId(usr.getUserId());
|
|
|
-
|
|
|
- Integer subjectNum = evaStudent.getSubjectNum() + 1;
|
|
|
- BigDecimal totalScore = new BigDecimal(0.0);
|
|
|
- List<SmartScore> userScores = smartScoreService.getScores(usr.getUserId(), usr.getSemesterId(), usr.getExamType());
|
|
|
- for (SmartScore userScore : userScores) {
|
|
|
- totalScore.add(new BigDecimal(userScore.getScore()));
|
|
|
- subjectNum++;
|
|
|
- }
|
|
|
- ses.setScoreNum(totalScore.doubleValue());//分数要计算 已经加进去的成绩的
|
|
|
- ses.setSubjectNum(subjectNum);
|
|
|
-
|
|
|
- Integer insertStudent = smartEvaluateStudentService.insertSmartEvaluateStudent(ses);
|
|
|
-
|
|
|
- if (insertStudent <= 0) {
|
|
|
- return CommonResult.fail("添加失败");
|
|
|
- }
|
|
|
- //endregion
|
|
|
- }
|
|
|
-
|
|
|
//判断学生是否有效
|
|
|
SmartUser user = smartUserService.getSmartById(usr.getUserId());
|
|
|
if (user == null) {
|
|
|
@@ -465,9 +412,58 @@ public class SmartScoreController implements SmartScoreControllerAPI {
|
|
|
score.setScore(usr.getScore());
|
|
|
|
|
|
int result = smartScoreService.updateSmartScore(score);
|
|
|
+ if (result <= 0) {
|
|
|
+ return CommonResult.fail("编辑失败");
|
|
|
+ }
|
|
|
|
|
|
+ //region 学生综合素质评价
|
|
|
+ SmartEvaluateStudent evaStudent = smartEvaluateStudentService.getEvaluateStudent(usr.getUserId(), usr.getSemesterId());
|
|
|
+ SmartSubjectTemplate subjectTemplate = smartSubjectTemplateService.queryTemplateByTermId(usr.getSemesterId(), usr.getGradeId());
|
|
|
+ if (subjectTemplate != null) {
|
|
|
+ List<String> examTypes = Arrays.asList(subjectTemplate.getExamType().split(","));
|
|
|
+ List<SmartScore> userScores = smartScoreService.getScores(usr.getUserId(), usr.getSemesterId(), examTypes);
|
|
|
+ BigDecimal totalScoreNum = new BigDecimal(0.0);
|
|
|
+ Integer scoreNum = 0;
|
|
|
+ if (userScores != null && userScores.size() > 0) {
|
|
|
+ for (SmartScore userScore : userScores) {
|
|
|
+ totalScoreNum = totalScoreNum.add(new BigDecimal(userScore.getScore()));
|
|
|
+ scoreNum++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaStudent != null) {
|
|
|
+ evaStudent.setScoreNum(totalScoreNum.doubleValue());
|
|
|
+ evaStudent.setSubjectNum(scoreNum);
|
|
|
+ int updateEva = smartEvaluateStudentService.updateSmartEvaluateStudent(evaStudent);
|
|
|
+ if (updateEva <= 0) {
|
|
|
+ return CommonResult.fail("添加失败");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //region 添加到学生综合素质评价表中
|
|
|
+ SmartEvaluateStudent ses = new SmartEvaluateStudent();
|
|
|
+ ses.setTermId(usr.getSemesterId());
|
|
|
+ ses.setTerm(usr.getSemester());
|
|
|
+ ses.setGradeName(usr.getGrade());
|
|
|
+ ses.setGradeId(usr.getGradeId());
|
|
|
+ ses.setClassId(usr.getSchoolClassId());
|
|
|
+ ses.setClassName(usr.getSchoolClass());
|
|
|
+ ses.setCardNo(usr.getCardNo());
|
|
|
+ ses.setName(user.getName());
|
|
|
+ ses.setUserId(usr.getUserId());
|
|
|
+ ses.setScoreNum(totalScoreNum.doubleValue());
|
|
|
+ ses.setSubjectNum(scoreNum);
|
|
|
+
|
|
|
+ Integer insertStudent = smartEvaluateStudentService.insertSmartEvaluateStudent(ses);
|
|
|
+
|
|
|
+ if (insertStudent <= 0) {
|
|
|
+ return CommonResult.fail("添加失败");
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
|
|
|
- return result > 0 ? CommonResult.ok("编辑成功") : CommonResult.fail("编辑失败");
|
|
|
+ return CommonResult.ok("编辑成功");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -492,36 +488,45 @@ public class SmartScoreController implements SmartScoreControllerAPI {
|
|
|
@DESRespondSecret(validated = true)
|
|
|
public CommonResult deleteSmartScoresByIds(deleteSmartScoreRequest dssr, BindingResult bindingResult) {
|
|
|
List<SmartScore> scores = smartScoreService.querySmartScoreByIds(dssr.getIds());
|
|
|
+
|
|
|
if (scores != null && scores.size() > 0) {
|
|
|
+
|
|
|
+ int result = smartScoreService.deleteSmartScoreByIds(dssr.getIds());
|
|
|
+ if (result <= 0) {
|
|
|
+ return CommonResult.fail("删除失败");
|
|
|
+ }
|
|
|
+
|
|
|
//用户 学期 考试类型
|
|
|
List<Integer> userIds = scores.stream().map(SmartScore::getUserId).collect(Collectors.toList());
|
|
|
List<Integer> semesterIds = scores.stream().map(SmartScore::getSemesterId).collect(Collectors.toList());
|
|
|
- List<Integer> examTypes = scores.stream().map(SmartScore::getExamType).collect(Collectors.toList());
|
|
|
- List<SmartEvaluateStudent> students = smartEvaluateStudentService.getEvaluateStudents(userIds, semesterIds, examTypes);
|
|
|
-
|
|
|
+ List<Integer> gradeIds = scores.stream().map(SmartScore::getGradeId).collect(Collectors.toList());
|
|
|
+ List<SmartEvaluateStudent> students = smartEvaluateStudentService.getEvaluateStudents(userIds, semesterIds);
|
|
|
+ List<SmartSubjectTemplate> subjectTemplates = smartSubjectTemplateService.queryTemplateByTermIds(semesterIds, gradeIds);
|
|
|
List<Integer> deleteStudents = new ArrayList<>();
|
|
|
- for (SmartEvaluateStudent student : students) {
|
|
|
- Optional<SmartScore> scoreData = scores.stream().filter(e -> e.getUserId().equals(student.getUserId()) && e.getSemesterId().equals(student.getTermId())
|
|
|
- && e.getExamType().equals(student.getExamTypeId())).findFirst();
|
|
|
- if (scoreData != null && scoreData.isPresent()) {
|
|
|
- BigDecimal restScore = new BigDecimal(0.0);
|
|
|
- restScore = new BigDecimal(student.getScoreNum()).subtract(new BigDecimal(scoreData.get().getScore()));
|
|
|
-
|
|
|
- if (restScore.doubleValue() > 0) {
|
|
|
- student.setScoreNum(restScore.doubleValue());
|
|
|
- student.setSubjectNum(student.getSubjectNum() - 1);
|
|
|
- } else {
|
|
|
- // 删除成绩的时候如果减掉的分数小于等于零
|
|
|
- // 则把综合评价里的学生的成绩总分数数据删掉
|
|
|
- deleteStudents.add(student.getId());
|
|
|
+ List<SmartEvaluateStudent> updateStudents = new ArrayList<>();
|
|
|
+ for (SmartScore score : scores) {
|
|
|
+ Optional<SmartSubjectTemplate> oSubject = subjectTemplates.stream().filter(e -> e.getTermId().equals(score.getSemesterId()) && e.getGradeId().equals(score.getGradeId())).findFirst();
|
|
|
+ if (oSubject != null && oSubject.isPresent()) {//有设置规则
|
|
|
+ List<String> examTypes = Arrays.asList(oSubject.get().getExamType().split(","));
|
|
|
+ if (examTypes.contains(score.getExamType())) {
|
|
|
+ Optional<SmartEvaluateStudent> oEStudent = students.stream().filter(e -> e.getUserId().equals(score.getUserId()) && e.getTermId().equals(score.getSemesterId())).findFirst();
|
|
|
+ BigDecimal restScore = new BigDecimal(0.0);
|
|
|
+ restScore = new BigDecimal(oEStudent.get().getScoreNum()).subtract(new BigDecimal(score.getScore()));
|
|
|
+ if (restScore.doubleValue() > 0) {
|
|
|
+ oEStudent.get().setScoreNum(restScore.doubleValue());
|
|
|
+ oEStudent.get().setSubjectNum(oEStudent.get().getSubjectNum() - 1);
|
|
|
+ updateStudents.add(oEStudent.get());
|
|
|
+ } else {
|
|
|
+ deleteStudents.add(oEStudent.get().getId());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//删除和更新已有的综合评价数据
|
|
|
- if (students != null && students.size() > 0) {
|
|
|
- boolean updateStudents = smartEvaluateStudentService.updateBatchById(students);
|
|
|
- if (!updateStudents) {
|
|
|
+ if (updateStudents != null && updateStudents.size() > 0) {
|
|
|
+ boolean updateResult = smartEvaluateStudentService.updateBatchById(students);
|
|
|
+ if (!updateResult) {
|
|
|
return CommonResult.fail("删除失败");
|
|
|
}
|
|
|
}
|
|
|
@@ -535,9 +540,7 @@ public class SmartScoreController implements SmartScoreControllerAPI {
|
|
|
|
|
|
}
|
|
|
|
|
|
- int result = smartScoreService.deleteSmartScoreByIds(dssr.getIds());
|
|
|
-
|
|
|
- return result > 0 ? CommonResult.ok("删除成功") : CommonResult.fail("删除失败");
|
|
|
+ return CommonResult.ok("删除成功");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -800,73 +803,79 @@ public class SmartScoreController implements SmartScoreControllerAPI {
|
|
|
return CommonResult.fail("耗材数据导入只支持Xls、Xlsx");
|
|
|
}
|
|
|
|
|
|
+ boolean resultBool = smartScoreService.saveBatch(result);
|
|
|
+ if (!resultBool) {
|
|
|
+ CommonResult.fail("导入失败");
|
|
|
+ }
|
|
|
+
|
|
|
//region 循环成绩加进综合评价学生里
|
|
|
- List<SmartEvaluateStudent> addSess = new ArrayList<>();
|
|
|
- List<SmartEvaluateStudent> sess = new ArrayList<>();
|
|
|
- List<SmartScore> allUserScores = new ArrayList<>();
|
|
|
- List<SmartExamtype> examtypes = new ArrayList<>();
|
|
|
+ List<SmartEvaluateStudent> updateStudents = new ArrayList<>();
|
|
|
+ List<SmartEvaluateStudent> insertStudents = new ArrayList<>();
|
|
|
if (result != null && result.size() > 0) {
|
|
|
- List<Integer> userIds = result.stream().map(SmartScore::getUserId).collect(Collectors.toList());
|
|
|
- List<Integer> semesterIds = result.stream().map(SmartScore::getSemesterId).collect(Collectors.toList());
|
|
|
- List<Integer> examTypes = result.stream().map(SmartScore::getExamType).collect(Collectors.toList());
|
|
|
- allUserScores = smartScoreService.getScores(userIds, semesterIds, examTypes);
|
|
|
- sess = smartEvaluateStudentService.getEvaluateStudents(userIds, semesterIds, examTypes);
|
|
|
- examtypes = smartExamtypeService.getSmartByIdes(examTypes);
|
|
|
- }
|
|
|
- for (SmartScore score : result) {
|
|
|
- List<SmartScore> userScores = allUserScores == null ? new ArrayList<>() : allUserScores.stream().filter(e -> e.getUserId().equals(score.getUserId())
|
|
|
- && e.getSemesterId().equals(score.getSemesterId()) && e.getExamType().equals(score.getExamType())).collect(Collectors.toList());
|
|
|
- Optional<SmartEvaluateStudent> userSes = sess.stream().filter(e -> e.getUserId().equals(score.getUserId())
|
|
|
- && e.getTermId().equals(score.getSemesterId()) && e.getExamTypeId().equals(score.getExamType())).findFirst();
|
|
|
- //region 添加到学生综合素质评价表中
|
|
|
- SmartEvaluateStudent ses = new SmartEvaluateStudent();
|
|
|
- if (userSes != null && userSes.isPresent()) {
|
|
|
- ses = userSes.get();
|
|
|
- BigDecimal totalScore = new BigDecimal(ses.getScoreNum()).add(new BigDecimal(score.getScore()));
|
|
|
- ses.setScoreNum(totalScore.doubleValue());//分数要计算 已经加进去的成绩的
|
|
|
- ses.setSubjectNum(ses.getSubjectNum() + 1);
|
|
|
- } else {
|
|
|
- Optional<SmartExamtype> examType = examtypes.stream().filter(e -> e.getId().equals(score.getExamType())).findFirst();
|
|
|
- ses.setTermId(score.getSemesterId());
|
|
|
- ses.setTerm(score.getSemester());
|
|
|
- ses.setGradeName(score.getGrade());
|
|
|
- ses.setGradeId(score.getGradeId());
|
|
|
- ses.setExamType(examType != null && examType.isPresent() ? examType.get().getName() : "");
|
|
|
- ses.setExamTypeId(score.getExamType());
|
|
|
- ses.setClassId(score.getSchoolClassId());
|
|
|
- ses.setClassName(score.getSchoolClass());
|
|
|
- ses.setCardNo(score.getCardNo());
|
|
|
- ses.setName(score.getName());
|
|
|
- ses.setUserId(score.getUserId());
|
|
|
-
|
|
|
- Integer subjectNum = 0;
|
|
|
- BigDecimal totalScore = new BigDecimal(0.0);
|
|
|
+ List<Integer> userIds = result.stream().map(SmartScore::getUserId).distinct().collect(Collectors.toList());
|
|
|
+ List<Integer> semesterIds = result.stream().map(SmartScore::getSemesterId).distinct().collect(Collectors.toList());
|
|
|
+ List<Integer> gradeIds = result.stream().map(SmartScore::getGradeId).distinct().collect(Collectors.toList());
|
|
|
+ List<SmartEvaluateStudent> students = smartEvaluateStudentService.getEvaluateStudents(userIds, semesterIds);
|
|
|
+ List<SmartSubjectTemplate> subjectTemplates = smartSubjectTemplateService.queryTemplateByTermIds(semesterIds, gradeIds);
|
|
|
+ List<SmartScore> scores = smartScoreService.getScores(userIds, semesterIds);
|
|
|
+ for (SmartSubjectTemplate sst : subjectTemplates) {
|
|
|
+ List<String> examTypes = Arrays.asList(sst.getExamType().split(","));
|
|
|
+ for (Integer userId : userIds) {
|
|
|
+ List<SmartScore> userScores = scores.stream().filter(e -> e.getUserId().equals(userId) && examTypes.contains(String.valueOf(e.getExamType()))).collect(Collectors.toList());
|
|
|
+ BigDecimal totalScoreNum = new BigDecimal(0.0);
|
|
|
+ Integer scoreNum = 0;
|
|
|
+ if (userScores != null && userScores.size() > 0) {
|
|
|
+ Optional<SmartEvaluateStudent> oStudent = students.stream().filter(e -> e.getTermId().equals(sst.getTermId()) && e.getUserId().equals(userId)).findFirst();
|
|
|
+ for (SmartScore userScore : userScores) {
|
|
|
+ totalScoreNum = totalScoreNum.add(new BigDecimal(userScore.getScore()));
|
|
|
+ scoreNum++;
|
|
|
+ }
|
|
|
|
|
|
- for (SmartScore userScore : userScores) {
|
|
|
- totalScore.add(new BigDecimal(userScore.getScore()));
|
|
|
- subjectNum++;
|
|
|
+ if (oStudent != null && oStudent.isPresent()) {
|
|
|
+ oStudent.get().setScoreNum(totalScoreNum.doubleValue());
|
|
|
+ oStudent.get().setSubjectNum(scoreNum);
|
|
|
+ updateStudents.add(oStudent.get());
|
|
|
+ } else {
|
|
|
+ Optional<SmartScore> oSmartScore = result.stream().filter(e -> e.getSemesterId().equals(sst.getTermId()) && e.getUserId().equals(userId)).findFirst();
|
|
|
+ SmartEvaluateStudent ses = new SmartEvaluateStudent();
|
|
|
+ ses.setTermId(sst.getTermId());
|
|
|
+ ses.setUserId(userId);
|
|
|
+ if (oSmartScore != null && oSmartScore.isPresent()) {
|
|
|
+ ses.setTerm(oSmartScore.get().getSemester());
|
|
|
+ ses.setGradeName(oSmartScore.get().getGrade());
|
|
|
+ ses.setGradeId(oSmartScore.get().getGradeId());
|
|
|
+ ses.setClassId(oSmartScore.get().getSchoolClassId());
|
|
|
+ ses.setClassName(oSmartScore.get().getSchoolClass());
|
|
|
+ ses.setCardNo(oSmartScore.get().getCardNo());
|
|
|
+ ses.setName(oSmartScore.get().getName());
|
|
|
+ }
|
|
|
+ ses.setScoreNum(totalScoreNum.doubleValue());
|
|
|
+ ses.setSubjectNum(scoreNum);
|
|
|
+ insertStudents.add(ses);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- totalScore = totalScore.add(new BigDecimal(score.getScore()));
|
|
|
- ses.setScoreNum(totalScore.doubleValue());//分数要计算 已经加进去的成绩的
|
|
|
- ses.setSubjectNum(subjectNum + 1);
|
|
|
}
|
|
|
|
|
|
- addSess.add(ses);
|
|
|
- //endregion
|
|
|
- }
|
|
|
+ if (insertStudents != null && insertStudents.size() > 0) {
|
|
|
+ boolean insertBatch = smartEvaluateStudentService.saveBatch(insertStudents);
|
|
|
+ if (!insertBatch) {
|
|
|
+ return CommonResult.fail("导入失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- if (addSess != null && addSess.size() > 0) {
|
|
|
- boolean insertEvaluate = smartEvaluateStudentService.saveBatch(addSess);
|
|
|
- if (!insertEvaluate) {
|
|
|
- return CommonResult.fail("导入失败");
|
|
|
+ if (updateStudents != null && updateStudents.size() > 0) {
|
|
|
+ boolean updateBatch = smartEvaluateStudentService.updateBatchById(updateStudents);
|
|
|
+ if (!updateBatch) {
|
|
|
+ return CommonResult.fail("导入失败");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//endregion
|
|
|
|
|
|
- boolean resultBool = smartScoreService.saveBatch(result);
|
|
|
|
|
|
- return resultBool ? CommonResult.ok("导入成功") : CommonResult.fail("导入失败");
|
|
|
+ return CommonResult.ok("导入成功");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -877,7 +886,7 @@ public class SmartScoreController implements SmartScoreControllerAPI {
|
|
|
|
|
|
@Override
|
|
|
@DESRespondSecret(validated = true)
|
|
|
- public CommonResult averageScore(int userId,int semesterId) {
|
|
|
+ public CommonResult averageScore(int userId, int semesterId) {
|
|
|
// LocalDateTime now = LocalDateTime.now();
|
|
|
// SmartSemester smartSemester = smartSemesterService.getSemester(now);
|
|
|
// if (ObjectUtils.isEmpty(smartSemester)) {
|