xiaofei 1 سال پیش
والد
کامیت
a48a2c9430
18فایلهای تغییر یافته به همراه585 افزوده شده و 99 حذف شده
  1. 9 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClientExamTaskDto.java
  2. 88 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/client/PrintSingleDto.java
  3. 31 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/client/UrlMd5Dto.java
  4. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ClientMapper.java
  5. 7 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TBTaskPdfMapper.java
  6. 3 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ClientService.java
  7. 5 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TBTaskPdfService.java
  8. 10 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java
  9. 11 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBTaskPdfServiceImpl.java
  10. 0 9
      distributed-print-business/src/main/resources/db/log/update-yin.sql
  11. 44 0
      distributed-print-business/src/main/resources/mapper/ClientMapper.xml
  12. 52 0
      distributed-print-business/src/main/resources/mapper/TBTaskPdfMapper.xml
  13. 19 1
      distributed-print/install/mysql/upgrade/3.3.1.sql
  14. 4 72
      distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskController.java
  15. 102 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskPdfController.java
  16. 16 11
      distributed-print/src/main/java/com/qmth/distributed/print/api/client/PrintController.java
  17. 181 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/TaskPdfResult.java
  18. 1 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysPrivilegeServiceImpl.java

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClientExamTaskDto.java

@@ -13,6 +13,7 @@ public class ClientExamTaskDto {
     private String paperNumber;
     private String paperNumber;
     private String courseCode;
     private String courseCode;
     private String courseName;
     private String courseName;
+    private String paperType;
     private String specialty;
     private String specialty;
     private String userId;
     private String userId;
     private String userName;
     private String userName;
@@ -84,6 +85,14 @@ public class ClientExamTaskDto {
         this.courseName = courseName;
         this.courseName = courseName;
     }
     }
 
 
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
     public String getSpecialty() {
     public String getSpecialty() {
         return specialty;
         return specialty;
     }
     }

+ 88 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/client/PrintSingleDto.java

@@ -0,0 +1,88 @@
+package com.qmth.distributed.print.business.bean.dto.client;
+
+import java.util.List;
+
+public class PrintSingleDto {
+
+    private String examName;
+    private String courseCode;
+    private String courseName;
+    private String paperNumber;
+    private List<UrlMd5Dto> paper;
+    private List<UrlMd5Dto> card;
+    private List<UrlMd5Dto> signs;
+    private List<UrlMd5Dto> packages;
+    private List<UrlMd5Dto> checkIn;
+
+    public String getExamName() {
+        return examName;
+    }
+
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
+    public List<UrlMd5Dto> getPaper() {
+        return paper;
+    }
+
+    public void setPaper(List<UrlMd5Dto> paper) {
+        this.paper = paper;
+    }
+
+    public List<UrlMd5Dto> getCard() {
+        return card;
+    }
+
+    public void setCard(List<UrlMd5Dto> card) {
+        this.card = card;
+    }
+
+    public List<UrlMd5Dto> getSigns() {
+        return signs;
+    }
+
+    public void setSigns(List<UrlMd5Dto> signs) {
+        this.signs = signs;
+    }
+
+    public List<UrlMd5Dto> getPackages() {
+        return packages;
+    }
+
+    public void setPackages(List<UrlMd5Dto> packages) {
+        this.packages = packages;
+    }
+
+    public List<UrlMd5Dto> getCheckIn() {
+        return checkIn;
+    }
+
+    public void setCheckIn(List<UrlMd5Dto> checkIn) {
+        this.checkIn = checkIn;
+    }
+}

+ 31 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/client/UrlMd5Dto.java

@@ -0,0 +1,31 @@
+package com.qmth.distributed.print.business.bean.dto.client;
+
+public class UrlMd5Dto {
+
+    private String url;
+    private String md5;
+
+    public UrlMd5Dto() {
+    }
+
+    public UrlMd5Dto(String url, String md5) {
+        this.url = url;
+        this.md5 = md5;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getMd5() {
+        return md5;
+    }
+
+    public void setMd5(String md5) {
+        this.md5 = md5;
+    }
+}

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

@@ -20,4 +20,6 @@ public interface ClientMapper {
     ClientPrintTaskTotalDto clientTaskTotalData(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanId") String printPlanId, @Param("status") String status, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("isDownload") Boolean isDownload, @Param("validate") Boolean validate, @Param("machineCode") String machineCode, @Param("orgId") Long orgId, @Param("examDetailStatus") String[] examDetailStatus);
     ClientPrintTaskTotalDto clientTaskTotalData(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanId") String printPlanId, @Param("status") String status, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("isDownload") Boolean isDownload, @Param("validate") Boolean validate, @Param("machineCode") String machineCode, @Param("orgId") Long orgId, @Param("examDetailStatus") String[] examDetailStatus);
 
 
     IPage<ClientExamStudentDto> listClientExamStudentPage(Page<ClientExamStudentDto> page, Long schoolId, Long examDetailId, String studentCode, String studentName, String courseCode);
     IPage<ClientExamStudentDto> listClientExamStudentPage(Page<ClientExamStudentDto> page, Long schoolId, Long examDetailId, String studentCode, String studentName, String courseCode);
+
+    List<ClientExamTaskDto> pagePrintSingleData(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanId") Long printPlanId, @Param("courseCode") Long courseCode, @Param("paperNumber") Long paperNumber, @Param("examDetailStatus") String[] examDetailStatus);
 }
 }

+ 7 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TBTaskPdfMapper.java

@@ -1,7 +1,13 @@
 package com.qmth.distributed.print.business.mapper;
 package com.qmth.distributed.print.business.mapper;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.entity.TBTaskPdf;
 import com.qmth.distributed.print.business.entity.TBTaskPdf;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.teachcloud.common.bean.result.TaskPdfResult;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import org.apache.ibatis.annotations.Param;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -13,4 +19,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
  */
 public interface TBTaskPdfMapper extends BaseMapper<TBTaskPdf> {
 public interface TBTaskPdfMapper extends BaseMapper<TBTaskPdf> {
 
 
+    IPage<TaskPdfResult> pageData(@Param("page") Page<TaskPdfResult> page, @Param("examId") Long examId, @Param("printPlanId") String printPlanId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("status") TaskStatusEnum status, @Param("result") TaskResultEnum result, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime);
 }
 }

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ClientService.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.service;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.dto.*;
+import com.qmth.distributed.print.business.bean.dto.client.PrintSingleDto;
 import com.qmth.teachcloud.common.bean.dto.SchoolDto;
 import com.qmth.teachcloud.common.bean.dto.SchoolDto;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
@@ -52,4 +53,6 @@ public interface ClientService {
     List<Map<String, String>> getPaperUrl(Long schoolId, Long printPlanId, Long examTaskId);
     List<Map<String, String>> getPaperUrl(Long schoolId, Long printPlanId, Long examTaskId);
 
 
     Set<String> getRoleByUserId(Long id);
     Set<String> getRoleByUserId(Long id);
+
+    PrintSingleDto getSingleData(Long semesterId, Long examId, Long printPlanId, Long courseCode, Long paperNumber, Integer pageNumber, Integer pageSize);
 }
 }

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

@@ -1,7 +1,10 @@
 package com.qmth.distributed.print.business.service;
 package com.qmth.distributed.print.business.service;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.entity.TBTaskPdf;
 import com.qmth.distributed.print.business.entity.TBTaskPdf;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.teachcloud.common.bean.result.TaskPdfResult;
 import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
 import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.CreatePdfTypeEnum;
 import com.qmth.teachcloud.common.enums.CreatePdfTypeEnum;
@@ -29,4 +32,6 @@ public interface TBTaskPdfService extends IService<TBTaskPdf> {
     void resetRunningCreatePdf(Long id, CreatePdfTypeEnum type);
     void resetRunningCreatePdf(Long id, CreatePdfTypeEnum type);
 
 
     int countRunningByExamDetailIds(List<Long> examDetailIds);
     int countRunningByExamDetailIds(List<Long> examDetailIds);
+
+    IPage<TaskPdfResult> pageData(Page<TaskPdfResult> page, Long examId, String printPlanId, String courseCode, String paperNumber, TaskStatusEnum status, TaskResultEnum result, String examPlace, String examRoom, Long examStartTime, Long examEndTime);
 }
 }

+ 10 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.dto.*;
+import com.qmth.distributed.print.business.bean.dto.client.PrintSingleDto;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
@@ -24,6 +25,7 @@ import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.ExamTaskUtil;
 import com.qmth.teachcloud.common.util.ExamTaskUtil;
 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 net.sf.jsqlparser.statement.select.Select;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -768,6 +770,14 @@ public class ClientServiceImpl implements ClientService {
         return roles;
         return roles;
     }
     }
 
 
+    @Override
+    public PrintSingleDto getSingleData(Long semesterId, Long examId, Long printPlanId, Long courseCode, Long paperNumber, Integer pageNumber, Integer pageSize) {
+        Page<ClientExamTaskDto> page = new Page<>(pageNumber, pageSize);
+        String[] examDetailStatus = {ExamDetailStatusEnum.NEW.name(), ExamDetailStatusEnum.READY.name(), ExamDetailStatusEnum.CANCEL.name()};
+        List<ClientExamTaskDto> clientExamTaskDtoList = clientMapper.pagePrintSingleData(semesterId, examId, printPlanId, courseCode, paperNumber, examDetailStatus);
+        return null;
+    }
+
     /**
     /**
      * 根据考场生成试卷map
      * 根据考场生成试卷map
      */
      */

+ 11 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBTaskPdfServiceImpl.java

@@ -3,25 +3,23 @@ package com.qmth.distributed.print.business.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 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.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.entity.TBTaskPdf;
 import com.qmth.distributed.print.business.entity.TBTaskPdf;
 import com.qmth.distributed.print.business.mapper.TBTaskPdfMapper;
 import com.qmth.distributed.print.business.mapper.TBTaskPdfMapper;
 import com.qmth.distributed.print.business.service.TBTaskPdfService;
 import com.qmth.distributed.print.business.service.TBTaskPdfService;
-import com.qmth.teachcloud.common.bean.dto.MqDto;
+import com.qmth.teachcloud.common.bean.result.TaskPdfResult;
 import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
 import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
-import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.List;
-import java.util.Map;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -86,4 +84,12 @@ public class TBTaskPdfServiceImpl extends ServiceImpl<TBTaskPdfMapper, TBTaskPdf
                 .eq(TBTaskPdf::getStatus, TaskStatusEnum.RUNNING);
                 .eq(TBTaskPdf::getStatus, TaskStatusEnum.RUNNING);
         return this.count(queryWrapper);
         return this.count(queryWrapper);
     }
     }
+
+    @Override
+    public IPage<TaskPdfResult> pageData(Page<TaskPdfResult> page, Long examId, String printPlanId, String courseCode, String paperNumber, TaskStatusEnum status, TaskResultEnum result, String examPlace, String examRoom, Long examStartTime, Long examEndTime) {
+        if (examId == null) {
+            throw ExceptionResultEnum.ERROR.exception("请选择考试");
+        }
+        return this.baseMapper.pageData(page, examId, printPlanId, courseCode, paperNumber, status, result, examPlace, examRoom, examStartTime, examEndTime);
+    }
 }
 }

+ 0 - 9
distributed-print-business/src/main/resources/db/log/update-yin.sql

@@ -1,9 +0,0 @@
-update mark_question t
-set t.objective_policy = 'LEAK'
-where t.objective_policy = 'LEAK_HALF';
-ALTER TABLE `mark_question`
-    ADD COLUMN `objective_policy_score` double DEFAULT NULL COMMENT '客观题判分策略计分';
-ALTER TABLE `scan_paper`
-    ADD COLUMN `invalid` bit(1) NOT NULL COMMENT '强制绑定';
-ALTER TABLE `mark_student`
-    ADD COLUMN `invalid` bit(1) NOT NULL COMMENT '强制绑定';

+ 44 - 0
distributed-print-business/src/main/resources/mapper/ClientMapper.xml

@@ -358,4 +358,48 @@
         </where>
         </where>
         order by c.student_code
         order by c.student_code
     </select>
     </select>
+    <select id="pagePrintSingleData" resultType="com.qmth.distributed.print.business.bean.dto.ClientExamTaskDto">
+        SELECT
+            distinct b.exam_id examId,
+            epp.id printPlanId,
+            epp.name printPlanName,
+            c.course_code courseCode,
+            c.course_name courseName,
+            c.paper_number paperNumber,
+            c.paper_type paperType,
+            d.id examTaskId
+        FROM
+            exam_detail b
+                JOIN
+            exam_detail_course c ON b.id = c.exam_detail_id
+                JOIN
+            exam_task d ON d.exam_id = b.exam_id
+                AND d.course_code = c.course_code
+                AND d.paper_number = c.paper_number
+                LEFT JOIN
+            exam_print_plan epp ON b.print_plan_id = epp.id
+                LEFT JOIN
+            basic_exam be on b.exam_id = be.id
+        <where>
+            <if test="semesterId != null">
+                and be.semester_id = #{semesterId}
+            </if>
+            <if test="examId != null">
+                and be.id = #{examId}
+            </if>
+            <if test="printPlanId != null">
+                and epp.id = #{printPlanId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and c.course_code = #{courseCode}
+            </if>
+            <if test="paperNumber != null and paperNumber != ''">
+                and c.paper_number = #{paperNumber}
+            </if>
+            and b.status not in
+            <foreach item="item" collection="examDetailStatus" separator="," open="(" close=")" index="">
+                #{item}
+            </foreach>
+        </where>
+    </select>
 </mapper>
 </mapper>

+ 52 - 0
distributed-print-business/src/main/resources/mapper/TBTaskPdfMapper.xml

@@ -21,5 +21,57 @@
         <result column="update_time" property="updateTime" />
         <result column="update_time" property="updateTime" />
         <result column="remark" property="remark" />
         <result column="remark" property="remark" />
     </resultMap>
     </resultMap>
+    <select id="pageData" resultType="com.qmth.teachcloud.common.bean.result.TaskPdfResult">
+        SELECT
+            tp.id,
+            tp.exam_id,
+            epp.name print_plan_name,
+            tp.course_name_code,
+            tp.paper_number,
+            tp.create_type,
+            tp.status,
+            tp.result,
+            tp.summary,
+            ed.exam_place,
+            ed.exam_room,
+            ed.exam_start_time,
+            ed.exam_end_time
+        FROM
+            t_b_task_pdf tp
+                LEFT JOIN
+            exam_detail ed ON tp.id = ed.id
+                LEFT JOIN
+            exam_print_plan epp ON tp.print_plan_id = epp.id
+        <where>
+            tp.exam_id = #{examId}
+            <if test="printPlanId != null">
+                and tp.print_plan_id = #{printPlanId}
+            </if>
+            <if test="courseCode != null">
+                and exists (select 1 from exam_detail_course edc where ed.id = edc.exam_detail_id and edc.course_code = #{courseCode})
+            </if>
+            <if test="paperNumber != null">
+                and exists (select 1 from exam_detail_course edc where ed.id = edc.exam_detail_id and edc.paper_number = #{paperNumber})
+            </if>
+            <if test="status != null">
+                and tp.status = #{status}
+            </if>
+            <if test="result != null">
+                and tp.result = #{result}
+            </if>
+            <if test="examPlace != null">
+                and ed.exam_place = #{examPlace}
+            </if>
+            <if test="examRoom != null">
+                and ed.exam_room = #{examRoom}
+            </if>
+            <if test="examStartTime != null">
+                and ed.exam_start_time &gt;= #{examStartTime}
+            </if>
+            <if test="examEndTime != null">
+                and ed.exam_end_time &lt;= #{examEndTime}
+            </if>
+        </where>
+    </select>
 
 
 </mapper>
 </mapper>

+ 19 - 1
distributed-print/install/mysql/upgrade/3.3.1.sql

@@ -371,4 +371,22 @@ INSERT INTO sys_privilege
 VALUES(2030, '期末成绩-同步', '/api/admin/course/degree/final_score/sync', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
 VALUES(2030, '期末成绩-同步', '/api/admin/course/degree/final_score/sync', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
 
 
 ALTER TABLE t_c_final_score ADD source varchar(50) NULL COMMENT '来源,EXCEL_IMPORT:excel导入,SYNC:数据同步';
 ALTER TABLE t_c_final_score ADD source varchar(50) NULL COMMENT '来源,EXCEL_IMPORT:excel导入,SYNC:数据同步';
-ALTER TABLE t_c_final_score CHANGE source source varchar(50) NULL COMMENT '来源,EXCEL_IMPORT:excel导入,SYNC:数据同步' AFTER enable;
+ALTER TABLE t_c_final_score CHANGE source source varchar(50) NULL COMMENT '来源,EXCEL_IMPORT:excel导入,SYNC:数据同步' AFTER enable;
+
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `enable`, `default_auth`, `front_display`) VALUES ('115', 'PDF生成管理', 'PdfBuildManage', 'MENU', '112', '2', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('126', '查询条件', 'Condition', 'CONDITION', '115', '1', 'AUTH', '127', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('127', '查询', '/api/admin/data/task/page_pdf_create', 'URL', '115', '1', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('116', '查询', 'Select', 'BUTTON', '115', '1', 'AUTH', '127', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('128', '列表', 'List', 'LIST', '115', '2', 'AUTH', '127', '1', '0', '1');
+UPDATE `sys_privilege` SET `parent_id` = '115' WHERE (`id` = '413');
+UPDATE `sys_privilege` SET `parent_id` = '115' WHERE (`id` = '190');
+
+update mark_question t
+set t.objective_policy = 'LEAK'
+where t.objective_policy = 'LEAK_HALF';
+ALTER TABLE `mark_question`
+    ADD COLUMN `objective_policy_score` double DEFAULT NULL COMMENT '客观题判分策略计分';
+ALTER TABLE `scan_paper`
+    ADD COLUMN `invalid` bit(1) NOT NULL COMMENT '强制绑定';
+ALTER TABLE `mark_student`
+    ADD COLUMN `invalid` bit(1) NOT NULL COMMENT '强制绑定';

+ 4 - 72
distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskController.java

@@ -2,23 +2,14 @@ package com.qmth.distributed.print.api;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.distributed.print.business.bean.result.EditResult;
-import com.qmth.distributed.print.business.entity.TBTaskPdf;
-import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
-import com.qmth.distributed.print.business.service.ExamDetailService;
-import com.qmth.distributed.print.business.service.PrintCommonService;
-import com.qmth.distributed.print.business.service.TBTaskPdfService;
-import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
-import com.qmth.teachcloud.common.bean.dto.MqDto;
 import com.qmth.teachcloud.common.bean.result.TaskListResult;
 import com.qmth.teachcloud.common.bean.result.TaskListResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.entity.TBTask;
-import com.qmth.teachcloud.common.enums.*;
+import com.qmth.teachcloud.common.enums.DownloadFileEnum;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.service.TBTaskService;
-import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -27,15 +18,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import retrofit2.http.Path;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import javax.validation.constraints.Min;
-import java.io.IOException;
-import java.util.HashMap;
 import java.util.List;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 import java.util.Objects;
 
 
 /**
 /**
@@ -55,33 +42,6 @@ public class TBTaskController {
 
 
     @Resource
     @Resource
     TBTaskService tbTaskService;
     TBTaskService tbTaskService;
-    @Resource
-    TBTaskPdfService tbTaskPdfService;
-
-    @Resource
-    ExamDetailService examDetailService;
-
-    @Resource
-    AsyncCreatePdfTempleteService asyncCreatePdfTempleteService;
-
-    @Resource
-    PrintCommonService printCommonService;
-
-    @Aac(auth = false)
-    @ApiOperation(value = "test")
-    @RequestMapping(value = "/{id}/{type}", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "重新生成pdf", response = EditResult.class)})
-    public Result test(@PathVariable Long id,
-                       @PathVariable CreatePdfTypeEnum type) {
-        TBTaskPdf tbTaskPdf = tbTaskPdfService.getById(id);
-        try {
-            asyncCreatePdfTempleteService.createPdf(tbTaskPdf, null);
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-        return ResultUtil.ok(new EditResult());
-    }
-
 
 
     @ApiOperation(value = "任务管理查询接口")
     @ApiOperation(value = "任务管理查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @RequestMapping(value = "/query", method = RequestMethod.POST)
@@ -117,16 +77,6 @@ public class TBTaskController {
         return ResultUtil.ok(taskListResultIPage);
         return ResultUtil.ok(taskListResultIPage);
     }
     }
 
 
-    @ApiOperation(value = "重新生成pdf")
-    @RequestMapping(value = "/reset_create_pdf", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "重新生成pdf", response = EditResult.class)})
-    public Result resetCreatePdf(@ApiParam(value = "任务id", required = true) @RequestParam Long id,
-                                 @ApiParam(value = "pdf生成类型") @RequestParam(defaultValue = "ALL") CreatePdfTypeEnum type) {
-        examDetailService.resetExamDetail(id, type, ExamDetailStatusEnum.NEW, false);
-        tbTaskPdfService.resetRunningCreatePdf(id, type);
-        return ResultUtil.ok(new EditResult());
-    }
-
     @ApiOperation(value = "任务管理查询接口")
     @ApiOperation(value = "任务管理查询接口")
     @PostMapping("/query_result")
     @PostMapping("/query_result")
     @ApiResponses({@ApiResponse(code = 200, message = "任务管理列表信息", response = TaskListResult.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "任务管理列表信息", response = TaskListResult.class)})
@@ -154,22 +104,4 @@ public class TBTaskController {
         }
         }
         return ResultUtil.ok(taskListResultIPage);
         return ResultUtil.ok(taskListResultIPage);
     }
     }
-
-//    @ApiOperation(value = "任务管理_批量删除&清空接口")
-//    @RequestMapping(value = "/delete", method = RequestMethod.POST)
-//    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
-//    @Transactional
-//    public Result taskDelete(@ApiParam(value = "数组id和选择类型", required = true) @RequestBody ChooseParams chooseParams) {
-//        if ((Objects.isNull(chooseParams.getIds()) || chooseParams.getIds().length == 0) && Objects.isNull(chooseParams.getType())) {
-//            throw ExceptionResultEnum.PARAMS_ERROR.exception("数据id或选择类型必须选一个");
-//        }
-//        if (Objects.nonNull(chooseParams.getType())) {
-//            QueryWrapper<TBTask> tbTaskQueryWrapper = new QueryWrapper<>();
-//            tbTaskQueryWrapper.lambda().eq(TBTask::getStatus, TaskStatusEnum.FINISH);
-//            tbTaskService.remove(tbTaskQueryWrapper);
-//        } else {
-//            tbTaskService.removeByIds(Arrays.asList(chooseParams.getIds()));
-//        }
-//        return ResultUtil.ok();
-//    }
 }
 }

+ 102 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskPdfController.java

@@ -0,0 +1,102 @@
+package com.qmth.distributed.print.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.distributed.print.business.entity.TBTaskPdf;
+import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
+import com.qmth.distributed.print.business.service.ExamDetailService;
+import com.qmth.distributed.print.business.service.PrintCommonService;
+import com.qmth.distributed.print.business.service.TBTaskPdfService;
+import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
+import com.qmth.teachcloud.common.bean.result.TaskListResult;
+import com.qmth.teachcloud.common.bean.result.TaskPdfResult;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.*;
+import com.qmth.teachcloud.common.service.TBTaskService;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
+import io.swagger.annotations.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * <p>
+ * pdf生成 前端控制器
+ * </p>
+ */
+@Api(tags = "PDF生成管理Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_DATA + "/task")
+@Validated
+public class TBTaskPdfController {
+    private final static Logger log = LoggerFactory.getLogger(TBTaskPdfController.class);
+
+    @Resource
+    TBTaskPdfService tbTaskPdfService;
+
+    @Resource
+    ExamDetailService examDetailService;
+
+    @Resource
+    AsyncCreatePdfTempleteService asyncCreatePdfTempleteService;
+
+    @Aac(auth = false)
+    @ApiOperation(value = "test")
+    @RequestMapping(value = "/{id}/{type}", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "重新生成pdf", response = EditResult.class)})
+    public Result test(@PathVariable Long id,
+                       @PathVariable CreatePdfTypeEnum type) {
+        TBTaskPdf tbTaskPdf = tbTaskPdfService.getById(id);
+        try {
+            asyncCreatePdfTempleteService.createPdf(tbTaskPdf, null);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        return ResultUtil.ok(new EditResult());
+    }
+
+
+    @Aac(auth = false)
+    @ApiOperation(value = "PDF生成管理查询接口")
+    @RequestMapping(value = "/page_pdf_create", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "PDF生成管理列表信息", response = TaskListResult.class)})
+    public Result taskQuery(@ApiParam(value = "考试ID", required = true) @RequestParam(value = "examId") Long examId,
+                            @ApiParam(value = "印刷计划ID") @RequestParam(required = false) String printPlanId,
+                            @ApiParam(value = "课程代码") @RequestParam(value = "courseCode", required = false) String courseCode,
+                            @ApiParam(value = "试着编号") @RequestParam(value = "paperNumber", required = false) String paperNumber,
+                            @ApiParam(value = "任务状态") @RequestParam(value = "status", required = false) TaskStatusEnum status,
+                            @ApiParam(value = "任务数据结果") @RequestParam(value = "result", required = false) TaskResultEnum result,
+                            @ApiParam(value = "考点") @RequestParam(value = "examPlace", required = false) String examPlace,
+                            @ApiParam(value = "考场") @RequestParam(value = "examRoom", required = false) String examRoom,
+                            @ApiParam(value = "考试时间(开始)") @RequestParam(value = "examStartTime", required = false) Long examStartTime,
+                            @ApiParam(value = "考试时间(结束)") @RequestParam(value = "examEndTime", required = false) Long examEndTime,
+                            @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                            @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        IPage<TaskPdfResult> taskListResultIPage = tbTaskPdfService.pageData(new Page<>(pageNumber, pageSize), examId, printPlanId, courseCode, paperNumber, status, result, examPlace, examRoom, examStartTime, examEndTime);
+        return ResultUtil.ok(taskListResultIPage);
+    }
+
+    @ApiOperation(value = "重新生成pdf")
+    @RequestMapping(value = "/reset_create_pdf", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "重新生成pdf", response = EditResult.class)})
+    public Result resetCreatePdf(@ApiParam(value = "任务id", required = true) @RequestParam Long id,
+                                 @ApiParam(value = "pdf生成类型") @RequestParam(defaultValue = "ALL") CreatePdfTypeEnum type) {
+        examDetailService.resetExamDetail(id, type, ExamDetailStatusEnum.NEW, false);
+        tbTaskPdfService.resetRunningCreatePdf(id, type);
+        return ResultUtil.ok(new EditResult());
+    }
+
+}

+ 16 - 11
distributed-print/src/main/java/com/qmth/distributed/print/api/client/PrintController.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.dto.*;
+import com.qmth.distributed.print.business.bean.dto.client.PrintSingleDto;
 import com.qmth.distributed.print.business.service.ClientService;
 import com.qmth.distributed.print.business.service.ClientService;
 import com.qmth.teachcloud.common.bean.dto.SchoolDto;
 import com.qmth.teachcloud.common.bean.dto.SchoolDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -292,15 +293,19 @@ public class PrintController {
         return ResultUtil.ok(clientService.updatePassword(userId, password));
         return ResultUtil.ok(clientService.updatePassword(userId, password));
     }
     }
 
 
-//    /**
-//     * 单文件打印
-//     *
-//     * @param examDetailId 命题任务ID
-//     */
-//    @ApiOperation(value = "单文件打印")
-//    @PostMapping("/print/single")
-//    public Result printSingleFile(@ApiParam(value = "考场ID") @RequestParam("examDetailId") Long examDetailId) {
-//        Map<String, Object> map = clientService.getUrlByExamDetailId(examDetailId);
-//        return ResultUtil.ok(map);
-//    }
+    /**
+     * 单文件打印
+     */
+    @ApiOperation(value = "单文件打印")
+    @PostMapping("/print/single")
+    public Result printSingleFile(@ApiParam(value = "学期ID", required = true) @RequestParam("semesterId") Long semesterId,
+                                  @ApiParam(value = "考试ID", required = true) @RequestParam("examId") Long examId,
+                                  @ApiParam(value = "印刷计划ID") @RequestParam(value = "printPlanId", required = false) Long printPlanId,
+                                  @ApiParam(value = "课程代码") @RequestParam(value = "courseCode", required = false) Long courseCode,
+                                  @ApiParam(value = "试卷编号") @RequestParam(value = "paperNumber", required = false) Long paperNumber,
+                                  @ApiParam(value = "分页参数", required = true) @RequestParam Integer pageNumber,
+                                  @ApiParam(value = "分页参数", required = true) @RequestParam Integer pageSize) {
+        PrintSingleDto printSingleDto = clientService.getSingleData(semesterId, examId, printPlanId, courseCode, paperNumber, pageNumber, pageSize);
+        return ResultUtil.ok(printSingleDto);
+    }
 }
 }

+ 181 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/TaskPdfResult.java

@@ -0,0 +1,181 @@
+package com.qmth.teachcloud.common.bean.result;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.enums.CreatePdfTypeEnum;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * 生成PDF任务列表result
+ */
+public class TaskPdfResult implements Serializable {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "考试ID")
+    private Long examId;
+    @ApiModelProperty(value = "印刷计划名称")
+    private String printPlanName;
+    @ApiModelProperty(value = "课程名称代码")
+    private String courseNameCode;
+    @ApiModelProperty(value = "试卷编号")
+    private String paperNumber;
+    @ApiModelProperty(value = "生成类型")
+    private CreatePdfTypeEnum createType;
+    @ApiModelProperty(value = "生成类型")
+    private String createTypeDisplay;
+    @ApiModelProperty(value = "任务状态,INIT:未开始,RUNNING:进行中,FINISH:已完成")
+    private TaskStatusEnum status;
+    @ApiModelProperty(value = "任务状态,INIT:未开始,RUNNING:进行中,FINISH:已完成")
+    private String statusDisplay;
+    @ApiModelProperty(value = "数据结果,SUCCESS:成功,ERROR:失败")
+    private TaskResultEnum result;
+    @ApiModelProperty(value = "数据结果,SUCCESS:成功,ERROR:失败")
+    private String resultDisplay;
+    @ApiModelProperty(value = "执行日志")
+    private String summary;
+    @ApiModelProperty(value = "考点(校区)")
+    private String examPlace;
+    @ApiModelProperty(value = "考场(考试地点)")
+    private String examRoom;
+    @ApiModelProperty(value = "考试时间(开始)")
+    private String examStartTime;
+    @ApiModelProperty(value = "考试时间(结束)")
+    private String examEndTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public String getPrintPlanName() {
+        return printPlanName;
+    }
+
+    public void setPrintPlanName(String printPlanName) {
+        this.printPlanName = printPlanName;
+    }
+
+    public String getCourseNameCode() {
+        return courseNameCode;
+    }
+
+    public void setCourseNameCode(String courseNameCode) {
+        this.courseNameCode = courseNameCode;
+    }
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
+    public CreatePdfTypeEnum getCreateType() {
+        return createType;
+    }
+
+    public void setCreateType(CreatePdfTypeEnum createType) {
+        this.createType = createType;
+    }
+
+    public String getCreateTypeDisplay() {
+        return createType != null ? createType.getName() : "/";
+    }
+
+    public void setCreateTypeDisplay(String createTypeDisplay) {
+        this.createTypeDisplay = createTypeDisplay;
+    }
+
+    public TaskStatusEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(TaskStatusEnum status) {
+        this.status = status;
+    }
+
+    public String getStatusDisplay() {
+        return status != null ? status.getTitle() : "/";
+    }
+
+    public void setStatusDisplay(String statusDisplay) {
+        this.statusDisplay = statusDisplay;
+    }
+
+    public TaskResultEnum getResult() {
+        return result;
+    }
+
+    public void setResult(TaskResultEnum result) {
+        this.result = result;
+    }
+
+    public String getResultDisplay() {
+        return result != null ? result.getTitle() : "/";
+    }
+
+    public void setResultDisplay(String resultDisplay) {
+        this.resultDisplay = resultDisplay;
+    }
+
+    public String getSummary() {
+        return summary;
+    }
+
+    public void setSummary(String summary) {
+        this.summary = summary;
+    }
+
+    public String getExamPlace() {
+        return examPlace;
+    }
+
+    public void setExamPlace(String examPlace) {
+        this.examPlace = examPlace;
+    }
+
+    public String getExamRoom() {
+        return examRoom;
+    }
+
+    public void setExamRoom(String examRoom) {
+        this.examRoom = examRoom;
+    }
+
+    public String getExamStartTime() {
+        return examStartTime;
+    }
+
+    public void setExamStartTime(String examStartTime) {
+        this.examStartTime = examStartTime;
+    }
+
+    public String getExamEndTime() {
+        return examEndTime;
+    }
+
+    public void setExamEndTime(String examEndTime) {
+        this.examEndTime = examEndTime;
+    }
+}

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysPrivilegeServiceImpl.java

@@ -333,7 +333,7 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
      * @return
      * @return
      */
      */
     @Override
     @Override
-    @Cacheable(value = SystemConstant.CUSTOM_PRIVILEGE_CACHE, unless = "#result == null")
+//    @Cacheable(value = SystemConstant.CUSTOM_PRIVILEGE_CACHE, unless = "#result == null")
     public List<PrivilegeDto> addCustomList() {
     public List<PrivilegeDto> addCustomList() {
         return this.commonCustomList();
         return this.commonCustomList();
     }
     }