浏览代码

fix:教研分析部分改动(兼容模式四)

caozixuan 11 月之前
父节点
当前提交
f90c377347

+ 22 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ConditionMapper.java

@@ -4,7 +4,6 @@ import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.result.DictionaryResult;
 import com.qmth.teachcloud.common.bean.result.DictionaryResult;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.entity.BasicCourse;
-import com.qmth.teachcloud.common.entity.SysOrg;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
@@ -16,9 +15,11 @@ import java.util.List;
  */
  */
 public interface ConditionMapper {
 public interface ConditionMapper {
 
 
-    List<BasicCourse> listCourse(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("enable") Boolean enable, @Param("printPlanIds") List<String> printPlanIds, @Param("dpr") DataPermissionRule dpr);
+    List<BasicCourse> listCourse(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("enable") Boolean enable, @Param("printPlanIds") List<String> printPlanIds,
+            @Param("dpr") DataPermissionRule dpr);
 
 
-    List<String> listPaperNumber(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseId") Long courseId, @Param("printPlanIds") List<String> printPlanIds, @Param("dpr") DataPermissionRule dpr);
+    List<String> listPaperNumber(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseId") Long courseId, @Param("printPlanIds") List<String> printPlanIds,
+            @Param("dpr") DataPermissionRule dpr);
 
 
     List<BasicCourse> listCourseForApply(@Param("examId") Long examId, @Param("userId") Long userId);
     List<BasicCourse> listCourseForApply(@Param("examId") Long examId, @Param("userId") Long userId);
 
 
@@ -36,7 +37,8 @@ public interface ConditionMapper {
 
 
     List<BasicCourse> listCourseForPlanTask(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanIds") List<String> printPlanIds, @Param("dpr") DataPermissionRule dpr);
     List<BasicCourse> listCourseForPlanTask(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanIds") List<String> printPlanIds, @Param("dpr") DataPermissionRule dpr);
 
 
-    List<String> listPaperNumberPlanTask(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanIds") List<String> printPlanIds, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
+    List<String> listPaperNumberPlanTask(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanIds") List<String> printPlanIds, @Param("courseId") Long courseId,
+            @Param("dpr") DataPermissionRule dpr);
 
 
     List<BasicCourse> listCourseForEntrance(@Param("examId") Long examId, @Param("userId") Long userId, @Param("status") String status);
     List<BasicCourse> listCourseForEntrance(@Param("examId") Long examId, @Param("userId") Long userId, @Param("status") String status);
 
 
@@ -47,9 +49,11 @@ public interface ConditionMapper {
     List<String> listPaperNumberFromMarkPaper(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
     List<String> listPaperNumberFromMarkPaper(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
 
 
     List<BasicCourse> listCourseFromExamTaskByCreateId(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
     List<BasicCourse> listCourseFromExamTaskByCreateId(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
+
     List<BasicCourse> listCourseFromExamTaskByUserId(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
     List<BasicCourse> listCourseFromExamTaskByUserId(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
 
 
     List<String> listPaperNumberFromExamTaskByCreateId(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
     List<String> listPaperNumberFromExamTaskByCreateId(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
+
     List<String> listPaperNumberFromExamTaskByUserIdAndPass(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
     List<String> listPaperNumberFromExamTaskByUserIdAndPass(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
 
 
     List<BasicCourse> listCourseForQuery(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
     List<BasicCourse> listCourseForQuery(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
@@ -63,10 +67,10 @@ public interface ConditionMapper {
     List<String> listPaperNumberForScore(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
     List<String> listPaperNumberForScore(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
 
 
     List<DictionaryResult> listOutlineSemester(@Param("schoolId") Long schoolId, @Param("professionalId") Long professionalId, @Param("cultureProgramId") Long cultureProgramId,
     List<DictionaryResult> listOutlineSemester(@Param("schoolId") Long schoolId, @Param("professionalId") Long professionalId, @Param("cultureProgramId") Long cultureProgramId,
-                                               @Param("dpr") DataPermissionRule dpr);
+            @Param("dpr") DataPermissionRule dpr);
 
 
     List<BasicCourse> listCultureProgramCourse(@Param("schoolId") Long schoolId, @Param("professionalId") Long professionalId, @Param("cultureProgramId") Long cultureProgramId,
     List<BasicCourse> listCultureProgramCourse(@Param("schoolId") Long schoolId, @Param("professionalId") Long professionalId, @Param("cultureProgramId") Long cultureProgramId,
-                                               @Param("semesterId") Long semesterId, @Param("dpr") DataPermissionRule dpr);
+            @Param("semesterId") Long semesterId, @Param("dpr") DataPermissionRule dpr);
 
 
     List<BasicCourse> listCourseForDocument(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
     List<BasicCourse> listCourseForDocument(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
 
 
@@ -74,11 +78,22 @@ public interface ConditionMapper {
 
 
     List<String> listPaperNumberFromBasicExamStudent(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
     List<String> listPaperNumberFromBasicExamStudent(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
 
 
-    List<BasicCourse> listCourseForPrintCount(@Param("examId") Long examId, @Param("openCollegeId") Long openCollegeId, @Param("dpr") DataPermissionRule dpr);
+    List<BasicCourse> listCourseForPrintCount(@Param("examId") Long examId, @Param("openCollegeId") Long openCollegeId,
+            @Param("dpr") DataPermissionRule dpr);
 
 
     List<BasicCourse> listCourseForScanCount(@Param("examId") Long examId, @Param("openCollegeId") Long openCollegeId, @Param("dpr") DataPermissionRule dpr);
     List<BasicCourse> listCourseForScanCount(@Param("examId") Long examId, @Param("openCollegeId") Long openCollegeId, @Param("dpr") DataPermissionRule dpr);
 
 
     List<String> listPaperNumberForPrintCount(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
     List<String> listPaperNumberForPrintCount(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
 
 
     List<String> listPaperNumberForScanCount(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
     List<String> listPaperNumberForScanCount(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
+
+    /**
+     * 分析批次管理查询课程
+     *
+     * @param examId    考试id
+     * @param collegeId 开课学院id
+     * @param dpr       数据权限
+     * @return 课程
+     */
+    List<BasicCourse> listCourseForGradeBatchPaper(@Param("examId") Long examId, @Param("collegeId") Long collegeId, @Param("dpr") DataPermissionRule dpr);
 }
 }

+ 7 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java

@@ -128,6 +128,10 @@ public class ConditionServiceImpl implements ConditionService {
         else if ("491".equals(privilegeIdString)) {
         else if ("491".equals(privilegeIdString)) {
             return conditionMapper.listCourseForEntrance(examId, sysUser.getId(), MarkPaperStatus.FORMAL.name());
             return conditionMapper.listCourseForEntrance(examId, sysUser.getId(), MarkPaperStatus.FORMAL.name());
         }
         }
+        // 分析批次管理&&蓝图设置
+        else if ("681".equals(privilegeIdString) || "708".equals(privilegeIdString)) {
+            return conditionMapper.listCourseForGradeBatchPaper(examId, openCollegeId, dpr);
+        }
         // 评卷设置(897)、评卷管理(917)、成绩检查(946)
         // 评卷设置(897)、评卷管理(917)、成绩检查(946)
         else if ("897".equals(privilegeIdString) || "917".equals(privilegeIdString) || "946".equals(privilegeIdString)) {
         else if ("897".equals(privilegeIdString) || "917".equals(privilegeIdString) || "946".equals(privilegeIdString)) {
             return conditionMapper.listCourseFromMarkPaper(examId, dpr);
             return conditionMapper.listCourseFromMarkPaper(examId, dpr);
@@ -210,7 +214,7 @@ public class ConditionServiceImpl implements ConditionService {
         } // 扫描任务统计(2089)
         } // 扫描任务统计(2089)
         else if ("2089".equals(privilegeIdString)) {
         else if ("2089".equals(privilegeIdString)) {
             return conditionMapper.listPaperNumberForScanCount(examId, courseId, dpr);
             return conditionMapper.listPaperNumberForScanCount(examId, courseId, dpr);
-        }else {
+        } else {
             return conditionMapper.listPaperNumber(semesterId, examId, courseId, printPlanIds, dpr);
             return conditionMapper.listPaperNumber(semesterId, examId, courseId, printPlanIds, dpr);
         }
         }
     }
     }
@@ -223,8 +227,8 @@ public class ConditionServiceImpl implements ConditionService {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
 
         if ("client".equals(source)) {
         if ("client".equals(source)) {
-            String[] examDetailStatus = new String[]{ExamDetailStatusEnum.NEW.name(),
-                    PrintPlanStatusEnum.READY.name()};
+            String[] examDetailStatus = new String[] { ExamDetailStatusEnum.NEW.name(),
+                    PrintPlanStatusEnum.READY.name() };
             return conditionMapper.listPrintPlanForClient(semesterId, examId, examDetailStatus);
             return conditionMapper.listPrintPlanForClient(semesterId, examId, examDetailStatus);
         } else {
         } else {
             // 如果byAssignUser为true时,不能通过层级关系查询
             // 如果byAssignUser为true时,不能通过层级关系查询

+ 22 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchPaperServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.service.impl;
 package com.qmth.distributed.print.business.service.impl;
 
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -14,13 +15,17 @@ import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.result.DictionaryResult;
 import com.qmth.teachcloud.common.bean.result.DictionaryResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
+import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.mark.entity.MarkPaper;
+import com.qmth.teachcloud.mark.service.MarkPaperService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
@@ -68,6 +73,12 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
     @Resource
     @Resource
     BasicRoleDataPermissionService basicRoleDataPermissionService;
     BasicRoleDataPermissionService basicRoleDataPermissionService;
 
 
+    @Resource
+    MarkPaperService markPaperService;
+
+    @Resource
+    BasicCourseService basicCourseService;
+
     @Override
     @Override
     public IPage<GradeBatchPaperResult> findGradeBatchPaperPage(Long batchId, Long examId, String courseName, int pageNumber, int pageSize, SysUser requestUser) {
     public IPage<GradeBatchPaperResult> findGradeBatchPaperPage(Long batchId, Long examId, String courseName, int pageNumber, int pageSize, SysUser requestUser) {
         Long schoolId = requestUser.getSchoolId();
         Long schoolId = requestUser.getSchoolId();
@@ -330,14 +341,18 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
 
 
     @Override
     @Override
     public List<DictionaryResult> findTeachCollegeList(Long schoolId, Long examId) {
     public List<DictionaryResult> findTeachCollegeList(Long schoolId, Long examId) {
-        QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
-        examTaskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId);
-        if (SystemConstant.longNotNull(examId)) {
-            examTaskQueryWrapper.lambda().eq(ExamTask::getExamId, examId);
-        }
         // 命题任务教研室id集合
         // 命题任务教研室id集合
-        List<Long> teachingRoomIdList = examTaskService.list(examTaskQueryWrapper).stream()
-                .map(ExamTask::getTeachingRoomId).distinct().collect(Collectors.toList());
+        List<Long> courseIdList = markPaperService.list(new QueryWrapper<MarkPaper>().lambda()
+                .eq(MarkPaper::getExamId, examId)).stream().map(
+                MarkPaper::getCourseId).distinct().collect(
+                Collectors.toList());
+
+        List<Long> teachingRoomIdList = new ArrayList<>();
+        if (CollectionUtil.isNotEmpty(courseIdList)){
+            teachingRoomIdList = basicCourseService.listByIds(courseIdList).stream().map(
+                    BasicCourse::getTeachingRoomId).distinct().collect(
+                    Collectors.toList());
+        }
 
 
         List<SysOrg> teachOrgList = new ArrayList<>();
         List<SysOrg> teachOrgList = new ArrayList<>();
         Map<Long, Long> keyMap = new HashMap<>();
         Map<Long, Long> keyMap = new HashMap<>();

+ 15 - 18
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradePaperStructServiceImpl.java

@@ -9,10 +9,8 @@ import com.qmth.distributed.print.business.bean.dto.open.PaperStructure;
 import com.qmth.distributed.print.business.bean.params.analyze.GradePaperStructDatasource;
 import com.qmth.distributed.print.business.bean.params.analyze.GradePaperStructDatasource;
 import com.qmth.distributed.print.business.bean.params.analyze.GradePaperStructParam;
 import com.qmth.distributed.print.business.bean.params.analyze.GradePaperStructParam;
 import com.qmth.distributed.print.business.bean.result.analyze.GradePaperStructResult;
 import com.qmth.distributed.print.business.bean.result.analyze.GradePaperStructResult;
-import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.GradePaperStruct;
 import com.qmth.distributed.print.business.entity.GradePaperStruct;
 import com.qmth.distributed.print.business.mapper.GradePaperStructMapper;
 import com.qmth.distributed.print.business.mapper.GradePaperStructMapper;
-import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.service.GradeBatchPaperService;
 import com.qmth.distributed.print.business.service.GradeBatchPaperService;
 import com.qmth.distributed.print.business.service.GradePaperStructService;
 import com.qmth.distributed.print.business.service.GradePaperStructService;
 import com.qmth.teachcloud.common.bean.marking.Question;
 import com.qmth.teachcloud.common.bean.marking.Question;
@@ -26,6 +24,8 @@ import com.qmth.teachcloud.common.enums.ObjectiveType;
 import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.mark.entity.MarkPaper;
+import com.qmth.teachcloud.mark.service.MarkPaperService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.CollectionUtils;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -55,10 +55,10 @@ public class GradePaperStructServiceImpl extends ServiceImpl<GradePaperStructMap
     private GradeBatchPaperService gradeBatchPaperService;
     private GradeBatchPaperService gradeBatchPaperService;
 
 
     @Resource
     @Resource
-    private ExamTaskService examTaskService;
+    private BasicCourseService basicCourseService;
 
 
     @Resource
     @Resource
-    private BasicCourseService basicCourseService;
+    private MarkPaperService markPaperService;
 
 
     @Override
     @Override
     public List<GradePaperStructResult> findGradePaperStructureResultList(Long examId, String paperNumber, String paperType, SysUser requestUser, List<MarkQuestionResult> markQuestionList) {
     public List<GradePaperStructResult> findGradePaperStructureResultList(Long examId, String paperNumber, String paperType, SysUser requestUser, List<MarkQuestionResult> markQuestionList) {
@@ -80,17 +80,14 @@ public class GradePaperStructServiceImpl extends ServiceImpl<GradePaperStructMap
             List<Question> examPaperObjList = examCloudPaperStructMap.get(ObjectiveType.OBJECTIVE);
             List<Question> examPaperObjList = examCloudPaperStructMap.get(ObjectiveType.OBJECTIVE);
             List<Question> examPaperSubList = examCloudPaperStructMap.get(ObjectiveType.SUBJECTIVE);
             List<Question> examPaperSubList = examCloudPaperStructMap.get(ObjectiveType.SUBJECTIVE);
 
 
-            List<ExamTask> examTaskList = examTaskService.list(
-                    new QueryWrapper<ExamTask>().lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getExamId, examId).eq(ExamTask::getPaperNumber, paperNumber));
-            if (Objects.isNull(examTaskList)) {
-                throw ExceptionResultEnum.ERROR.exception("没有找到试卷编号对应的命题任务");
-            }
-            if (examTaskList.size() > 1) {
-                throw ExceptionResultEnum.ERROR.exception("有多个考试任务异常");
+            MarkPaper markPaper = markPaperService.getOne(
+                    new QueryWrapper<MarkPaper>().lambda().eq(MarkPaper::getExamId, examId).eq(MarkPaper::getPaperNumber, paperNumber).eq(MarkPaper::getPaperType, paperType)
+                            .last(SystemConstant.LIMIT1));
+            if (Objects.isNull(markPaper)) {
+                throw ExceptionResultEnum.ERROR.exception("没有找到试卷编号对应的试卷结构");
             }
             }
-            ExamTask examTask = examTaskList.get(0);
 
 
-            Long courseId = examTask.getCourseId();
+            Long courseId = markPaper.getCourseId();
             BasicCourse basicCourse = basicCourseService.getById(courseId);
             BasicCourse basicCourse = basicCourseService.getById(courseId);
             if (Objects.isNull(basicCourse)) {
             if (Objects.isNull(basicCourse)) {
                 throw ExceptionResultEnum.ERROR.exception("没有找到课程信息");
                 throw ExceptionResultEnum.ERROR.exception("没有找到课程信息");
@@ -209,12 +206,12 @@ public class GradePaperStructServiceImpl extends ServiceImpl<GradePaperStructMap
     @Override
     @Override
     public void exportGradePaperStructTemplate(Long examId, String paperNumber, String paperType, @NotNull SysUser requestUser, List<MarkQuestionResult> markQuestionList) throws Exception {
     public void exportGradePaperStructTemplate(Long examId, String paperNumber, String paperType, @NotNull SysUser requestUser, List<MarkQuestionResult> markQuestionList) throws Exception {
 
 
-        ExamTask examTask = examTaskService.getOne(
-                new QueryWrapper<ExamTask>().lambda().eq(ExamTask::getSchoolId, requestUser.getSchoolId()).eq(ExamTask::getPaperNumber, paperNumber));
-        if (Objects.isNull(examTask)) {
-            throw ExceptionResultEnum.ERROR.exception("没有找到试卷编号对应的命题任务");
+        MarkPaper markPaper = markPaperService.getOne(
+                new QueryWrapper<MarkPaper>().lambda().eq(MarkPaper::getExamId,examId).eq(MarkPaper::getPaperNumber, paperNumber).eq(MarkPaper::getPaperType,paperType));
+        if (Objects.isNull(markPaper)) {
+            throw ExceptionResultEnum.ERROR.exception("没有找到试卷编号对应的试卷结构");
         }
         }
-        Long courseId = examTask.getCourseId();
+        Long courseId = markPaper.getCourseId();
         BasicCourse basicCourse = basicCourseService.getById(courseId);
         BasicCourse basicCourse = basicCourseService.getById(courseId);
         if (Objects.isNull(basicCourse)) {
         if (Objects.isNull(basicCourse)) {
             throw ExceptionResultEnum.ERROR.exception("未找到课程信息");
             throw ExceptionResultEnum.ERROR.exception("未找到课程信息");

+ 30 - 1
distributed-print-business/src/main/resources/mapper/ConditionMapper.xml

@@ -590,7 +590,7 @@
         </where>
         </where>
         order by a.create_time desc
         order by a.create_time desc
     </select>
     </select>
-    <select id="listCourseForQuery" resultType="com.qmth.teachcloud.common.entity.BasicCourse">
+     <select id="listCourseForQuery" resultType="com.qmth.teachcloud.common.entity.BasicCourse">
         SELECT
         SELECT
             bc.id,
             bc.id,
             bc.code,
             bc.code,
@@ -1046,4 +1046,33 @@
             </if>
             </if>
         </where>
         </where>
     </select>
     </select>
+    <select id="listCourseForGradeBatchPaper" resultType="com.qmth.teachcloud.common.entity.BasicCourse">
+        SELECT
+            bc.id,
+            bc.code,
+            bc.name
+        FROM basic_course bc
+            LEFT JOIN
+        sys_user su ON bc.create_id = su.id
+        <where>
+            AND EXISTS (SELECT 1 FROM mark_paper mp WHERE mp.exam_id = #{examId} AND mp.course_id = bc.id)
+            <if test="collegeId != null">
+                AND bc.teaching_room_id = #{collegeId}
+            </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND bc.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.courseUserId != null">
+                    AND EXISTS( SELECT 1 FROM (select course_id from teach_course where exam_id = #{examId} and user_id = #{dpr.courseUserId}) tc WHERE tc.course_id = bc.id)
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND bc.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
+        </where>
+    </select>
 </mapper>
 </mapper>

+ 45 - 43
distributed-print-business/src/main/resources/mapper/GradeBatchPaperMapper.xml

@@ -24,36 +24,41 @@
     <select id="findGradeBatchPaperPage"
     <select id="findGradeBatchPaperPage"
             resultType="com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult">
             resultType="com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult">
         SELECT
         SELECT
-        gbp.id AS id,
-        bs.name AS semesterName,
-        be.name AS examName,
-        su.real_name AS teacherName,
-        bc.code AS courseCode,
-        bc.name AS courseName,
-        so.id AS teachCollegeId,
-        so.name AS teachCollegeName,
-        gbp.paper_number AS paperNumber,
-        gbp.paper_type AS paperType,
-        gbp.paper_name AS paperName,
-        gbp.status AS status,
-        gbp.publish_status AS publishStatus
+            gbp.id AS id,
+            bs.name AS semesterName,
+            be.name AS examName,
+            su.real_name AS teacherName,
+            bc.code AS courseCode,
+            bc.name AS courseName,
+            so.id AS teachCollegeId,
+            so.name AS teachCollegeName,
+            gbp.paper_number AS paperNumber,
+            gbp.paper_type AS paperType,
+            gbp.paper_name AS paperName,
+            gbp.status AS status,
+            gbp.publish_status AS publishStatus
         FROM
         FROM
-        grade_batch_paper gbp
-        LEFT JOIN
-        exam_task et ON gbp.school_id = et.school_id
-        AND gbp.paper_number = et.paper_number AND gbp.exam_id = et.exam_id
-        LEFT JOIN
-        basic_exam be ON et.school_id = be.school_id
-        AND et.exam_id = be.id
-        LEFT JOIN
-        basic_semester bs ON be.school_id = bs.school_id
-        AND be.semester_id = bs.id
-        LEFT JOIN
-        sys_user su ON et.user_id = su.id
-        LEFT JOIN
-        basic_course bc ON bc.id = et.course_id
-        LEFT JOIN
-        sys_org so ON so.id = bc.teaching_room_id
+            grade_batch_paper gbp
+                LEFT JOIN
+            basic_exam be ON gbp.school_id = be.school_id
+                AND gbp.exam_id = be.id
+                LEFT JOIN
+            basic_semester bs ON be.school_id = bs.school_id
+                AND be.semester_id = bs.id
+                LEFT JOIN
+            mark_paper mp ON gbp.exam_id = mp.exam_id
+                AND gbp.paper_number = mp.paper_number
+                AND gbp.paper_type = mp.paper_type
+                LEFT JOIN
+            basic_course bc ON bc.id = mp.course_id
+                LEFT JOIN
+            sys_org so ON so.id = bc.teaching_room_id
+                LEFT JOIN
+            exam_task et ON gbp.school_id = et.school_id
+                AND gbp.paper_number = et.paper_number
+                AND gbp.exam_id = et.exam_id
+                LEFT JOIN
+            sys_user su ON et.user_id = su.id
         <where>
         <where>
             AND gbp.enable = true
             AND gbp.enable = true
             <if test="schoolId != null and schoolId != ''">
             <if test="schoolId != null and schoolId != ''">
@@ -80,37 +85,34 @@
                 </if>
                 </if>
             </if>
             </if>
         </where>
         </where>
-        order by gbp.create_id
+        ORDER BY gbp.create_id
     </select>
     </select>
 
 
     <select id="findAbleAnalyzePaper"
     <select id="findAbleAnalyzePaper"
             resultType="com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult">
             resultType="com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult">
         SELECT
         SELECT
-            bs.name AS semesterName,
-            be.name AS examName,
-            bc.code AS courseCode,
-            bc.name AS courseName,
+            bs.NAME AS semesterName,
+            be.NAME AS examName,
+            bc.CODE AS courseCode,
+            bc.NAME AS courseName,
             bc.teaching_room_id AS teachCollegeId,
             bc.teaching_room_id AS teachCollegeId,
             su.real_name AS teacherName,
             su.real_name AS teacherName,
-            et.paper_number AS paperNumber,
+            mp.paper_number AS paperNumber,
             mp.paper_type AS paperType
             mp.paper_type AS paperType
         FROM
         FROM
             mark_paper mp
             mark_paper mp
                 LEFT JOIN
                 LEFT JOIN
-            exam_task et ON mp.exam_id = et.exam_id
-                AND mp.paper_number = et.paper_number
-                LEFT JOIN
-            basic_course bc ON et.course_id = bc.id
+            basic_course bc ON mp.course_id = bc.id
                 LEFT JOIN
                 LEFT JOIN
-            basic_exam be ON be.id = et.exam_id
+            basic_exam be ON be.id = mp.exam_id
                 LEFT JOIN
                 LEFT JOIN
             basic_semester bs ON bs.id = be.semester_id
             basic_semester bs ON bs.id = be.semester_id
                 LEFT JOIN
                 LEFT JOIN
+            exam_task et ON mp.exam_id = et.exam_id
+                AND mp.paper_number = et.paper_number
+                LEFT JOIN
             sys_user su ON et.user_id = su.id
             sys_user su ON et.user_id = su.id
         <where>
         <where>
-            <if test="schoolId != null and schoolId != ''">
-                AND et.school_id = #{schoolId}
-            </if>
             <if test="semesterId != null and semesterId != ''">
             <if test="semesterId != null and semesterId != ''">
                 AND bs.id = #{semesterId}
                 AND bs.id = #{semesterId}
             </if>
             </if>

+ 11 - 11
distributed-print-business/src/main/resources/mapper/GradeInitializeMapper.xml

@@ -11,15 +11,13 @@
             bc.id AS courseId,
             bc.id AS courseId,
             bc.code AS courseCode,
             bc.code AS courseCode,
             bc.name AS courseName,
             bc.name AS courseName,
-            et.paper_number AS paperNumber,
+            mp.paper_number AS paperNumber,
             pnpt.paper_type AS paperType,
             pnpt.paper_type AS paperType,
             pnpt.paper_name AS paperName,
             pnpt.paper_name AS paperName,
             pnpt.status AS status,
             pnpt.status AS status,
             pnpt.publish_status AS publishStatus
             pnpt.publish_status AS publishStatus
         FROM
         FROM
-            exam_task et
-                INNER JOIN
-            exam_task_detail etd ON et.id = etd.exam_task_id
+            mark_paper mp
                 INNER JOIN
                 INNER JOIN
             (SELECT
             (SELECT
                  school_id,
                  school_id,
@@ -34,19 +32,21 @@
              WHERE
              WHERE
                  enable = TRUE
                  enable = TRUE
                AND status NOT IN ('SETTING_GRADE_PAPER' , 'PUSH_GRADE_BATCH')
                AND status NOT IN ('SETTING_GRADE_PAPER' , 'PUSH_GRADE_BATCH')
-             GROUP BY school_id ,exam_id, paper_number , paper_type) pnpt ON et.school_id = pnpt.school_id
-                AND et.paper_number = pnpt.paper_number
-                AND et.exam_id = pnpt.exam_id
-                AND LOCATE(pnpt.paper_type, etd.exposed_paper_type)
+             GROUP BY school_id ,exam_id, paper_number , paper_type) pnpt ON mp.exam_id = pnpt.exam_id
+                AND mp.paper_number = pnpt.paper_number
+                AND mp.paper_type = pnpt.paper_type
                 INNER JOIN
                 INNER JOIN
-            basic_exam be ON et.exam_id = be.id AND be.enable
+            basic_exam be ON mp.exam_id = be.id AND be.enable
                 INNER JOIN
                 INNER JOIN
             basic_semester bs ON bs.id = be.semester_id AND bs.enable
             basic_semester bs ON bs.id = be.semester_id AND bs.enable
                 LEFT JOIN
                 LEFT JOIN
-            basic_course bc ON et.course_id = bc.id
+            exam_task et ON mp.exam_id = et.exam_id
+                AND mp.paper_number = et.paper_number
+                LEFT JOIN
+            basic_course bc ON mp.course_id = bc.id
         <where>
         <where>
             <if test="schoolId != null and schoolId != ''">
             <if test="schoolId != null and schoolId != ''">
-                AND et.school_id = #{schoolId}
+                AND pnpt.school_id = #{schoolId}
             </if>
             </if>
             <if test="semesterId != null and semesterId != ''">
             <if test="semesterId != null and semesterId != ''">
                 AND bs.id = #{semesterId}
                 AND bs.id = #{semesterId}

+ 3 - 3
teachcloud-mark/src/main/resources/mapper/MarkQuestionMapper.xml

@@ -73,15 +73,15 @@
         FROM
         FROM
             mark_question mq
             mark_question mq
                 LEFT JOIN
                 LEFT JOIN
-            exam_task et ON mq.exam_id = et.exam_id AND et.paper_number = mq.paper_number
+            mark_paper mp ON mq.exam_id = mp.exam_id AND mq.paper_number = mp.paper_number
                 LEFT JOIN
                 LEFT JOIN
-            basic_course bc ON et.course_id = bc.id
+            basic_course bc ON mp.course_id = bc.id
         <where>
         <where>
             <if test="examId != null">
             <if test="examId != null">
                 AND mq.exam_id = #{examId}
                 AND mq.exam_id = #{examId}
             </if>
             </if>
             <if test="paperType != null and paperType != ''">
             <if test="paperType != null and paperType != ''">
-                AND mq.paper_type = #{paperType}
+                AND mp.paper_type = #{paperType}
             </if>
             </if>
             <if test="paperNumber != null and paperNumber != ''">
             <if test="paperNumber != null and paperNumber != ''">
                 AND mq.paper_number = #{paperNumber}
                 AND mq.paper_number = #{paperNumber}