Преглед на файлове

3.2.1-暂存任务后再找开题卡未查到问题修复

xiaof преди 2 години
родител
ревизия
db873af2e9

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamCardMapper.java

@@ -35,4 +35,6 @@ public interface ExamCardMapper extends BaseMapper<ExamCard> {
     List<SyncExamCardDto> listSyncCardByCourseCodeAndPaperNumber(@Param("schoolId") Long schoolId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber);
 
     IPage<ExamCard> listPage(@Param("page") Page<ExamCard> page, @Param("schoolId") Long schoolId, @Param("type") String type, @Param("title") String title, @Param("createMethod") String createMethod, @Param("enable") Boolean enable, @Param("createStartTime") Long createStartTime, @Param("createEndTime") Long createEndTime);
+
+    List<ExamCard> listCustomByExamStage(@Param("schoolId") Long schoolId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("type") String type);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamCardService.java

@@ -33,7 +33,7 @@ public interface ExamCardService extends IService<ExamCard> {
 
     ExamCard getOneByTemplateId(Long id);
 
-    List<ExamCard> listSelectCard(String courseCode, Long cardRuleId);
+    List<ExamCard> listSelectCard(String courseCode, Long cardRuleId, String paperNumber);
 
     void downloadFiles(HttpServletResponse response, ArraysParams arraysParams) throws Exception;
 

+ 7 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java

@@ -250,7 +250,7 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
     }
 
     @Override
-    public List<ExamCard> listSelectCard(String courseCode, Long cardRuleId) {
+    public List<ExamCard> listSelectCard(String courseCode, Long cardRuleId, String paperNumber) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
@@ -272,6 +272,12 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
                 }
             }
         }
+
+        // 命题任务未提交的任务,单独查询题卡
+        List<ExamCard> customCards = this.baseMapper.listCustomByExamStage(schoolId, courseCode, paperNumber, CardTypeEnum.CUSTOM.name());
+        if (!customCards.isEmpty()) {
+            list.addAll(customCards);
+        }
         list.sort(Comparator.comparing(ExamCard::getType));
         return list;
     }

+ 18 - 0
distributed-print-business/src/main/resources/mapper/ExamCardMapper.xml

@@ -208,4 +208,22 @@
             </if>
         </where>
     </select>
+    <select id="listCustomByExamStage" resultType="com.qmth.distributed.print.business.entity.ExamCard">
+        SELECT
+            a.id, a.title, a.type, a.create_id createId, a.make_method makeMethod, a.create_method createMethod
+        FROM
+            exam_card a
+        WHERE
+            a.school_id = #{schoolId}
+          AND a.type = #{type}
+          AND a.course_code = #{courseCode}
+          AND EXISTS( SELECT
+                              1
+                          FROM
+                              exam_task_detail b
+                                  LEFT JOIN exam_task et on b.exam_task_id = et.id
+                          WHERE
+                              et.paper_number = #{paperNumber} and et.status = 'STAGE' and FIND_IN_SET(a.id, REPLACE(substring_index(substring_index(CONVERT((b.paper_attachment_ids ->>'$[*].cardId') USING utf8), ']', 1), '[',-1),'"','')))
+        order by a.create_time desc
+    </select>
 </mapper>

+ 2 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java

@@ -178,9 +178,9 @@ public class ExamCardController {
      */
     @ApiOperation(value = "选择已有题卡列表")
     @RequestMapping(value = "/select_card_list", method = RequestMethod.POST)
-    public Result selectCardList(@RequestParam String examId,@RequestParam String courseCode) {
+    public Result selectCardList(@RequestParam String examId,@RequestParam String courseCode, @RequestParam(required = false) String paperNumber) {
         BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndCourseCode(SystemConstant.convertIdToLong(examId),courseCode);
-        List<ExamCard> list = examCardService.listSelectCard(courseCode, basicPrintConfig.getCardRuleId());
+        List<ExamCard> list = examCardService.listSelectCard(courseCode, basicPrintConfig.getCardRuleId(), paperNumber);
         return ResultUtil.ok(list);
     }