Bläddra i källkod

3.2.7 bug修改

xiaofei 1 år sedan
förälder
incheckning
10526c7cf5

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

@@ -46,4 +46,6 @@ public interface ExamDetailCourseMapper extends BaseMapper<ExamDetailCourse> {
     List<SyncExamTaskDto> listSyncCourseByExamId(@Param("schoolId") Long schoolId, @Param("examId") Long examId);
 
     TbTaskDetailResult getByExamDetailId(Long examDetailId);
+
+    List<String> listPaperNumberByPrintPlanId(@Param("param") String param, @Param("printPlanIdList") List<Long> printPlanIdList, @Param("orgIds") Set<Long> orgIds);
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCourseService.java

@@ -45,4 +45,6 @@ public interface ExamDetailCourseService extends IService<ExamDetailCourse> {
     List<SyncExamTaskDto> listSyncCourseByExamId(Long schoolId, Long examId);
 
     TbTaskDetailResult getByExamDetailId(Long examDetailId);
+
+    List<String> listPaperNumberByPrintPlanId(String param, List<Long> printPlanIdList, Set<Long> orgIds);
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java

@@ -218,4 +218,6 @@ public interface ExamTaskService extends IService<ExamTask> {
     boolean savePreviewLog(Long examTaskId, String paperType, String type);
 
     List<ExamTask> getExamTaskByCourseCodeAndCardId(Long schoolId, String courseCode, String cardId);
+
+    List<String> listPaperNumber(String param, List<Long> printPlanIdList);
 }

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -299,6 +299,8 @@ public class DataSyncServiceImpl implements DataSyncService {
                 }
                 boolean saveMarkerGroup = cloudMarkingTaskUtils.saveMarkerGroup(schoolId, examId, subjectCode, 0, groupDetailDTOS);
                 examPaperStructure.setStatus(ExamPaperStructure.parseStatus(examPaperStructure.getStatus(), ExamPaperStructureStatusTypeEnum.GROUP.getType(), "sync", saveMarkerGroup));
+            } else {
+                examPaperStructure.setStatus(ExamPaperStructure.parseStatus(examPaperStructure.getStatus(), ExamPaperStructureStatusTypeEnum.GROUP.getType(), "sync", true));
             }
 
             // 所有分组下评卷员集合(分班阅使用)
@@ -606,7 +608,6 @@ public class DataSyncServiceImpl implements DataSyncService {
                 if (examPaperStructure.getOpenClassReading()) {
                     List<ExamPaperClassMarker> examPaperClassMarkers = examPaperClassMarkerService.listByExamPaperStructureId(examPaperStructure.getId());
                     if (!CollectionUtils.isEmpty(examPaperClassMarkers)) {
-
                         for (ExamPaperClassMarker examPaperClassMarker : examPaperClassMarkers) {
                             String className = examPaperClassMarker.getClassName();
                             List<String> classNames = Arrays.asList(className.split(","));

+ 5 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java

@@ -176,4 +176,9 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
     public TbTaskDetailResult getByExamDetailId(Long examDetailId) {
         return this.baseMapper.getByExamDetailId(examDetailId);
     }
+
+    @Override
+    public List<String> listPaperNumberByPrintPlanId(String param, List<Long> printPlanIdList, Set<Long> orgIds) {
+        return this.baseMapper.listPaperNumberByPrintPlanId(SystemConstant.translateSpecificSign(param), printPlanIdList, orgIds);
+    }
 }

+ 41 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -2061,6 +2061,47 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         return this.baseMapper.getExamTaskByCourseCodeAndCardId(schoolId, courseCode, cardId);
     }
 
+    @Override
+    public List<String> listPaperNumber(String param, List<Long> printPlanIdList) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        SysOrg sysOrg = sysOrgService.getById(sysUser.getOrgId());
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        if (printPlanIdList.size() == 0) {
+            // 查询命题任务中的试卷编号
+            QueryWrapper<ExamTask> queryWrapperExamTask = new QueryWrapper<>();
+            queryWrapperExamTask.lambda().eq(ExamTask::getSchoolId, schoolId);
+            if (sysOrg != null && !OrgTypeEnum.PRINTING_HOUSE.equals(sysOrg.getType()) && orgIds.size() > 0) {
+                queryWrapperExamTask.lambda().in(ExamTask::getOrgId, orgIds);
+            }
+            List<String> list = new ArrayList<>();
+            if (StringUtils.isNotBlank(param)) {
+                queryWrapperExamTask.lambda().and(i -> i.like(ExamTask::getCourseCode, SystemConstant.translateSpecificSign(param)).or().like(ExamTask::getCourseName, SystemConstant.translateSpecificSign(param)));
+            }
+            List<ExamTask> examTasks = this.list(queryWrapperExamTask);
+            if (examTasks != null && examTasks.size() > 0) {
+                list = examTasks.stream().map(ExamTask::getPaperNumber).distinct().collect(Collectors.toList());
+            }
+
+            // 查询考务-科目中的试卷编号
+            QueryWrapper<ExamDetailCourse> queryWrapperExamDetailCourse = new QueryWrapper<>();
+            queryWrapperExamDetailCourse.lambda().eq(ExamDetailCourse::getSchoolId, schoolId);
+            List<String> list2 = new ArrayList<>();
+            if (StringUtils.isNotBlank(param)) {
+                queryWrapperExamDetailCourse.lambda().and(i -> i.like(ExamDetailCourse::getCourseCode, SystemConstant.translateSpecificSign(param))
+                        .or().like(ExamDetailCourse::getCourseName, SystemConstant.translateSpecificSign(param)));
+            }
+            List<ExamDetailCourse> ExamDetailCourses = examDetailCourseService.list(queryWrapperExamDetailCourse);
+            if (ExamDetailCourses != null && ExamDetailCourses.size() > 0) {
+                list2 = ExamDetailCourses.stream().map(ExamDetailCourse::getPaperNumber).distinct().collect(Collectors.toList());
+            }
+            list.addAll(list2);
+            return list.stream().distinct().collect(Collectors.toList());
+        } else {
+            return examDetailCourseService.listPaperNumberByPrintPlanId(param, printPlanIdList, orgIds);
+        }
+    }
+
     /**
      * 简单校验提交参数
      *

+ 2 - 1
distributed-print-business/src/main/resources/db/log/脚本-xiaof.sql

@@ -305,4 +305,5 @@ UPDATE `sys_privilege` SET `enable` = '0', `front_display` = '0' WHERE (`id` = '
 UPDATE `sys_privilege` SET `enable` = '0', `front_display` = '0' WHERE (`id` = '308');
 UPDATE `sys_privilege` SET `enable` = '0', `front_display` = '0' WHERE (`id` = '512');
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('330', '重新生成pdf', 'CreatePdf', 'LINK', '47', '6', 'AUTH', '190', '1', '0', '1');
-UPDATE `sys_privilege` SET `enable` = '0', `front_display` = '0' WHERE (`id` = '857');
+UPDATE `sys_privilege` SET `enable` = '0', `front_display` = '0' WHERE (`id` = '857');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('140', '模糊查询-试卷编号', '/api/admin/exam/task/paper_number_query', 'URL', '136', '4', 'SYS', '1', '1', '1');

+ 1 - 0
distributed-print-business/src/main/resources/db/upgrade/3.2.7.sql

@@ -212,3 +212,4 @@ UPDATE `sys_privilege` SET `enable` = '0', `front_display` = '0' WHERE (`id` = '
 UPDATE `sys_privilege` SET `enable` = '0', `front_display` = '0' WHERE (`id` = '512');
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('330', '重新生成pdf', 'CreatePdf', 'LINK', '47', '6', 'AUTH', '190', '1', '0', '1');
 UPDATE `sys_privilege` SET `enable` = '0', `front_display` = '0' WHERE (`id` = '857');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('140', '模糊查询-试卷编号', '/api/admin/exam/task/paper_number_query', 'URL', '136', '4', 'SYS', '1', '1', '1');

+ 25 - 0
distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml

@@ -399,4 +399,29 @@
             ed.id = #{examDetailId}
         GROUP BY be.semester_id , ed.exam_id
     </select>
+    <select id="listPaperNumberByPrintPlanId" resultType="java.lang.String">
+        SELECT
+        distinct a.paper_number paperNumber
+        FROM
+        exam_detail_course a
+        LEFT JOIN
+        exam_detail b ON a.exam_detail_id = b.id
+        <where>
+            <if test="printPlanIdList != null and printPlanIdList != '' and printPlanIdList.size() > 0">
+                and b.print_plan_id IN
+                <foreach collection="printPlanIdList" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="param != null and param != ''">
+                and a.paper_number like concat('%', #{param},'%')
+            </if>
+            <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
+                AND a.org_id IN
+                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 </mapper>

+ 14 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -237,5 +237,19 @@ public class ExamTaskController {
         ExamTaskApplyTemp task = examTaskApplyTempService.stageTaskApply(examTaskApplyTemp);
         return ResultUtil.ok(task);
     }
+
+    /**
+     * 试卷编号模糊查询
+     */
+    @ApiOperation(value = "试卷编号模糊查询")
+    @RequestMapping(value = "/paper_number_query", method = RequestMethod.POST)
+    public Result paperNumberQuery(@RequestParam(value = "param", required = false) String param,
+                                   @RequestParam(value = "printPlanId", required = false) List<String> printPlanId) {
+        if (Objects.isNull(printPlanId)) {
+            printPlanId = new ArrayList<>();
+        }
+        List<Long> printPlanIdList = printPlanId.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
+        return ResultUtil.ok(examTaskService.listPaperNumber(param, printPlanIdList));
+    }
 }