瀏覽代碼

综合评价

夏文涛 2 年之前
父節點
當前提交
634e3765d9

+ 69 - 3
src/main/java/com/template/controller/SmartEvaluateStudentController2.java

@@ -175,11 +175,77 @@ public class SmartEvaluateStudentController2 implements SmartEvaluateStudentCont
             rules.add(rule);
         }
         if(rules != null && rules.size() > 0){
-            smartTemplateRuleService.saveBatch(rules);
+            boolean insertBatch = smartTemplateRuleService.saveBatch(rules);
+            if(!insertBatch){
+                return CommonResult.fail("修改失败");
+            }
         }
 
-        smartSubjectTemplateService.updateSmartSubjectTemplate(smartSubjectTemplate);
-        return CommonResult.ok("操作成功");
+        int insert = smartSubjectTemplateService.updateSmartSubjectTemplate(smartSubjectTemplate);
+        if(insert <= 0){
+            return CommonResult.fail("修改失败");
+        }
+
+        //region 学生综合评价
+        List<Integer> examTypes = new ArrayList<>();
+        for (SmartTermTemplate stt : smartSubjectTemplate.getExamTypes()) {
+            examTypes.add(stt.getId());
+        }
+        List<SmartScore> scores = smartScoreService.querySmartScoresByex(smartSubjectTemplate.getTermId(), smartSubjectTemplate.getGradeId(), examTypes);
+        List<Integer> userIds = scores.stream().map(SmartScore::getUserId).distinct().collect(Collectors.toList());
+        List<SmartEvaluateStudent> students = smartEvaluateStudentService.getEvaluateStudents(userIds, smartSubjectTemplate.getTermId());
+        List<SmartEvaluateStudent> updateStudents = new ArrayList<>();
+        List<SmartEvaluateStudent> insertStudents = new ArrayList<>();
+        for (Integer userId : userIds) {
+            List<SmartScore> userScores = scores.stream().filter(e -> e.getUserId().equals(userId)).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(smartSubjectTemplate.getTermId()) && e.getUserId().equals(userId)).findFirst();
+                for (SmartScore us : userScores) {
+                    totalScoreNum = totalScoreNum.add(new BigDecimal(us.getScore()));
+                    scoreNum++;
+                }
+                if (oStudent != null && oStudent.isPresent()) {
+                    oStudent.get().setScoreNum(totalScoreNum.doubleValue());
+                    oStudent.get().setSubjectNum(scoreNum);
+                    updateStudents.add(oStudent.get());
+                } else {
+                    Optional<SmartScore> oSmartScore = scores.stream().filter(e -> e.getSemesterId().equals(smartSubjectTemplate.getTermId()) && e.getUserId().equals(userId)).findFirst();
+                    SmartEvaluateStudent ses = new SmartEvaluateStudent();
+                    ses.setTermId(smartSubjectTemplate.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);
+                }
+            }
+        }
+        if (insertStudents != null && insertStudents.size() > 0) {
+            boolean insertBatch = smartEvaluateStudentService.saveBatch(insertStudents);
+            if (!insertBatch) {
+                return CommonResult.fail("修改失败");
+            }
+        }
+
+        if (updateStudents != null && updateStudents.size() > 0) {
+            boolean updateBatch = smartEvaluateStudentService.updateBatchById(updateStudents);
+            if (!updateBatch) {
+                return CommonResult.fail("修改失败");
+            }
+        }
+        //endregion
+
+        return CommonResult.ok("修改成功");
     }
 
     @PassToken

+ 1 - 1
src/main/java/com/template/controller/SmartScoreController.java

@@ -297,7 +297,7 @@ public class SmartScoreController implements SmartScoreControllerAPI {
         //成绩去重判断  一个学生同一个学期同一个考试类型同一个科目只能加一次
         int existCount = smartScoreService.getExistScore(isr.getUserId(), isr.getSemesterId(), isr.getExamType(), isr.getSubjectId());
         if (existCount > 0) {
-            return CommonResult.ok(user.getName() + "的" + isr.getSemester() + "的" + examtype.getName() + "的" + subject.getName() + "的成绩在系统中已存在");
+            return CommonResult.fail(user.getName() + "的" + isr.getSemester() + "的" + examtype.getName() + "的" + subject.getName() + "的成绩在系统中已存在");
         }
 
         SmartScore ss = new SmartScore();

+ 8 - 1
src/main/java/com/template/controller/SmartSemesterController.java

@@ -415,8 +415,15 @@ public class SmartSemesterController implements SmartSemesterControllerAPI {
         }
 
         int result = smartSemesterService.deleteSmartSemesterById(id);
+        if(result <= 0){
+            return CommonResult.fail("删除失败");
+        }
+
+        //把smart_score_manage 和 smart_evaluate_tdetail 表中的数据删除
+        smartScoreManageService.deleteSmartScoreManageByTermId(id);
+        smartEvaluateTdetailService.deleteSmartEvaluateTdetailByTermId(id);
 
-        return result > 0 ? CommonResult.ok("删除成功") : CommonResult.fail("删除失败");
+        return  CommonResult.ok("删除成功");
     }
 
     @Override

+ 2 - 0
src/main/java/com/template/services/SmartEvaluateStudentService.java

@@ -45,6 +45,8 @@ public interface SmartEvaluateStudentService extends IService<SmartEvaluateStude
 
     List<SmartEvaluateStudent> getEvaluateStudents(List<Integer> userIds, List<Integer> semesterIds);
 
+    List<SmartEvaluateStudent> getEvaluateStudents(List<Integer> userIds, Integer semesterId);
+
     int deleteEvaluateStudents(List<Integer> ids);
 
     SmartEvaluateStudent getEvaluateStudent(Integer userId, Integer semesterId);

+ 1 - 0
src/main/java/com/template/services/SmartEvaluateTdetailService.java

@@ -36,5 +36,6 @@ public interface SmartEvaluateTdetailService extends IService<SmartEvaluateTdeta
 
     List<SmartEvaluateTdetail> queryTdetailsByTermUserId(int termId,int userId);
 
+    int deleteSmartEvaluateTdetailByTermId(int termId);
 
 }

+ 2 - 0
src/main/java/com/template/services/SmartScoreManageService.java

@@ -46,4 +46,6 @@ public interface SmartScoreManageService extends IService<SmartScoreManage> {
     List<SmartScoreManage> queryDatasByParentId(int parentId);
 
     List<SmartScoreManage> queryAllDatasByParentId(int parentId);
+
+    int deleteSmartScoreManageByTermId(int termId);
 }

+ 9 - 0
src/main/java/com/template/services/impl/SmartEvaluateStudentServiceImpl.java

@@ -99,6 +99,15 @@ public class SmartEvaluateStudentServiceImpl extends ServiceImpl<SmartEvaluateSt
     }
 
     @Override
+    public List<SmartEvaluateStudent> getEvaluateStudents(List<Integer> userIds, Integer semesterId) {
+        QueryWrapper<SmartEvaluateStudent> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("user_id",userIds);
+        queryWrapper.eq("term_id",semesterId);
+        List<SmartEvaluateStudent> evaluateStudents = smartEvaluateStudentMapper.selectList(queryWrapper);
+        return evaluateStudents;
+    }
+
+    @Override
     public int deleteEvaluateStudents(List<Integer> ids) {
         int result = smartEvaluateStudentMapper.deleteBatchIds(ids);
         return result;

+ 8 - 0
src/main/java/com/template/services/impl/SmartEvaluateTdetailServiceImpl.java

@@ -87,5 +87,13 @@ public class SmartEvaluateTdetailServiceImpl extends ServiceImpl<SmartEvaluateTd
         return result;
     }
 
+    @Override
+    public int deleteSmartEvaluateTdetailByTermId(int termId) {
+        QueryWrapper<SmartEvaluateTdetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("term_id", termId);
+        int result = smartEvaluateTdetailMapper.delete(queryWrapper);
+        return result;
+    }
+
 
 }

+ 8 - 0
src/main/java/com/template/services/impl/SmartScoreManageServiceImpl.java

@@ -236,4 +236,12 @@ public class SmartScoreManageServiceImpl extends ServiceImpl<SmartScoreManageMap
         List<SmartScoreManage> result = smartScoreManageMapper.selectList(queryWrapper);
         return result;
     }
+
+    @Override
+    public int deleteSmartScoreManageByTermId(int termId) {
+        QueryWrapper<SmartScoreManage> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("term_id", termId);
+        int result = smartScoreManageMapper.delete(queryWrapper);
+        return result;
+    }
 }