夏文涛 2 anos atrás
pai
commit
160251668a

+ 13 - 11
src/main/java/com/template/controller/SmartEvaluateTeacherController.java

@@ -554,30 +554,32 @@ public class SmartEvaluateTeacherController implements SmartEvaluateTeacherContr
         QueryWrapper<SmartEvaluateTdetail> queryWrapper1 = new QueryWrapper<>();
         QueryWrapper<SmartEvaluateTdetail> queryWrapper1 = new QueryWrapper<>();
         queryWrapper1.eq("deleted", 0);
         queryWrapper1.eq("deleted", 0);
         queryWrapper1.eq("term_id", teacher.getTermId());
         queryWrapper1.eq("term_id", teacher.getTermId());
-        queryWrapper1.eq("user_id", teacher.getUserId());
         List<SmartEvaluateTdetail> detailList = smartEvaluateTdetailService.getEvaluateTdetailByKey(queryWrapper1);
         List<SmartEvaluateTdetail> detailList = smartEvaluateTdetailService.getEvaluateTdetailByKey(queryWrapper1);
+        int teacherCount = smartEvaluateTeacherService.queryTeacherCount(teacher.getTermId());
         List<SmartScoreManage> scoreManages = smartScoreManageService.queryDatasByTermId(teacher.getTermId());
         List<SmartScoreManage> scoreManages = smartScoreManageService.queryDatasByTermId(teacher.getTermId());
-        List<SmartScoreManage> parentScoreManages =  scoreManages.stream().filter(e -> e.getParentId().intValue() == 0).collect(Collectors.toList());
+        List<SmartScoreManage> parentScoreManages = scoreManages.stream().filter(e -> e.getParentId().intValue() == 0).collect(Collectors.toList());
         List<JSONObject> resultJson = new ArrayList<>();
         List<JSONObject> resultJson = new ArrayList<>();
-        for (SmartScoreManage parentData:parentScoreManages) {
+        for (SmartScoreManage parentData : parentScoreManages) {
             JSONObject jsonObject = new JSONObject();
             JSONObject jsonObject = new JSONObject();
             BigDecimal ownScore = new BigDecimal(0.0);
             BigDecimal ownScore = new BigDecimal(0.0);
-            Double avgScore = 0.0;
+            BigDecimal avgScore = new BigDecimal(0.0);
             Integer num = 0;
             Integer num = 0;
             List<SmartScoreManage> childs = scoreManages.stream().filter(e -> e.getParentId().equals(parentData.getId())).collect(Collectors.toList());
             List<SmartScoreManage> childs = scoreManages.stream().filter(e -> e.getParentId().equals(parentData.getId())).collect(Collectors.toList());
-            for (SmartScoreManage child :childs) {
-                Optional<SmartEvaluateTdetail> oChild = detailList.stream().filter(e -> e.getScoreManageId().equals(child.getId())).findFirst();
-                if(oChild != null && oChild.isPresent()){
-                    ownScore = ownScore.add(new BigDecimal(oChild.get().getOwnNum()));
-                    num++;
+            for (SmartScoreManage child : childs) {
+                List<SmartEvaluateTdetail> childDatas =detailList.stream().filter(e -> e.getScoreManageId().equals(child.getId())).collect(Collectors.toList());
+                for (SmartEvaluateTdetail childData:childDatas) {
+                    if (childData.getUserId().equals(teacher.getUserId())) {
+                        ownScore = ownScore.add(new BigDecimal(childData.getOwnNum()));
+                    }
+                    avgScore.add(new BigDecimal(childData.getOwnNum()));
                 }
                 }
             }
             }
 
 
-            avgScore = num == 0 ? 0 : (new BigDecimal(ownScore.doubleValue() / num).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
+            Double avg = teacherCount == 0 ? 0 : (new BigDecimal(avgScore.doubleValue() / teacherCount).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
 
 
             jsonObject.put("name", parentData.getScoreItem());
             jsonObject.put("name", parentData.getScoreItem());
             jsonObject.put("ownScore", ownScore);
             jsonObject.put("ownScore", ownScore);
-            jsonObject.put("avgScore", avgScore);
+            jsonObject.put("avgScore", avg);
             resultJson.add(jsonObject);
             resultJson.add(jsonObject);
         }
         }
         JSONObject jsonObject = new JSONObject();
         JSONObject jsonObject = new JSONObject();

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

@@ -41,4 +41,6 @@ public interface SmartEvaluateTeacherService extends IService<SmartEvaluateTeach
 
 
     RankingVo getRanking(String term, String cardNo);
     RankingVo getRanking(String term, String cardNo);
 
 
+    int queryTeacherCount(Integer termId);
+
 }
 }

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

@@ -95,4 +95,13 @@ public class SmartEvaluateTeacherServiceImpl extends ServiceImpl<SmartEvaluateTe
         return smartEvaluateTeacherMapper.getRanking(term,cardNo);
         return smartEvaluateTeacherMapper.getRanking(term,cardNo);
     }
     }
 
 
+    @Override
+    public int queryTeacherCount(Integer termId) {
+        QueryWrapper<SmartEvaluateTeacher> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("deleted", 0);
+        queryWrapper.eq("term_id", termId);
+        int result = smartEvaluateTeacherMapper.selectCount(queryWrapper);
+        return result;
+    }
+
 }
 }