Explorar o código

命题任务bug

xiaof %!s(int64=3) %!d(string=hai) anos
pai
achega
adb9f6a949
Modificáronse 20 ficheiros con 197 adicións e 122 borrados
  1. 27 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDto.java
  2. 12 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/PrintPlanParams.java
  3. 3 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamTaskDetail.java
  4. 12 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamTaskPrint.java
  5. 1 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/ExamStatusEnum.java
  6. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicStudentMapper.java
  7. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java
  8. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicStudentService.java
  9. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskDetailService.java
  10. 2 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskPrintService.java
  11. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicStudentServiceImpl.java
  12. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java
  13. 1 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  14. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java
  15. 24 7
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskPrintServiceImpl.java
  16. 14 19
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  17. 5 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java
  18. 2 2
      distributed-print-business/src/main/resources/mapper/BasicStudentMapper.xml
  19. 74 62
      distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml
  20. 9 11
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

+ 27 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDto.java

@@ -27,6 +27,9 @@ public class ExamTaskDto {
     private Long createTime;
     private String auditStatus;
     private String reviewStatus;
+    private String teacherName;
+    private String lecturerName;
+    private String teachingRoomName;
     private String flowId;
     private Integer setup;
 
@@ -184,6 +187,30 @@ public class ExamTaskDto {
         this.reviewStatus = reviewStatus;
     }
 
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getLecturerName() {
+        return lecturerName;
+    }
+
+    public void setLecturerName(String lecturerName) {
+        this.lecturerName = lecturerName;
+    }
+
+    public String getTeachingRoomName() {
+        return teachingRoomName;
+    }
+
+    public void setTeachingRoomName(String teachingRoomName) {
+        this.teachingRoomName = teachingRoomName;
+    }
+
     public String getFlowId() {
         return flowId;
     }

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/PrintPlanParams.java

@@ -26,6 +26,10 @@ public class PrintPlanParams {
     @ApiModelProperty(value = "学校id")
     private Long schoolId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "机构id")
+    private Long orgId;
+
     @ApiModelProperty(value = "印刷计划名称",required = true)
     @NotNull(message = "请输入印刷计划名称")
     @Length(min = 1,message = "请输入印刷计划名称")
@@ -84,6 +88,14 @@ public class PrintPlanParams {
         this.schoolId = schoolId;
     }
 
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
     public String getName() {
         return name;
     }

+ 3 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamTaskDetail.java

@@ -61,7 +61,7 @@ public class ExamTaskDetail extends BaseEntity implements Serializable {
     private Long cardId;
 
     @TableField("make_method")
-    private MakeMethodEnum makeMethod;
+    private String makeMethod;
     /**
      * [
      * {
@@ -135,11 +135,11 @@ public class ExamTaskDetail extends BaseEntity implements Serializable {
         this.cardId = cardId;
     }
 
-    public MakeMethodEnum getMakeMethod() {
+    public String getMakeMethod() {
         return makeMethod;
     }
 
-    public void setMakeMethod(MakeMethodEnum makeMethod) {
+    public void setMakeMethod(String makeMethod) {
         this.makeMethod = makeMethod;
     }
 

+ 12 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamTaskPrint.java

@@ -80,9 +80,12 @@ public class ExamTaskPrint extends BaseEntity implements Serializable {
     @TableField("exam_detail_id")
     private Long examDetailId;
 
-    @TableField(exist = false)
+    @TableField(value = "extend_fields")
     private String extendFields;
 
+    @TableField(value = "print_house_name")
+    private String printHouseName;
+
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }
@@ -230,4 +233,12 @@ public class ExamTaskPrint extends BaseEntity implements Serializable {
     public void setExtendFields(String extendFields) {
         this.extendFields = extendFields;
     }
+
+    public String getPrintHouseName() {
+        return printHouseName;
+    }
+
+    public void setPrintHouseName(String printHouseName) {
+        this.printHouseName = printHouseName;
+    }
 }

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/ExamStatusEnum.java

@@ -13,6 +13,7 @@ import java.util.List;
 public enum ExamStatusEnum {
 
     DRAFT("草稿"),
+    STAGE("待命题"),
     SUBMIT("已提交");
 
     ExamStatusEnum(String desc) {

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

@@ -22,7 +22,7 @@ import java.util.Set;
  */
 public interface BasicStudentMapper extends BaseMapper<BasicStudent> {
 
-    List<TaskPrintClassDto> listByClass(@Param("schoolId") Long schoolId, @Param("stringList") List<String> stringList);
+    List<TaskPrintClassDto> listByClass(@Param("schoolId") Long schoolId, @Param("stringList") Set<String> stringList);
 
     IPage<BasicStudentResult> findBasicStudentPage(@Param("iPage") Page<BasicStudentResult> iPage,
                                                 @Param("queryParams") String queryParams,

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

@@ -29,7 +29,7 @@ public interface ExamTaskMapper extends BaseMapper<ExamTask> {
 
     List<BlurryUserDto> listUser(@Param("schoolId") Long schoolId, @Param("param") String param);
 
-    IPage<ExamTaskDto> listTaskApply(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("auditStatus") String auditStatus, @Param("reviewStatus") String reviewStatus, @Param("cardRuleId") Long cardRuleId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("status") String[] status, @Param("userId") Long userId, @Param("orgIds") Set<Long> orgIds, @Param("userName") String userName);
+    IPage<ExamTaskDto> listTaskApply(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("auditStatus") String auditStatus, @Param("reviewStatus") String reviewStatus, @Param("cardRuleId") Long cardRuleId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("status") String status, @Param("userId") Long userId, @Param("orgIds") Set<Long> orgIds, @Param("userName") String userName);
 
     IPage<ExamTaskDto> listTaskReviewUnaudited(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @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, @Param("startCreateTime") Long startCreateTime, @Param("endCreateTime") Long endCreateTime, @Param("createName") String createName);
 

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

@@ -12,6 +12,7 @@ import org.springframework.util.LinkedMultiValueMap;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * <p>
@@ -25,7 +26,7 @@ public interface BasicStudentService extends IService<BasicStudent> {
 
     IPage<BasicStudent> listPage(Page<BasicStudent> page, String classId);
 
-    List<TaskPrintClassDto> listByClass(Long schoolId, List<String> stringList);
+    List<TaskPrintClassDto> listByClass(Long schoolId, Set<String> stringList);
     /**
      * 学生基础信息分页查询
      * @param queryParams 查询参数(学生学号或姓名)

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.dto.ExamTaskDetailDto;
 import com.qmth.distributed.print.business.bean.params.RelatePaperParam;
+import com.qmth.distributed.print.business.entity.ExamCard;
 import com.qmth.distributed.print.business.entity.ExamTaskDetail;
 
 import java.io.IOException;
@@ -28,7 +29,7 @@ public interface ExamTaskDetailService extends IService<ExamTaskDetail> {
 
     List<ExamTaskDetail> listByCardId(Long cardId);
 
-    void bindCardId(String examTaskId, Long cardId);
+    void bindCardId(String examTaskId, ExamCard examCard);
 
     void resetCardId(Long id);
 

+ 2 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskPrintService.java

@@ -6,7 +6,6 @@ import com.qmth.distributed.print.business.bean.dto.ExamTaskPrintDto;
 import com.qmth.distributed.print.business.bean.dto.TaskPrintClassDto;
 import com.qmth.distributed.print.business.bean.dto.TaskPrintExtendFieldsDto;
 import com.qmth.distributed.print.business.bean.dto.TaskPrintHouseDto;
-import com.qmth.distributed.print.business.bean.params.TaskPrintParams;
 import com.qmth.distributed.print.business.entity.BasicStudent;
 import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamTaskPrint;
@@ -26,11 +25,11 @@ public interface ExamTaskPrintService extends IService<ExamTaskPrint> {
 
     void remove(Long examTaskPrintId);
 
-    ExamTaskPrintDto listTaskPrint(Long printPlanId, String courseCode, Long paperNumber, Integer pageNumber, Integer pageSize);
+    ExamTaskPrintDto listTaskPrint(Long printPlanId, String courseCode, String paperNumber, Integer pageNumber, Integer pageSize);
 
     ExamDetail createTaskPrint(ExamTaskPrint examTaskPrint);
 
-    List<TaskPrintClassDto> listClass(String printPlanId, String courseCode, String paperNumber);
+    List<TaskPrintClassDto> listClass(String printPlanId, String courseCode, String paperNumber, Long examTaskPrintId);
 
     List<TaskPrintHouseDto> listHouse();
 

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

@@ -62,7 +62,7 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
     }
 
     @Override
-    public List<TaskPrintClassDto> listByClass(Long schoolId, List<String> stringList) {
+    public List<TaskPrintClassDto> listByClass(Long schoolId, Set<String> stringList) {
         return this.baseMapper.listByClass(schoolId, stringList);
     }
 

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

@@ -126,7 +126,7 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
         }
 
         // 绑定命题任务
-        examTaskDetailService.bindCardId(examCardParams.getExamTaskId(), examCard.getId());
+        examTaskDetailService.bindCardId(examCardParams.getExamTaskId(), examCard);
         return String.valueOf(examCard.getId());
     }
 
@@ -172,7 +172,7 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
         examCardDetailService.save(examCardDetail);
 
         // 绑定命题任务
-        examTaskDetailService.bindCardId(examCardParams.getExamTaskId(), examCard.getId());
+        examTaskDetailService.bindCardId(examCardParams.getExamTaskId(), examCard);
 
         return String.valueOf(examCard.getId());
     }

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

@@ -230,6 +230,7 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
         examPrintPlan.setPrintContent(printContent);
         examPrintPlan.setCreateId(sysUser.getId());
         examPrintPlan.setUpdateId(sysUser.getId());
+        examPrintPlan.setOrgId(sysUser.getOrgId());
 
         //印刷计划名称唯一性
         QueryWrapper<ExamPrintPlan> printPlanQueryWrapper = new QueryWrapper<>();

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

@@ -259,9 +259,9 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     }
 
     @Override
-    public void bindCardId(String examTaskId, Long cardId) {
+    public void bindCardId(String examTaskId, ExamCard examCard) {
         UpdateWrapper<ExamTaskDetail> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().set(ExamTaskDetail::getCardId, cardId).eq(ExamTaskDetail::getExamTaskId, examTaskId);
+        updateWrapper.lambda().set(ExamTaskDetail::getCardId, examCard.getId()).set(ExamTaskDetail::getMakeMethod, examCard.getMakeMethod().name()).eq(ExamTaskDetail::getExamTaskId, examTaskId);
         this.update(updateWrapper);
     }
 

+ 24 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskPrintServiceImpl.java

@@ -27,6 +27,7 @@ import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import com.qmth.teachcloud.common.service.BasicUserCourseService;
 import com.qmth.teachcloud.common.util.ConvertUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -101,7 +102,7 @@ public class ExamTaskPrintServiceImpl extends ServiceImpl<ExamTaskPrintMapper, E
     }
 
     @Override
-    public ExamTaskPrintDto listTaskPrint(Long printPlanId, String courseCode, Long paperNumber, Integer pageNumber, Integer pageSize) {
+    public ExamTaskPrintDto listTaskPrint(Long printPlanId, String courseCode, String paperNumber, Integer pageNumber, Integer pageSize) {
         QueryWrapper<ExamTaskPrint> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamTaskPrint::getPrintPlanId, printPlanId)
                 .eq(ExamTaskPrint::getCourseCode, courseCode)
@@ -240,10 +241,10 @@ public class ExamTaskPrintServiceImpl extends ServiceImpl<ExamTaskPrintMapper, E
     }
 
     @Override
-    public List<TaskPrintClassDto> listClass(String printPlanId, String courseCode, String paperNumber) {
+    public List<TaskPrintClassDto> listClass(String printPlanId, String courseCode, String paperNumber, Long examTaskPrintId) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         List<BasicUserCourse> courseList = basicUserCourseService.listBySchoolIdAndCourseCode(schoolId, courseCode);
-        List<String> stringList = courseList.stream().map(m -> m.getClazz()).distinct().collect(Collectors.toList());
+        Set<String> stringList = courseList.stream().map(m -> m.getClazz()).collect(Collectors.toSet());
 
         if (!CollectionUtils.isEmpty(stringList)) {
             QueryWrapper<ExamTaskPrint> examTaskPrintQueryWrapper = new QueryWrapper<>();
@@ -257,7 +258,23 @@ public class ExamTaskPrintServiceImpl extends ServiceImpl<ExamTaskPrintMapper, E
                     }
                 }
             }
+        }
+
+        if(Objects.nonNull(examTaskPrintId)){
+            ExamTaskPrint examTaskPrint = this.getById(examTaskPrintId);
+            if(Objects.isNull(examTaskPrint)){
+                throw ExceptionResultEnum.ERROR.exception("数据不存在");
+            }
+            String classId = examTaskPrint.getClassId();
+            if(StringUtils.isNotBlank(classId)){
+                String[] classIds = classId.split(",");
+                for (String id : classIds) {
+                    stringList.add(id);
+                }
+            }
+        }
 
+        if(!CollectionUtils.isEmpty(stringList)) {
             List<TaskPrintClassDto> taskPrintClassDtos = basicStudentService.listByClass(schoolId, stringList);
             return taskPrintClassDtos;
         }
@@ -279,13 +296,13 @@ public class ExamTaskPrintServiceImpl extends ServiceImpl<ExamTaskPrintMapper, E
     public List<TaskPrintExtendFieldsDto> listTaskPrintExtendFields() {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId(schoolId);
-        if(basicExamRule == null){
+        if (basicExamRule == null) {
             throw ExceptionResultEnum.ERROR.exception("通用规则未设置");
         }
-        if(Objects.nonNull(basicExamRule.getExtendFields())){
+        if (Objects.nonNull(basicExamRule.getExtendFields())) {
             List<TaskPrintExtendFieldsDto> taskPrintExtendFieldsDtos = JSONObject.parseArray(basicExamRule.getExtendFields(), TaskPrintExtendFieldsDto.class);
-            if(!CollectionUtils.isEmpty(taskPrintExtendFieldsDtos)){
-                taskPrintExtendFieldsDtos = taskPrintExtendFieldsDtos.stream().filter(m->m.getEnable()).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(taskPrintExtendFieldsDtos)) {
+                taskPrintExtendFieldsDtos = taskPrintExtendFieldsDtos.stream().filter(m -> m.getEnable()).collect(Collectors.toList());
                 return taskPrintExtendFieldsDtos;
             }
         }

+ 14 - 19
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -227,7 +227,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             if (examTask.getUserId() == null) {
                 examStatusEnum = ExamStatusEnum.DRAFT;
             } else {
-                examStatusEnum = ExamStatusEnum.SUBMIT;
+                examStatusEnum = ExamStatusEnum.STAGE;
             }
             updateWrapper.lambda().set(ExamTask::getUserId, examTask.getUserId()).set(ExamTask::getStatus, examStatusEnum).eq(ExamTask::getId, examTask.getId());
         }
@@ -348,14 +348,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             if (examTask.getUserId() == null) {
                 examTask.setStatus(ExamStatusEnum.DRAFT);
             } else {
-                if (Objects.isNull(examTask.getFlowId())) {
-                    //TODO 这里以后要判断学校code来取流程key
-                    examTask.setStatus(ExamStatusEnum.SUBMIT);
-                    Map<String, Object> map = new HashMap<>();
-                    map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> String.valueOf(examTask.getUserId()));
-                    ProcessInstance processInstance = activitiService.startActivity(SystemConstant.GDYKDX_FLOW_KEY, map);
-                    examTask.setFlowId(Long.parseLong(processInstance.getId()));
-                }
+                examTask.setStatus(ExamStatusEnum.STAGE);
             }
             this.save(examTask);
         } catch (Exception e) {
@@ -594,14 +587,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
             if (userId != null && userId.length() > 0 && !userId.equals("null")) {
                 examTask.setUserId(SystemConstant.convertIdToLong(userId));
-                if (Objects.isNull(examTask.getFlowId())) {
-                    //TODO 这里以后要判断学校code来取流程key
-                    examTask.setStatus(ExamStatusEnum.SUBMIT);
-                    Map<String, Object> map = new HashMap<>();
-                    map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> String.valueOf(examTask.getUserId()));
-                    ProcessInstance processInstance = activitiService.startActivity(SystemConstant.GDYKDX_FLOW_KEY, map);
-                    examTask.setFlowId(Long.parseLong(processInstance.getId()));
-                }
+                examTask.setStatus(ExamStatusEnum.STAGE);
             } else {
                 examTask.setStatus(ExamStatusEnum.DRAFT);
             }
@@ -620,8 +606,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<ExamTaskDto> page = new Page<>(pageNumber, pageSize);
-        String[] strings = new String[]{ExamStatusEnum.SUBMIT.name()};
-        IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listTaskApply(page, schoolId, auditStatus, reviewStatus, cardRuleId, courseCode, paperNumber, startTime, endTime, strings, sysUser.getId(), orgIds, userName);
+        IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listTaskApply(page, schoolId, auditStatus, reviewStatus, cardRuleId, courseCode, paperNumber, startTime, endTime, ExamStatusEnum.STAGE.name(), sysUser.getId(), orgIds, userName);
         return examTaskDtoIPage;
     }
 
@@ -902,6 +887,16 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 .eq(ExamTask::getId, examTask.getId());
         this.update(updateWrapper);
 
+        if(Objects.nonNull(examTask.getFlowId())){
+            // 审核一级
+            Task task = taskService.createTaskQuery().processInstanceId(String.valueOf(examTask.getFlowId())).singleResult();
+            if(Objects.nonNull(task)) {
+                Map<String, Object> map1 = new HashMap<>();
+                map1.computeIfAbsent(SystemConstant.FLOW_TASK_ID, v -> task.getId());
+                activitiService.taskApprove(map1);
+            }
+        }
+
         QueryWrapper<ExamTaskDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamTaskDetail::getExamTaskId, examTaskDetail.getExamTaskId());
         ExamTaskDetail detail = examTaskDetailService.getOne(queryWrapper);

+ 5 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -529,7 +529,7 @@ public class CreatePdfUtil {
                                 paperTypes = exposedPaperType.split(",");
                             }
                         }
-                        paperType = randomPaperType(paperTypes, exposedPaperType.split(","), drawCount);
+                        paperType = randomPaperType(paperTypes, exposedPaperType, drawCount);
                         CreatePdfCacheUtil.setPaperType(key, paperType);
                     }
                     break;
@@ -554,10 +554,10 @@ public class CreatePdfUtil {
         return paperType;
     }
 
-    private String randomPaperType(String[] unexposedPaperTypes, String[] exposedPaperTypes, int drawCount) {
+    private String randomPaperType(String[] unexposedPaperTypes, String exposedPaperTypes, int drawCount) {
         List<String> finalTypes = new ArrayList<>();
-        List<String> unexposedPaperTypesList = Arrays.asList(unexposedPaperTypes);
-        List<String> exposedPaperTypesList = Arrays.asList(exposedPaperTypes);
+        List<String> unexposedPaperTypesList = new ArrayList<>(Arrays.asList(unexposedPaperTypes));
+        List<String> exposedPaperTypesList =StringUtils.isBlank(exposedPaperTypes) ? new ArrayList<>() : new ArrayList<>(Arrays.asList(exposedPaperTypes.split(",")));
         if (unexposedPaperTypesList.size() - drawCount >= 0) {
             for (int i = 0; i < drawCount; i++) {
                 int paperRandom = new Random().nextInt(unexposedPaperTypesList.size());
@@ -722,7 +722,7 @@ public class CreatePdfUtil {
         }
         String studentHtml = studentContent;
         if (Objects.nonNull(t.getExtendFields())) {
-            JSONArray jsonObjectExtend = (JSONArray) JSONArray.parse(t.getExtendFields());//扩展字段
+            JSONArray jsonObjectExtend = JSONArray.parseArray(JSONObject.toJSONString(t.getExtendFields()));//扩展字段
             if (Objects.nonNull(jsonObjectExtend)) {
                 for (int i = 0; i < jsonObjectExtend.size(); i++) {
                     JSONObject object = (JSONObject) jsonObjectExtend.get(i);

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

@@ -11,8 +11,8 @@
             basic_student s
         WHERE
             s.school_id = #{schoolId}
-            <if test="stringList != null">
-                and s.class in
+            <if test="stringList != null and stringList != ''">
+                and s.clazz in
                 <foreach collection="stringList" item="cla" open="(" close=")" separator=",">
                     #{cla}
                 </foreach>

+ 74 - 62
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -31,31 +31,31 @@
     </sql>
     <select id="listPage" resultType="com.qmth.distributed.print.business.bean.dto.ExamTaskDto">
         SELECT
-        a.id,
-        a.school_id schoolId,
-        a.course_code courseCode,
-        a.course_name courseName,
-        a.specialty,
-        a.paper_number paperNumber,
-        a.card_rule_id cardRuleId,
-        case a.card_rule_id when -1 then '全部通卡' else b.name end cardRuleName,
-        a.user_id userId,
-        c.real_name userName,
-        d.real_name createName,
-        a.start_time startTime,
-        a.end_time endTime,
-        a.status,
-        a.enable,
-        a.create_id createId,
-        a.create_time createTime
+            a.id,
+            a.school_id schoolId,
+            a.course_code courseCode,
+            a.course_name courseName,
+            a.specialty,
+            a.paper_number paperNumber,
+            a.card_rule_id cardRuleId,
+            case a.card_rule_id when -1 then '全部通卡' else b.name end cardRuleName,
+            a.user_id userId,
+            c.real_name userName,
+            d.real_name createName,
+            a.start_time startTime,
+            a.end_time endTime,
+            a.status,
+            a.enable,
+            a.create_id createId,
+            a.create_time createTime
         FROM
-        exam_task a
+            exam_task a
         LEFT JOIN
-        basic_card_rule b ON a.card_rule_id = b.id
+            basic_card_rule b ON a.card_rule_id = b.id
         LEFT JOIN
-        sys_user c ON a.user_id = c.id
+            sys_user c ON a.user_id = c.id
         LEFT JOIN
-        sys_user d ON a.create_id = d.id
+            sys_user d ON a.create_id = d.id
         <where>
             <if test="schoolId != null and schoolId != ''">
                 and a.school_id = #{schoolId}
@@ -114,51 +114,62 @@
         </where>
     </select>
     <select id="listTaskApply" resultType="com.qmth.distributed.print.business.bean.dto.ExamTaskDto">
-        select * from (SELECT
-        a.id,
-        a.school_id schoolId,
-        a.course_code courseCode,
-        a.course_name courseName,
-        a.specialty,
-        a.paper_number paperNumber,
-        a.card_rule_id cardRuleId,
-        case a.card_rule_id when -1 then '全部通卡' else b.name end cardRuleName,
-        a.user_id userId,
-        c.real_name userName,
-        a.start_time startTime,
-        a.end_time endTime,
-        a.status,
-        CASE
-        WHEN a.review = 1 AND a.status = 'SUBMIT' THEN 'NOT_AUDITED'
-        WHEN a.review = 1 AND a.status IN ('STAGE', 'FINISH') AND a.review_status IS NOT NULL THEN 'AUDITED'
-        ELSE ''
-        END auditStatus,
-        CASE
-        WHEN a.review_status IS NULL THEN ''
-        ELSE a.review_status
-        END reviewStatus,
-        a.enable,
-        a.create_id createId,
-        a.create_time createTime
+        SELECT
+            a.id,
+            a.school_id schoolId,
+            a.course_code courseCode,
+            a.course_name courseName,
+            a.specialty,
+            a.paper_number paperNumber,
+            a.card_rule_id cardRuleId,
+            CASE a.card_rule_id
+                WHEN - 1 THEN '全部通卡'
+                ELSE b.name
+            END cardRuleName,
+            a.user_id userId,
+            c.real_name userName,
+            a.start_time startTime,
+            a.end_time endTime,
+            a.status,
+            a.teacher_name teacherName,
+            a.lecturer_name lecturerName,
+            d.name teachingRoomName,
+            CASE
+                WHEN e.status = 'FINISH' THEN 'AUDITED'
+                WHEN e.status = 'AUDITING' THEN 'AUDITING'
+                WHEN
+                    e.status IS NOT NULL
+                        AND e.status != 'FINISH'
+                        AND e.status != 'AUDITING'
+                THEN
+                    'NOT_AUDITED'
+                ELSE ''
+            END auditStatus,
+            CASE
+                WHEN a.review_status IS NULL THEN ''
+                ELSE a.review_status
+            END reviewStatus,
+            a.enable,
+            a.create_id createId,
+            a.create_time createTime
         FROM
-        exam_task a
-        LEFT JOIN
-        basic_card_rule b ON a.card_rule_id = b.id
-        LEFT JOIN
-        sys_user c ON a.user_id = c.id
+            exam_task a
+                LEFT JOIN
+            basic_card_rule b ON a.card_rule_id = b.id
+                LEFT JOIN
+            sys_user c ON a.user_id = c.id
+                LEFT JOIN
+            sys_org d ON a.teaching_room_id = d.id
+                LEFT JOIN
+            t_f_flow_approve e ON a.flow_id = e.flow_id
         <where>
-            <if test="orgIds != null and userId != null and userId != ''">
+            a.enable = true
+            and a.status = #{status}
+            <if test="userId != null and userId != ''">
                 and a.user_id = #{userId}
             </if>
-        </where>
-        order by a.create_time desc) a
-        <where>
-            a.enable = true and a.status not in
-            <foreach item="item" collection="status" separator="," open="(" close=")" index="">
-                #{item}
-            </foreach>
             <if test="schoolId != null and schoolId != ''">
-                and a.schoolId = #{schoolId}
+                and a.school_id = #{schoolId}
             </if>
             <if test="auditStatus != null">
                 and a.auditStatus = #{auditStatus}
@@ -185,6 +196,7 @@
                 and a.userName like concat('%',#{userName},'%')
             </if>
         </where>
+        order by a.create_time desc
     </select>
     <select id="listTaskReviewUnaudited" resultType="com.qmth.distributed.print.business.bean.dto.ExamTaskDto">
         SELECT
@@ -392,7 +404,7 @@
             LEFT JOIN
         exam_card f ON b.card_id = f.id
         <where>
-            (a.flow_id is null or (a.flow_id is not null and g.status = 'FINISH'))
+            (a.status = 'SUBMIT' and a.flow_id is null or (a.flow_id is not null and g.status = 'FINISH'))
             <if test="schoolId != null and schoolId != ''">
                 and a.school_id = #{schoolId}
             </if>

+ 9 - 11
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -80,9 +80,6 @@ public class ExamTaskController {
     @Resource
     private BasicMessageService basicMessageService;
 
-    @Resource
-    TeachcloudCommonService teachcloudCommonService;
-
     @Autowired
     private ExamTaskPrintService examTaskPrintService;
 
@@ -93,7 +90,7 @@ public class ExamTaskController {
     TaskService taskService;
 
     /**
-     *
+     * 命题任务管理-查询
      * @param enable
      * @param status
      * @param cardRuleId
@@ -107,7 +104,7 @@ public class ExamTaskController {
      * @param pageSize
      * @return
      */
-    @ApiOperation(value = "查询")
+    @ApiOperation(value = "命题任务管理-查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     public Result list(@RequestParam(required = false) Boolean enable,
                        @RequestParam(required = false) String status,
@@ -178,12 +175,12 @@ public class ExamTaskController {
     }
 
     /**
-     * 新建
+     * 新建命题任务
      *
      * @param examTask
      * @return
      */
-    @ApiOperation(value = "新建")
+    @ApiOperation(value = "新建命题任务")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     public Result save(@RequestBody ExamTask examTask) {
         ExamTask task = examTaskService.saveExamTaskNew(examTask);
@@ -302,7 +299,7 @@ public class ExamTaskController {
                               @RequestParam(value = "examTaskId", required = true) Long examTaskId,
                               @RequestParam(value = "source", required = false) String source) {
         ExamTaskDetailCardDto detail = examTaskService.applyGetOne(examTaskId, source);
-        if(Objects.nonNull(detail.getFlowId())){
+        if(Objects.nonNull(detail) && Objects.nonNull(detail.getFlowId())){
             Task task = taskService.createTaskQuery().processInstanceId(detail.getFlowId()).singleResult();
             if(Objects.nonNull(task)){
                 detail.setFlowTaskId(task.getId());
@@ -635,7 +632,7 @@ public class ExamTaskController {
     @RequestMapping(value = "/list_task_print", method = RequestMethod.POST)
     public Result listTaskPrintStudent(@RequestParam(value = "printPlanId") Long printPlanId,
                                        @RequestParam(value = "courseCode") String courseCode,
-                                       @RequestParam(value = "paperNumber") Long paperNumber,
+                                       @RequestParam(value = "paperNumber") String paperNumber,
                                        @RequestParam Integer pageNumber,
                                        @RequestParam Integer pageSize) {
         ExamTaskPrintDto examTaskPrintDto = examTaskPrintService.listTaskPrint(printPlanId, courseCode, paperNumber, pageNumber, pageSize);
@@ -665,8 +662,9 @@ public class ExamTaskController {
     @RequestMapping(value = "/list_task_print_class", method = RequestMethod.POST)
     public Result listTaskPrintClass(@RequestParam(value = "printPlanId") String printPlanId,
                                      @RequestParam(value = "courseCode") String courseCode,
-                                     @RequestParam(value = "paperNumber") String paperNumber) {
-        List<TaskPrintClassDto> classDtos = examTaskPrintService.listClass(printPlanId, courseCode, paperNumber);
+                                     @RequestParam(value = "paperNumber") String paperNumber,
+                                     @RequestParam(value = "examTaskPrintId", required = false) Long examTaskPrintId) {
+        List<TaskPrintClassDto> classDtos = examTaskPrintService.listClass(printPlanId, courseCode, paperNumber, examTaskPrintId);
         return ResultUtil.ok(classDtos);
     }