xiaof 4 éve
szülő
commit
eb2291cf30
17 módosított fájl, 181 hozzáadás és 69 törlés
  1. 5 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailCourseMapper.java
  2. 1 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java
  3. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicCourseService.java
  4. 5 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCourseService.java
  5. 6 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java
  6. 1 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java
  7. 13 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicCourseServiceImpl.java
  8. 11 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java
  9. 21 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java
  10. 1 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java
  11. 46 38
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  12. 1 1
      distributed-print-business/src/main/resources/db/init-table.sql
  13. 30 0
      distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml
  14. 27 2
      distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml
  15. 3 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java
  16. 6 4
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java
  17. 3 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

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

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.distributed.print.business.entity.BasicCourse;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
 import org.apache.ibatis.annotations.Param;
 
@@ -20,4 +21,8 @@ public interface ExamDetailCourseMapper extends BaseMapper<ExamDetailCourse> {
     List<Map<String, Object>> listByExamDetailId(@Param("examDetailId") Long examDetailId, @Param("status") String status);
 
     List<ExamDetailCourse> listByExamDetailIdAndStatus(@Param("examDetailId") Long examDetailId, @Param("status") String status);
+
+    List<BasicCourse> listCoursesByPrintPlanId(@Param("param") String param, @Param("printPlanId") Long printPlanId);
+
+    List<String> listPaperNumberByPrintPlanId(@Param("param") String param, @Param("printPlanId") Long printPlanId);
 }

+ 1 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java

@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.result.WorkResult;
 import com.qmth.distributed.print.business.entity.ExamTask;
-import com.qmth.distributed.print.business.enums.ExamStatusEnum;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -33,7 +32,7 @@ public interface ExamTaskMapper extends BaseMapper<ExamTask> {
 
     IPage<ExamTaskDto> listTaskReviewAudited(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("reviewStatus") String reviewStatus, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("userId") Long userId, @Param("cardRuleId") Long cardRuleId, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("orgIds") Set<Long> orgIds);
 
-    IPage<ExamTaskDetailDto> listTaskPaper(Page<ExamTaskDetailDto> page, @Param("schoolId") Long schoolId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("orgIds") Set<Long> orgIds);
+    IPage<ExamTaskDetailDto> listTaskPaper(Page<ExamTaskDetailDto> page, @Param("schoolId") Long schoolId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("orgIds") Set<Long> orgIds, @Param("containsQuestionTeacher") boolean containsQuestionTeacher, @Param("userId") Long userId);
 
     List<RelatePaperDto> listPaperNumbers(@Param("schoolId") Long schoolId, @Param("courseCode") String courseCode, @Param("status") String status);
 

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

@@ -21,7 +21,7 @@ public interface BasicCourseService extends IService<BasicCourse> {
 
     IPage<BasicCourse> list(String code, String name, Integer pageNumber, Integer pageSize);
 
-    List<BasicCourse> list(String param);
+    List<BasicCourse> list(String param, Long printPlanId);
 
     boolean saveCourse(BasicCourse course,Long userId);
 

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

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.entity.BasicCourse;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
 
 import java.util.List;
@@ -30,4 +31,8 @@ public interface ExamDetailCourseService extends IService<ExamDetailCourse> {
     void updatePaperNumber(List<ExamDetailCourse> examDetailCourses, String paperNumber, String relatePaperType);
 
     List<ExamDetailCourse> listByExamDetailIdAndStatus(Long examDetailId);
+
+    List<BasicCourse> listCoursesByPrintPlanId(String param, Long printPlanId);
+
+    List<String> listPaperNumberByPrintPlanId(String param, Long printPlanId);
 }

+ 6 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java

@@ -8,7 +8,6 @@ import com.qmth.distributed.print.business.bean.result.ExaminationDetailResult;
 import com.qmth.distributed.print.business.bean.result.ExaminationResult;
 import com.qmth.distributed.print.business.bean.result.SummarizedDataResult;
 import com.qmth.distributed.print.business.entity.ExamDetail;
-import com.qmth.distributed.print.business.entity.ExamDetailCourse;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -113,14 +112,18 @@ public interface ExamDetailService extends IService<ExamDetail> {
     /**
      * 查询印刷计划下考点数据源
      * @return 考点集合
+     * @param param
+     * @param printPlanId
      */
-    List<String> findExamPlaceDatasource();
+    List<String> findExamPlaceDatasource(String param, Long printPlanId);
 
     /**
      * 查询印刷计划下考场数据源
      * @return 考场集合
+     * @param param
+     * @param printPlanId
      */
-    List<String> findExamRoomDatasource();
+    List<String> findExamRoomDatasource(String param, Long printPlanId);
 
     boolean submitTask(ExamDetail examDetail) throws IOException;
 

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

@@ -9,7 +9,6 @@ import com.qmth.distributed.print.business.entity.ExamTaskDetail;
 import com.qmth.distributed.print.business.entity.ExamTaskReviewLog;
 import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.enums.ExamStatusEnum;
-import com.qmth.distributed.print.business.templete.callback.CallbackCreatePdf;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
@@ -31,7 +30,7 @@ public interface ExamTaskService extends IService<ExamTask> {
 
     IPage<ExamTaskDto> list(Boolean enable, String status, Long cardRuleId, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
 
-    List<String> listPaperNumber(String param);
+    List<String> listPaperNumber(String param, Long printPlanId);
 
     List<BlurryUserDto> listUser(String param);
 

+ 13 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicCourseServiceImpl.java

@@ -10,6 +10,7 @@ import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.mapper.BasicCourseMapper;
 import com.qmth.distributed.print.business.service.BasicCourseService;
+import com.qmth.distributed.print.business.service.ExamDetailCourseService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.distributed.print.common.contant.SystemConstant;
@@ -38,6 +39,8 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     private ExamTaskService examTaskService;
     @Resource
     private BasicCourseMapper basicCourseMapper;
+    @Autowired
+    private ExamDetailCourseService examDetailCourseService;
 
     @Override
     public IPage<BasicCourse> list(String code, String name, Integer pageNumber, Integer pageSize) {
@@ -48,14 +51,18 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     }
 
     @Override
-    public List<BasicCourse> list(String param) {
+    public List<BasicCourse> list(String param, Long printPlanId) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId);
-        if (StringUtils.isNotBlank(param)) {
-            queryWrapper.lambda().and(i -> i.like(BasicCourse::getCode, param).or().like(BasicCourse::getName, param));
+        if(printPlanId == null) {
+            QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId);
+            if (StringUtils.isNotBlank(param)) {
+                queryWrapper.lambda().and(i -> i.like(BasicCourse::getCode, param).or().like(BasicCourse::getName, param));
+            }
+            return this.list(queryWrapper);
+        } else {
+            return examDetailCourseService.listCoursesByPrintPlanId(param, printPlanId);
         }
-        return this.list(queryWrapper);
     }
 
     @Override

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

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.entity.BasicCourse;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.mapper.ExamDetailCourseMapper;
@@ -61,4 +62,14 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
     public List<ExamDetailCourse> listByExamDetailIdAndStatus(Long examDetailId) {
         return this.baseMapper.listByExamDetailIdAndStatus(examDetailId, ExamDetailStatusEnum.FINISH.name());
     }
+
+    @Override
+    public List<BasicCourse> listCoursesByPrintPlanId(String param, Long printPlanId) {
+        return this.baseMapper.listCoursesByPrintPlanId(param, printPlanId);
+    }
+
+    @Override
+    public List<String> listPaperNumberByPrintPlanId(String param, Long printPlanId) {
+        return this.baseMapper.listPaperNumberByPrintPlanId(param, printPlanId);
+    }
 }

+ 21 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -12,7 +12,6 @@ import com.qmth.distributed.print.business.bean.params.SerialNumberParams;
 import com.qmth.distributed.print.business.bean.result.ExaminationDetailResult;
 import com.qmth.distributed.print.business.bean.result.ExaminationResult;
 import com.qmth.distributed.print.business.bean.result.SummarizedDataResult;
-import com.qmth.distributed.print.business.cache.CreatePdfCacheUtil;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
@@ -21,10 +20,10 @@ import com.qmth.distributed.print.business.mapper.ExamDetailMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
 import com.qmth.distributed.print.business.util.ConvertUtil;
-import com.qmth.distributed.print.business.util.CreatePdfUtil;
 import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.HorizontalAlignment;
 import org.apache.poi.xssf.usermodel.*;
 import org.slf4j.Logger;
@@ -279,17 +278,33 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public List<String> findExamPlaceDatasource() {
+    public List<String> findExamPlaceDatasource(String param, Long printPlanId) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        List<ExamDetail> examDetail = this.list(new QueryWrapper<ExamDetail>().lambda().eq(ExamDetail::getSchoolId, schoolId));
+        QueryWrapper<ExamDetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ExamDetail::getSchoolId, schoolId);
+        if(StringUtils.isNotBlank(param)){
+            queryWrapper.lambda().like(ExamDetail::getExamPlace, param);
+        }
+        if(printPlanId != null){
+            queryWrapper.lambda().like(ExamDetail::getPrintPlanId, printPlanId);
+        }
+        List<ExamDetail> examDetail = this.list(queryWrapper);
         return examDetail.stream().map(ExamDetail::getExamPlace).distinct().collect(Collectors.toList());
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public List<String> findExamRoomDatasource() {
+    public List<String> findExamRoomDatasource(String param, Long printPlanId) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        List<ExamDetail> examDetail = this.list(new QueryWrapper<ExamDetail>().lambda().eq(ExamDetail::getSchoolId, schoolId));
+        QueryWrapper<ExamDetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ExamDetail::getSchoolId, schoolId);
+        if(StringUtils.isNotBlank(param)){
+            queryWrapper.lambda().like(ExamDetail::getExamRoom, param);
+        }
+        if(printPlanId != null){
+            queryWrapper.lambda().like(ExamDetail::getPrintPlanId, printPlanId);
+        }
+        List<ExamDetail> examDetail = this.list(queryWrapper);
         return examDetail.stream().map(ExamDetail::getExamRoom).distinct().collect(Collectors.toList());
     }
 

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

@@ -104,6 +104,7 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.CREATE_PDF, paperParam.getPrintPlanId(), sysUser);
         map.computeIfAbsent("examDetailCourseIds", v -> examDetailCourseIds);
+        map.computeIfAbsent("schoolId", v-> examTask.getSchoolId());
         map.computeIfAbsent("paperType", v -> paperParam.getRelatePaperType());
         asyncCreatePdfTempleteService.createPdf(map, null);
         return true;

+ 46 - 38
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1,6 +1,5 @@
 package com.qmth.distributed.print.business.service.impl;
 
-import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -15,16 +14,13 @@ import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.*;
 import com.qmth.distributed.print.business.mapper.ExamTaskMapper;
 import com.qmth.distributed.print.business.service.*;
-import com.qmth.distributed.print.business.templete.callback.CallbackCreatePdf;
 import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
-import com.qmth.distributed.print.business.util.ConvertUtil;
 import com.qmth.distributed.print.business.util.ExcelUtil;
 import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.distributed.print.business.util.excel.ExcelError;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.velocity.runtime.directive.contrib.For;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -76,6 +72,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Autowired
     private SysUserService sysUserService;
 
+    @Autowired
+    private SysUserRoleService sysUserRoleService;
+
     @Autowired
     private ExamCardService examCardService;
 
@@ -121,33 +120,37 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     }
 
     @Override
-    public List<String> listPaperNumber(String param) {
+    public List<String> listPaperNumber(String param, Long printPlanId) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        // 查询命题任务中的试卷编号
-        QueryWrapper<ExamTask> queryWrapperExamTask = new QueryWrapper<>();
-        queryWrapperExamTask.lambda().eq(ExamTask::getSchoolId, schoolId);
-        List<String> list = new ArrayList<>();
-        if (StringUtils.isNotBlank(param)) {
-            queryWrapperExamTask.lambda().and(i -> i.like(ExamTask::getCourseCode, param).or().like(ExamTask::getCourseName, param));
-        }
-        List<ExamTask> examTasks = this.list(queryWrapperExamTask);
-        if (examTasks != null && examTasks.size() > 0) {
-            list = examTasks.stream().map(ExamTask::getPaperNumber).distinct().collect(Collectors.toList());
-        }
+        if(printPlanId == null) {
+            // 查询命题任务中的试卷编号
+            QueryWrapper<ExamTask> queryWrapperExamTask = new QueryWrapper<>();
+            queryWrapperExamTask.lambda().eq(ExamTask::getSchoolId, schoolId);
+            List<String> list = new ArrayList<>();
+            if (StringUtils.isNotBlank(param)) {
+                queryWrapperExamTask.lambda().and(i -> i.like(ExamTask::getCourseCode, param).or().like(ExamTask::getCourseName, 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, param).or().like(ExamDetailCourse::getCourseName, param));
-        }
-        List<ExamDetailCourse> ExamDetailCourses = examDetailCourseService.list(queryWrapperExamDetailCourse);
-        if (ExamDetailCourses != null && ExamDetailCourses.size() > 0) {
-            list2 = ExamDetailCourses.stream().map(ExamDetailCourse::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, param).or().like(ExamDetailCourse::getCourseName, 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, printPlanId);
         }
-        list.addAll(list2);
-        return list.stream().distinct().collect(Collectors.toList());
     }
 
     @Override
@@ -610,9 +613,6 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
         // 校验状态,可能被撤回
         ExamTask examTask = this.getById(taskReviewLog.getExamTaskId());
-        if (!ExamStatusEnum.SUBMIT.equals(examTask.getStatus())) {
-            throw ExceptionResultEnum.ERROR.exception("当前状态不能审核");
-        }
 
         taskReviewLog.setOperateId(sysUser.getId());
         taskReviewLog.setOperateTime(System.currentTimeMillis());
@@ -621,6 +621,10 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
         ExamTaskPaperLog examTaskPaperLog = examTaskPaperLogService.getByExamTaskIdAndReview(taskReviewLog.getExamTaskId(), false);
         if (examTaskPaperLog == null) {
+            if (!ExamStatusEnum.SUBMIT.equals(examTask.getStatus())) {
+                throw ExceptionResultEnum.ERROR.exception("当前状态不能审核");
+            }
+
             // 更新命题任务状态
             UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
             ExamStatusEnum statusEnum;
@@ -654,7 +658,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
     @Transactional
     @Override
-    public boolean taskReviewSaveBatch(ExamTaskReviewLog taskReviewLog) throws IOException {
+    public boolean taskReviewSaveBatch(ExamTaskReviewLog taskReviewLog) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
         ExamStatusEnum statusEnum;
@@ -664,13 +668,13 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             statusEnum = ExamStatusEnum.STAGE;
         }
         for (Long examTaskId : taskReviewLog.getExamTaskIds()) {
-            // 校验状态,可能被撤回
-            ExamTask examTask = this.getById(examTaskId);
-            if (!ExamStatusEnum.SUBMIT.equals(examTask.getStatus())) {
-                throw ExceptionResultEnum.ERROR.exception("当前状态不能审核");
-            }
             ExamTaskPaperLog examTaskPaperLog = examTaskPaperLogService.getByExamTaskIdAndReview(examTaskId, false);
             if (examTaskPaperLog == null) {
+                // 校验状态,可能被撤回
+                ExamTask examTask = this.getById(examTaskId);
+                if (!ExamStatusEnum.SUBMIT.equals(examTask.getStatus())) {
+                    throw ExceptionResultEnum.ERROR.exception("当前状态不能审核");
+                }
                 // 审核日志
                 taskReviewLog.setOperateId(sysUser.getId());
                 taskReviewLog.setOperateTime(System.currentTimeMillis());
@@ -706,10 +710,14 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
     @Override
     public IPage<ExamTaskDetailDto> listTaskPaper(String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        // 查询用户角色是否包含命题老师
+        List<SysRole> list = sysUserRoleService.listRoleByUserId(sysUser.getId());
+        boolean containsQuestionTeacher = list.stream().filter(m-> RoleTypeEnum.QUESTION_TEACHER.equals(m.getType())).count() > 0;
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Set<Long> orgIds = commonService.listSubOrgIds(null);
         Page<ExamTaskDetailDto> page = new Page<>(pageNumber, pageSize);
-        IPage<ExamTaskDetailDto> examTaskDtoIPage = this.baseMapper.listTaskPaper(page, schoolId, courseCode, paperNumber, startTime, endTime, orgIds);
+        IPage<ExamTaskDetailDto> examTaskDtoIPage = this.baseMapper.listTaskPaper(page, schoolId, courseCode, paperNumber, startTime, endTime, orgIds, containsQuestionTeacher, sysUser.getId());
         return examTaskDtoIPage;
     }
 

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

@@ -1195,7 +1195,7 @@ INSERT INTO `sys_role_privilege` VALUES (1384755205368246278,4,42,1);
 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,3,189,1);
+INSERT INTO `sys_role_privilege` VALUES (1384755205368246282,4,189,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);

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

@@ -57,5 +57,35 @@
         WHERE
             a.exam_detail_id = #{examDetailId} AND b.status != #{status}
     </select>
+    <select id="listCoursesByPrintPlanId" resultType="com.qmth.distributed.print.business.entity.BasicCourse">
+        SELECT
+            distinct a.course_code code, a.course_name name
+        FROM
+            exam_detail_course a
+                LEFT JOIN
+            exam_detail b ON a.exam_detail_id = b.id
+        <where>
+            b.print_plan_id = #{printPlanId}
+            <if test="param != null and param != ''">
+                and (a.course_code like concat('%', #{param},'%')
+                or a.course_name like concat('%', #{param},'%'))
+            </if>
+        </where>
+
+    </select>
+    <select id="listPaperNumberByPrintPlanId" resultType="java.lang.String">
+        SELECT
+            a.paper_number paperNumber
+        FROM
+            exam_detail_course a
+                LEFT JOIN
+            exam_detail b ON a.exam_detail_id = b.id
+        <where>
+            b.print_plan_id = #{printPlanId}
+            <if test="param != null and param != ''">
+                and a.paper_number like concat('%', #{param},'%')
+            </if>
+        </where>
+    </select>
 
 </mapper>

+ 27 - 2
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -330,6 +330,7 @@
             a.specialty,
             a.paper_number paperNumber,
             a.user_id userId,
+            a.card_rule_id cardRuleId,
             c.real_name userName,
             d.real_name createName,
             a.start_time startTime,
@@ -371,7 +372,10 @@
             <if test="endTime != null and endTime != ''">
                 and a.create_time &lt;= #{endTime}
             </if>
-            <if test="orgIds != null">
+            <if test="containsQuestionTeacher">
+                and a.user_id = #{userId}
+            </if>
+            <if test="!containsQuestionTeacher and orgIds != null">
                 AND d.org_id IN
                 <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
                     #{item}
@@ -434,7 +438,7 @@
         <include refid="myworkCommonHead" />
         <include refid="myworkCommonMiddle" />
         <where>
-            <include refid="myworkSubmitCommonFoot" />
+            <include refid="myworkSubmitCommonFootNew" />
         </where>
     </select>
     <select id="listClientExamTaskPage"
@@ -550,6 +554,8 @@
                 LEFT JOIN
             basic_card_rule b ON et.card_rule_id = b.id
                 LEFT JOIN
+            exam_task_paper_log d ON et.id = d.exam_task_id and d.review = false
+                LEFT JOIN
             sys_user c ON et.user_id = c.id
     </sql>
 
@@ -591,4 +597,23 @@
         </if>
         and et.enable = 1
     </sql>
+
+    <sql id="myworkSubmitCommonFootNew">
+        <choose>
+            <when test="userId != null and userId != ''">
+                and et.create_id = #{userId}
+            </when>
+        </choose>
+        <if test="schoolId != null and schoolId != ''">
+            and et.school_id = #{schoolId}
+        </if>
+        <if test="status != null and status != ''">
+            and (et.status in
+            <foreach item="item" collection="status" separator="," open="(" close=")" index="">
+                #{item}
+            </foreach>
+            or (et.status = 'FINISH' and d.id is not null))
+        </if>
+        and et.enable = 1
+    </sql>
 </mapper>

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

@@ -60,8 +60,9 @@ public class BasicCourseController {
      */
     @ApiOperation(value = "模糊查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
-    public Result query(@RequestParam(value = "param", required = false) String param){
-        List<BasicCourse> userDtos = basicCourseService.list(param);
+    public Result query(@RequestParam(value = "param", required = false) String param,
+                        @RequestParam(value = "printPlanId", required = false) Long printPlanId){
+        List<BasicCourse> userDtos = basicCourseService.list(param, printPlanId);
         return ResultUtil.ok(userDtos);
     }
 

+ 6 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java

@@ -143,15 +143,17 @@ public class ExamDetailController {
     @ApiOperation(value = "考务数据导入-考点模糊查询")
     @RequestMapping(value = "/data_place_query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    public Result findExamPlaceDatasource() {
-        return ResultUtil.ok(examDetailService.findExamPlaceDatasource());
+    public Result findExamPlaceDatasource(@RequestParam(value = "param", required = false) String param,
+                                          @RequestParam(value = "printPlanId", required = false) Long printPlanId) {
+        return ResultUtil.ok(examDetailService.findExamPlaceDatasource(param, printPlanId));
     }
 
     @ApiOperation(value = "考务数据导入-考场模糊查询")
     @RequestMapping(value = "/data_room_query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    public Result findExamRoomDatasource() {
-        return ResultUtil.ok(examDetailService.findExamRoomDatasource());
+    public Result findExamRoomDatasource(@RequestParam(value = "param", required = false) String param,
+                                         @RequestParam(value = "printPlanId", required = false) Long printPlanId) {
+        return ResultUtil.ok(examDetailService.findExamRoomDatasource(param, printPlanId));
     }
 
     @ApiOperation(value = "考务数据导入-模板下载")

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

@@ -110,8 +110,9 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "试卷编号模糊查询")
     @RequestMapping(value = "/paper_number_query", method = RequestMethod.POST)
-    public Result paperNumberQuery(@RequestParam(value = "param", required = false) String param) {
-        List<String> list = examTaskService.listPaperNumber(param);
+    public Result paperNumberQuery(@RequestParam(value = "param", required = false) String param,
+                                   @RequestParam(value = "printPlanId", required = false) Long printPlanId) {
+        List<String> list = examTaskService.listPaperNumber(param, printPlanId);
         return ResultUtil.ok(list);
     }