소스 검색

Merge remote-tracking branch 'origin/dev' into dev

大数据与最优化研究所 11 달 전
부모
커밋
91b419f01a

+ 1 - 1
src/main/java/com/xjrsoft/module/assessment/mapper/AssessmentPlanAnswerStudentMapper.java

@@ -35,7 +35,7 @@ public interface AssessmentPlanAnswerStudentMapper extends MPJBaseMapper<Assessm
             " INNER JOIN base_student_school_roll t2 ON t1.student_user_id = t2.user_id" +
             " INNER JOIN assessment_template_plan t3 ON t1.assessment_template_plan_id = t3.id" +
             " WHERE t1.delete_mark = 0 AND t1.assessment_template_plan_id = #{id}" +
-            " AND t3.stduy_status = t2.stduy_status")
+            " AND t3.stduy_status like concat('%', t2.stduy_status,'%') AND t2.archives_status = 'FB2901'")
     Integer getStudentCount(Long id);
 
     @Select("SELECT submit_status FROM assessment_plan_answer_student WHERE delete_mark = 0 AND assessment_template_plan_id = #{id} and student_user_id = #{loginId}")

+ 30 - 10
src/main/java/com/xjrsoft/module/assessment/service/impl/AssessmentTemplatePlanServiceImpl.java

@@ -631,9 +631,20 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
                     twoQuestion.setResult(answerStr);
                 }else if(AssessQuestionTypeEnum.SCALE.getCode().equals(twoQuestion.getType())){
                     twoQuestion.setResult(resultList.get(0).getAnswerId() + "星");
+                }else if(AssessQuestionTypeEnum.JUDGE.getCode().equals(twoQuestion.getType())){
+                    List<String> answerList = resultList.stream().filter(x -> x.getAnswerId() != null)
+                            .map(AssessmentPlanAnswerDetailVo::getAnswerId).collect(Collectors.toList());
+                    String replace = answerList.toString().replace("[", "").replace("]", "");
+                    if("1".equals(replace)){
+                        twoQuestion.setResult("是");
+                    }else if("0".equals(replace)){
+                        twoQuestion.setResult("否");
+                    }
                 }else{
-                    List<String> answerList = resultList.stream().map(AssessmentPlanAnswerDetailVo::getAnswerId).collect(Collectors.toList());
-                    twoQuestion.setResult(answerList.toString().replace("[", "").replace("]", ""));
+                    List<String> answerList = resultList.stream().filter(x -> x.getAnswerId() != null).map(AssessmentPlanAnswerDetailVo::getAnswerId).collect(Collectors.toList());
+                    if(!answerList.isEmpty()){
+                        twoQuestion.setResult(answerList.toString().replace("[", "").replace("]", ""));
+                    }
                 }
             }
         }
@@ -698,7 +709,12 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
                 }else if(AssessQuestionTypeEnum.SCALE.getCode().equals(question.getType())){
                     rowData.add(resultList.get(0).getAnswerId() + "星");
                 }else if(AssessQuestionTypeEnum.TEXT.getCode().equals(question.getType())){
-                    rowData.add(resultList.get(0).getAnswerId() + "星");
+                    List<String> answerList = resultList.stream().filter(x -> x.getAnswerId() != null).map(AssessmentPlanAnswerDetailVo::getAnswerId).collect(Collectors.toList());
+                    if(!answerList.isEmpty()){
+                        rowData.add(answerList.toString().replace("[", "").replace("]", ""));
+                    }else{
+                        rowData.add("");
+                    }
                 }else if(AssessQuestionTypeEnum.JUDGE.getCode().equals(question.getType())){
                     List<String> answerList = resultList.stream().filter(x -> x.getAnswerId() != null)
                             .map(AssessmentPlanAnswerDetailVo::getAnswerId).collect(Collectors.toList());
@@ -709,8 +725,12 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
                         rowData.add("否");
                     }
                 }else{
-                    List<String> answerList = resultList.stream().map(AssessmentPlanAnswerDetailVo::getAnswerId).collect(Collectors.toList());
-                    rowData.add(answerList.toString().replace("[", "").replace("]", ""));
+                    List<String> answerList = resultList.stream().filter(x -> x.getAnswerId() != null).map(AssessmentPlanAnswerDetailVo::getAnswerId).collect(Collectors.toList());
+                    if(!answerList.isEmpty()){
+                        rowData.add(answerList.toString().replace("[", "").replace("]", ""));
+                    }else{
+                        rowData.add("");
+                    }
                 }
             }
             dataList.add(rowData);
@@ -780,28 +800,28 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
         cell.setCellValue("序号");
         cell.setCellStyle(cellStyle);
         sheet.addMergedRegion(new CellRangeAddress(rowNumber, 1, cellNumber, cellNumber));
-        sheet.setColumnWidth(cellNumber, 10 * 3 * 256);
+        sheet.setColumnWidth(cellNumber, 5 * 3 * 256);
 
         cellNumber ++;
         cell = row.createCell(cellNumber);
         cell.setCellValue("班级");
         cell.setCellStyle(cellStyle);
         sheet.addMergedRegion(new CellRangeAddress(rowNumber, 1, cellNumber, cellNumber));
-        sheet.setColumnWidth(cellNumber, 10 * 3 * 256);
+        sheet.setColumnWidth(cellNumber, 5 * 3 * 256);
 
         cellNumber ++;
         cell = row.createCell(cellNumber);
         cell.setCellValue("学生姓名");
         cell.setCellStyle(cellStyle);
         sheet.addMergedRegion(new CellRangeAddress(rowNumber, 1, cellNumber, cellNumber));
-        sheet.setColumnWidth(cellNumber, 10 * 3 * 256);
+        sheet.setColumnWidth(cellNumber, 5 * 3 * 256);
 
         cellNumber ++;
         cell = row.createCell(cellNumber);
         cell.setCellValue("提交时间");
         cell.setCellStyle(cellStyle);
         sheet.addMergedRegion(new CellRangeAddress(rowNumber, 1, cellNumber, cellNumber));
-        sheet.setColumnWidth(cellNumber, 10 * 3 * 256);
+        sheet.setColumnWidth(cellNumber, 5 * 3 * 256);
 
         cellNumber ++;
         for (AssessmentPlanQuestion question : oneQuesList) {
@@ -834,7 +854,7 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
             Cell cell = row.createCell(cellNumber);
             cell.setCellValue(question.getName());
             cell.setCellStyle(cellStyle);
-            sheet.setColumnWidth(cellNumber, 30 * 3 * 256);
+            sheet.setColumnWidth(cellNumber, 20 * 3 * 256);
             cellNumber ++;
         }
     }

+ 3 - 3
src/main/resources/mapper/assessment/AssessmentPlanAnswerResultMapper.xml

@@ -12,14 +12,14 @@
         SELECT t2.name AS class_name,
         (SELECT COUNT(a1.id) FROM assessment_plan_answer_student a1
         INNER JOIN base_student_school_roll a2 ON a1.student_user_id = a2.user_id WHERE a2.class_id = t1.class_id
-        AND a1.assessment_template_plan_id = t1.assessment_template_plan_id and a2.stduy_status = t3.stduy_status) AS student_count,
+        AND a1.assessment_template_plan_id = t1.assessment_template_plan_id and t3.stduy_status like concat('%', a2.stduy_status,'%')  AND a2.archives_status = 'FB2901') AS student_count,
         (SELECT COUNT(a1.id) FROM assessment_plan_answer_student a1
         INNER JOIN base_student_school_roll a2 ON a1.student_user_id = a2.user_id WHERE a2.class_id = t1.class_id AND a1.submit_status = 1
-        AND a1.assessment_template_plan_id = t1.assessment_template_plan_id and a2.stduy_status = t3.stduy_status) submitted_count,
+        AND a1.assessment_template_plan_id = t1.assessment_template_plan_id and t3.stduy_status like concat('%', a2.stduy_status,'%')  AND a2.archives_status = 'FB2901') submitted_count,
         (SELECT COUNT(a1.id) FROM assessment_plan_answer_student a1
         INNER JOIN base_student_school_roll a2 ON a1.student_user_id = a2.user_id WHERE a2.class_id = t1.class_id
         AND a1.assessment_template_plan_id = t1.assessment_template_plan_id AND (a1.submit_status = 0 OR a1.submit_status IS NULL)
-        and a2.stduy_status = t3.stduy_status) AS unsubmitted_count
+        and t3.stduy_status like concat('%', a2.stduy_status,'%')  AND a2.archives_status = 'FB2901') AS unsubmitted_count
         FROM assessment_plan_answer_class t1
         LEFT JOIN base_class t2 ON t1.class_id = t2.id
         left join assessment_template_plan t3 on t3.id = t1.assessment_template_plan_id

+ 18 - 7
src/main/resources/mapper/assessment/AssessmentTemplatePlanMapper.xml

@@ -23,7 +23,7 @@
         <if test="dto.status != null">
             and t1.status = #{dto.status}
         </if>
-        ORDER BY t1.create_date DESC
+        ORDER BY t1.id DESC
     </select>
     <select id="getStudentPage" parameterType="com.xjrsoft.module.assessment.dto.AssessmentPlanAnswerPageDto" resultType="com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerStudentPageVo">
         SELECT t1.id,t1.name,t1.score,t1.start_time,t1.status,t1.end_time,t2.name AS assessment_template_name,
@@ -56,10 +56,12 @@
         t1.assessment_template_id,t3.is_confirm,t3.class_id,t4.name as class_name,
         (select count(*) from assessment_plan_answer_student a1
         left join base_student_school_roll a2 on a1.student_user_id = a2.user_id
-        where a1.delete_mark = 0 and a1.assessment_template_plan_id = t1.id and a2.class_id = t3.class_id and a1.submit_status = 1) as submitted_count,
+        where a1.delete_mark = 0 and a1.assessment_template_plan_id = t1.id and a2.class_id = t3.class_id and a1.submit_status = 1
+        and t1.stduy_status like concat('%', a2.stduy_status,'%') AND a2.archives_status = 'FB2901') as submitted_count,
         (select count(*) from assessment_plan_answer_student a1
         left join base_student_school_roll a2 on a1.student_user_id = a2.user_id
-        where a1.delete_mark = 0 and a1.assessment_template_plan_id = t1.id and a2.class_id = t3.class_id and a1.submit_status = 0) as unsubmitted_count,
+        where a1.delete_mark = 0 and a1.assessment_template_plan_id = t1.id and a2.class_id = t3.class_id and a1.submit_status = 0
+        and t1.stduy_status like concat('%', a2.stduy_status,'%') AND a2.archives_status = 'FB2901') as unsubmitted_count,
         (t4.teacher_id = #{dto.teacherId}) AS is_mine,t1.is_need_confirm FROM assessment_template_plan t1
         LEFT JOIN assessment_template t2 ON t1.assessment_template_id = t2.id
         LEFT JOIN assessment_plan_answer_class t3 ON t3.assessment_template_plan_id = t1.id
@@ -91,12 +93,21 @@
     <select id="getMobilePage" parameterType="com.xjrsoft.module.assessment.dto.AssessmentTemplatePlanPageDto" resultType="com.xjrsoft.module.assessment.vo.AssessmentTemplatePlanPageVo">
         SELECT t1.id,t1.name,t1.score,t1.start_time,t1.status,t1.end_time,t2.name AS assessment_template_name,
         t1.assessment_template_id,
-        (SELECT COUNT(*) FROM assessment_plan_answer_student WHERE delete_mark = 0 AND assessment_template_plan_id = t1.id AND submit_status = 1) AS submittedCount,
-        (SELECT COUNT(*) FROM assessment_plan_answer_student WHERE delete_mark = 0 AND assessment_template_plan_id = t1.id AND (submit_status = 0 OR submit_status IS NULL)) AS unsubmittedCount,
-        (SELECT COUNT(*) FROM assessment_plan_answer_student WHERE delete_mark = 0 AND assessment_template_plan_id = t1.id) AS allCount
+        (select count(*) from assessment_plan_answer_student a1
+        left join base_student_school_roll a2 on a1.student_user_id = a2.user_id
+        where a1.delete_mark = 0 and a1.assessment_template_plan_id = t1.id and a1.submit_status = 1
+        and t1.stduy_status like concat('%', a2.stduy_status,'%') AND a2.archives_status = 'FB2901') as submitted_count,
+        (select count(*) from assessment_plan_answer_student a1
+        left join base_student_school_roll a2 on a1.student_user_id = a2.user_id
+        where a1.delete_mark = 0 and a1.assessment_template_plan_id = t1.id and (a1.submit_status = 0 OR a1.submit_status IS NULL)
+        and t1.stduy_status like concat('%', a2.stduy_status,'%') AND a2.archives_status = 'FB2901') as unsubmitted_count,
+        (select count(*) from assessment_plan_answer_student a1
+        left join base_student_school_roll a2 on a1.student_user_id = a2.user_id
+        where a1.delete_mark = 0 and a1.assessment_template_plan_id = t1.id
+        and t1.stduy_status like concat('%', a2.stduy_status,'%') AND a2.archives_status = 'FB2901') AS allCount
         FROM assessment_template_plan t1
         LEFT JOIN assessment_template t2 ON t1.assessment_template_id = t2.id
-        WHERE t1.delete_mark = 0 AND t1.status = 1
+        WHERE t1.delete_mark = 0 AND t1.status in (1, 2)
         <if test="dto.keyword != null and dto.keyword != ''">
             and t1.name like concat('%', #{dto.keyword}, '%')
         </if>