소스 검색

关联试卷管理group_concat问题解决

xiaof 4 년 전
부모
커밋
efb136d55e

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskDetailMapper.java

@@ -24,4 +24,5 @@ public interface ExamTaskDetailMapper extends BaseMapper<ExamTaskDetail> {
 
     List<ExamTaskDetail> listByTemplateId(Long templateId);
 
+    List<String> listExamDetailCourse(@Param("schoolId") Long schoolId, @Param("paperType") String paperType, @Param("printPlanId") Long printPlanId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber);
 }

+ 10 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -178,6 +178,15 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
         Set<Long> orgIds = commonService.listSubOrgIds(null);
         Page<ExamTaskDetailDto> page = new Page<>(pageNumber, pageSize);
         IPage<ExamTaskDetailDto> examDetailDtoIPage = this.baseMapper.listPage(page, schoolId, relateType, printPlanId, courseCode, paperNumber, orgIds);
+        examDetailDtoIPage.getRecords().stream().map(m -> {
+            String paperType = StringUtils.isBlank(m.getRelatePaperType()) ? null : m.getRelatePaperType();
+            Long printPlanIdT = Long.valueOf(m.getPrintPlanId());
+            String courseCodeT = m.getCourseCode();
+            String paperNumberT = m.getPaperNumber();
+            List<String> examDetailCourseIds = this.baseMapper.listExamDetailCourse(schoolId, paperType, printPlanIdT, courseCodeT, paperNumberT);
+            m.setExamDetailCourseIds(String.join(",", examDetailCourseIds));
+            return m;
+        }).collect(Collectors.toList());
         return examDetailDtoIPage;
     }
 
@@ -238,7 +247,7 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
         // 提交印刷的考场,不允许修改关联试卷
         ExamTask examTask = examTaskService.getById(examTaskDetail.getExamTaskId());
         List<ExamDetail> examDetails = examDetailService.listByCourseCodeAndPaperNumber(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber());
-        if (examDetails != null && examDetails.size() > 0){
+        if (examDetails != null && examDetails.size() > 0) {
             examDetails = examDetails.stream().filter(m -> !ExamDetailStatusEnum.NEW.equals(m.getStatus()) && !ExamDetailStatusEnum.READY.equals(m.getStatus())).collect(Collectors.toList());
             if (!examDetails.isEmpty()) {
                 throw ExceptionResultEnum.ERROR.exception("有考场已开始打印,不能修改");

+ 2 - 0
distributed-print-business/src/main/resources/db/init-table.sql

@@ -922,6 +922,7 @@ INSERT INTO `sys_privilege` VALUES (186,'印刷任务管理-查看印品','/api/
 INSERT INTO `sys_privilege` VALUES (187,'客户端登录','/api/admin/client/user/login','URL',NULL,1,'NO_AUTH',NULL,NULL,1);
 INSERT INTO `sys_privilege` VALUES (188,'考务明细查询-学生明细','/api/admin/exam/print/get_student_detail','URL',45,2,'SYS',NULL,1619502584844,1);
 INSERT INTO `sys_privilege` VALUES (189,'卷库查询-修改','/api/admin/exam/task/paper_update','URL',42,4,'AUTH',NULL,1619502584844,1);
+INSERT INTO `sys_privilege` VALUES (190,'任务管理-重新生成pdf','/api/admin/data/task/reset_create_pdf','URL',113,2,'AUTH',NULL,1619502584844,1);
 INSERT INTO `sys_privilege` VALUES (199,'客户端','client','MENU',NULL,22,NULL,NULL,1619502252306,1);
 INSERT INTO `sys_privilege` VALUES (200,'试卷打样-查询列表','/api/admin/client/paper_try/list','URL',199,2,'AUTH',NULL,NULL,1);
 INSERT INTO `sys_privilege` VALUES (201,'试卷打样-查看/试印/重印','/api/admin/client/paper_try/print','URL',199,3,'AUTH',NULL,NULL,1);
@@ -1240,6 +1241,7 @@ INSERT INTO `sys_role_privilege` VALUES (1384755205368246279,4,76,1);
 INSERT INTO `sys_role_privilege` VALUES (1384755205368246280,4,164,1);
 INSERT INTO `sys_role_privilege` VALUES (1384755205368246281,3,188,1);
 INSERT INTO `sys_role_privilege` VALUES (1384755205368246282,4,189,1);
+INSERT INTO `sys_role_privilege` VALUES (1384755205368246283,3,190,1);
 INSERT INTO `sys_role_privilege` VALUES (1384755205368247199, 6, 199, 1);
 INSERT INTO `sys_role_privilege` VALUES (1384755205368247200, 6, 200, 1);
 INSERT INTO `sys_role_privilege` VALUES (1384755205368247201, 6, 201, 1);

+ 35 - 4
distributed-print-business/src/main/resources/mapper/ExamTaskDetailMapper.xml

@@ -40,8 +40,7 @@
             d.exposed_paper_type exposedPaperType,
             d.unexposed_paper_type unexposedPaperType,
             a.paper_type relatePaperType,
-            a.total_subjects totalSubjects,
-            a.exam_detail_course_ids examDetailCourseIds
+            a.total_subjects totalSubjects
         FROM
         (SELECT
             a.school_id,
@@ -51,8 +50,7 @@
             b.course_code,
             b.course_name,
             b.paper_type,
-            SUM(b.total_subjects) total_subjects,
-            group_concat(b.id) exam_detail_course_ids
+            SUM(b.total_subjects) total_subjects
         FROM
             exam_detail a
             LEFT JOIN exam_detail_course b ON a.id = b.exam_detail_id
@@ -112,4 +110,37 @@
                     a.card_id = b.id
                         AND b.template_id = #{templateId})
     </select>
+    <select id="listExamDetailCourse" resultType="java.lang.String">
+        SELECT
+            b.id
+        FROM
+            exam_detail a
+            LEFT JOIN exam_detail_course b ON a.id = b.exam_detail_id
+            LEFT JOIN
+            exam_task c ON a.school_id = c.school_id
+                AND b.course_code = c.course_code
+                AND b.paper_number = c.paper_number
+            LEFT JOIN
+            sys_user g ON c.create_id = g.id
+        <where>
+            <if test="schoolId != null and schoolId != ''">
+                and a.school_id = #{schoolId}
+            </if>
+            <if test="paperType != null">
+                and b.paper_type = #{paperType}
+            </if>
+            <if test="paperType == null">
+                and b.paper_type is null
+            </if>
+            <if test="printPlanId != null and printPlanId != ''">
+                and a.print_plan_id = #{printPlanId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and c.course_code = #{courseCode}
+            </if>
+            <if test="paperNumber != null and paperNumber != ''">
+                and c.paper_number = #{paperNumber}
+            </if>
+        </where>
+    </select>
 </mapper>