Jelajahi Sumber

食堂考核计划,解决报错

dzx 1 tahun lalu
induk
melakukan
8d9df7463c

+ 35 - 34
src/main/java/com/xjrsoft/module/assessment/service/impl/AssessmentTemplatePlanServiceImpl.java

@@ -145,7 +145,7 @@ class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<AssessmentTem
                 classIds.add(classList.get(i).getId());
             }
         }
-
+        dto.setClassIds(classIds);
         //存入班级,并根据选人方式存入答题学生
         for (Long classId : dto.getClassIds()) {
             AssessmentPlanAnswerClass answerClass = new AssessmentPlanAnswerClass();
@@ -222,7 +222,7 @@ class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<AssessmentTem
                 classIds.add(classList.get(i).getId());
             }
         }
-
+        dto.setClassIds(classIds);
         //存入班级,并根据选人方式存入答题学生
         for (Long classId : dto.getClassIds()) {
             AssessmentPlanAnswerClass answerClass = new AssessmentPlanAnswerClass();
@@ -456,43 +456,44 @@ class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<AssessmentTem
         for (OneQuestionVo oneQuestion : oneList) {
             for (TwoQuestionVo twoQuestion : oneQuestion.getChildren()) {
                 List<AssessmentQuestionOptionResultVo> optionList = new ArrayList<>();
-                for (AssessmentPlanQuestion assessmentQuestion : questionList) {
-                    if(assessmentQuestion.getCategory() == 3 && assessmentQuestion.getParentId().equals(twoQuestion.getId())){
-                        AssessmentQuestionOptionResultVo questionVo = BeanUtil.toBean(assessmentQuestion, AssessmentQuestionOptionResultVo.class);
-                        Integer count = answerCountMap.get(assessmentQuestion.getParentId().toString() + assessmentQuestion.getId().toString());
-                        questionVo.setCount(count == null?0:count);
-
-                        BigDecimal bigDecimal = BigDecimal.valueOf(questionVo.getCount())
-                                .divide(BigDecimal.valueOf(vo.getStudentCount()))
-                                .multiply(BigDecimal.valueOf(100))
-                                .setScale(2, RoundingMode.HALF_UP);
-                        questionVo.setPercentage(bigDecimal.floatValue());
-                        optionList.add(questionVo);
-                    }
-                    if(assessmentQuestion.getCategory() == 2 && "judge_question".equals(assessmentQuestion.getType())){
-                        optionList.add(new AssessmentQuestionOptionResultVo(){{
-                            setName("是");
-                            Integer count = answerCountMap.get(assessmentQuestion.getId().toString() + "1");
-                            BigDecimal bigDecimal = BigDecimal.valueOf(count == null?0:count)
+                if("radio_question".equals(twoQuestion.getType()) || "multi_question".equals(twoQuestion.getType())){
+                    for (AssessmentPlanQuestion assessmentQuestion : questionList) {
+                        if(assessmentQuestion.getCategory() == 3 && assessmentQuestion.getParentId().equals(twoQuestion.getId())){
+                            AssessmentQuestionOptionResultVo questionVo = BeanUtil.toBean(assessmentQuestion, AssessmentQuestionOptionResultVo.class);
+                            Integer count = answerCountMap.get(assessmentQuestion.getParentId().toString() + assessmentQuestion.getId().toString());
+                            questionVo.setCount(count == null?0:count);
+
+                            BigDecimal bigDecimal = BigDecimal.valueOf(questionVo.getCount())
                                     .divide(BigDecimal.valueOf(vo.getStudentCount()))
                                     .multiply(BigDecimal.valueOf(100))
                                     .setScale(2, RoundingMode.HALF_UP);
-                            setPercentage(bigDecimal.floatValue());
-                            setCount(count);
-                        }});
-                        optionList.add(new AssessmentQuestionOptionResultVo(){{
-                            setName("否");
-                            Integer count = answerCountMap.get(assessmentQuestion.getId().toString() + "2");
-                            BigDecimal bigDecimal = BigDecimal.valueOf(count == null?0:count)
-                                    .divide(BigDecimal.valueOf(vo.getStudentCount()))
-                                    .multiply(BigDecimal.valueOf(100))
-                                    .setScale(2, RoundingMode.HALF_UP);
-                            setPercentage(bigDecimal.floatValue());
-                            setCount(count);
-                        }});
+                            questionVo.setPercentage(bigDecimal.floatValue());
+                            optionList.add(questionVo);
+                        }
                     }
                 }
-                if("scale_question".equals(twoQuestion.getType())) {
+                if("judge_question".equals(twoQuestion.getType())){
+                    optionList.add(new AssessmentQuestionOptionResultVo(){{
+                        setName("是");
+                        Integer count = answerCountMap.get(twoQuestion.getId().toString() + "1");
+                        BigDecimal bigDecimal = BigDecimal.valueOf(count == null?0:count)
+                                .divide(BigDecimal.valueOf(vo.getStudentCount()))
+                                .multiply(BigDecimal.valueOf(100))
+                                .setScale(2, RoundingMode.HALF_UP);
+                        setPercentage(bigDecimal.floatValue());
+                        setCount(count);
+                    }});
+                    optionList.add(new AssessmentQuestionOptionResultVo(){{
+                        setName("否");
+                        Integer count = answerCountMap.get(twoQuestion.getId().toString() + "2");
+                        BigDecimal bigDecimal = BigDecimal.valueOf(count == null?0:count)
+                                .divide(BigDecimal.valueOf(vo.getStudentCount()))
+                                .multiply(BigDecimal.valueOf(100))
+                                .setScale(2, RoundingMode.HALF_UP);
+                        setPercentage(bigDecimal.floatValue());
+                        setCount(count);
+                    }});
+                }else if("scale_question".equals(twoQuestion.getType())) {
                     for (AssessmentPlanAnswerDetailVo detailVo : scaleQuestionResult) {
                         if(detailVo.getQuestionId().equals(twoQuestion.getId())){
                             optionList.add(new AssessmentQuestionOptionResultVo(){{

+ 1 - 1
src/main/java/com/xjrsoft/module/assessment/vo/AssessmentQuestionOptionResultVo.java

@@ -19,7 +19,7 @@ public class AssessmentQuestionOptionResultVo implements Serializable {
     private String name;
 
     @ApiModelProperty("选择数量")
-    private Integer count;
+    private Integer count = 0;
 
     @ApiModelProperty("占比")
     private Float percentage;