xiaofei 2 лет назад
Родитель
Сommit
ee55dc63fd

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

@@ -13,6 +13,7 @@ public enum ExamDetailStatusEnum {
     READY("就绪"),
     READY("就绪"),
     WAITING("待打印"),
     WAITING("待打印"),
     PRINTING("印刷中"),
     PRINTING("印刷中"),
+    EXPIRED("已过期"),
     FINISH("已完成");
     FINISH("已完成");
     private final String desc;
     private final String desc;
 
 

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

@@ -40,5 +40,5 @@ public interface ExamDetailCourseMapper extends BaseMapper<ExamDetailCourse> {
 
 
     List<ExamDetailCourseDto> listByPrintPlanIdAndExamTaskId(@Param("printPlanIds") List<Long> printPlanIds, @Param("examTaskId") Long examTaskId);
     List<ExamDetailCourseDto> listByPrintPlanIdAndExamTaskId(@Param("printPlanIds") List<Long> printPlanIds, @Param("examTaskId") Long examTaskId);
 
 
-    IPage<SyncExamTaskDto> listSyncCourseByPrintPlanId(@Param("ipage") Page<SyncExamTaskDto> ipage, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("orgIds") Set<Long> orgIds, @Param("cardType") SyncCardTypeEnum cardType, @Param("syncStatus") ExamTaskSyncStatusEnum syncStatus, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
+    IPage<SyncExamTaskDto> listSyncCourseByPrintPlanId(@Param("ipage") Page<SyncExamTaskDto> ipage, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("roomOrgIds") Set<Long> roomOrgIds, @Param("orgIds") Set<Long> orgIds, @Param("cardType") SyncCardTypeEnum cardType, @Param("syncStatus") ExamTaskSyncStatusEnum syncStatus, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
 }
 }

+ 3 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ConditionService.java

@@ -1,10 +1,7 @@
 package com.qmth.distributed.print.business.service;
 package com.qmth.distributed.print.business.service;
 
 
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
-import com.qmth.teachcloud.common.entity.BasicClazz;
-import com.qmth.teachcloud.common.entity.BasicCourse;
-import com.qmth.teachcloud.common.entity.BasicExam;
-import com.qmth.teachcloud.common.entity.BasicSemester;
+import com.qmth.teachcloud.common.entity.*;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -26,4 +23,6 @@ public interface ConditionService {
     List<PrintPlanBrief> listPrintPlan(Long semesterId, Long examId, String source);
     List<PrintPlanBrief> listPrintPlan(Long semesterId, Long examId, String source);
 
 
     List<BasicClazz> listClazz(Long semesterId, Long examId, String courseCode);
     List<BasicClazz> listClazz(Long semesterId, Long examId, String courseCode);
+
+    List<SysOrg> listCollege();
 }
 }

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

@@ -156,7 +156,7 @@ public interface ExamDetailService extends IService<ExamDetail> {
     boolean submitTask(ExamDetail examDetail) throws IOException;
     boolean submitTask(ExamDetail examDetail) throws IOException;
 
 
     boolean taskCancel(Long id);
     boolean taskCancel(Long id);
-    boolean taskBatchCancel(List<Long> ids);
+    boolean taskBatchCancel(Map data);
 
 
     boolean resubmitTask(ExamDetail examDetail) throws IOException;
     boolean resubmitTask(ExamDetail examDetail) throws IOException;
 
 

+ 14 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java

@@ -12,6 +12,7 @@ import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.teachcloud.common.service.BasicSemesterService;
+import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -38,6 +39,9 @@ public class ConditionServiceImpl implements ConditionService {
     @Resource
     @Resource
     TeachCourseService teachCourseService;
     TeachCourseService teachCourseService;
 
 
+    @Resource
+    SysOrgService sysOrgService;
+
     @Resource
     @Resource
     ConditionMapper conditionMapper;
     ConditionMapper conditionMapper;
 
 
@@ -154,4 +158,14 @@ public class ConditionServiceImpl implements ConditionService {
         }
         }
         return null;
         return null;
     }
     }
+
+    @Override
+    public List<SysOrg> listCollege() {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        SysOrg rootOrg = sysOrgService.findRootOrg(schoolId);
+        QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysOrg::getParentId, rootOrg.getId())
+                .orderByAsc(SysOrg::getCreateTime);
+        return sysOrgService.list(queryWrapper);
+    }
 }
 }

+ 12 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java

@@ -24,6 +24,7 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.CardCreateMethodEnum;
 import com.qmth.teachcloud.common.enums.CardCreateMethodEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.SysOrgService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -51,6 +52,9 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
     @Resource
     @Resource
     private SysOrgService sysOrgService;
     private SysOrgService sysOrgService;
 
 
+    @Resource
+    private TeachcloudCommonService teachcloudCommonService;
+
     @Override
     @Override
     public List<Map<String, Object>> listByExamDetailId(Long examDetailId) {
     public List<Map<String, Object>> listByExamDetailId(Long examDetailId) {
         return this.baseMapper.listByExamDetailId(examDetailId, ExamDetailStatusEnum.FINISH.name());
         return this.baseMapper.listByExamDetailId(examDetailId, ExamDetailStatusEnum.FINISH.name());
@@ -97,8 +101,12 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
         // 顶级机构
         // 顶级机构
         SysOrg rootOrg = sysOrgService.findRootOrg(sysUser.getSchoolId());
         SysOrg rootOrg = sysOrgService.findRootOrg(sysUser.getSchoolId());
         // 查询用户所在机构及以下机构
         // 查询用户所在机构及以下机构
+        Set<Long> roomOrgIds = null;
+        if (orgId != null) {
+            roomOrgIds = teachcloudCommonService.listSubOrgIds(orgId);
+        }
         Set<Long> orgIds = sysOrgService.findDeepOrgIdListByUserId(sysUser.getId());
         Set<Long> orgIds = sysOrgService.findDeepOrgIdListByUserId(sysUser.getId());
-        IPage<SyncExamTaskDto> examTaskDtos = this.baseMapper.listSyncCourseByPrintPlanId(ipage, semesterId, examId, orgIds, cardType, syncStatus, courseCode, paperNumber, startTime, endTime);
+        IPage<SyncExamTaskDto> examTaskDtos = this.baseMapper.listSyncCourseByPrintPlanId(ipage, semesterId, examId, roomOrgIds, orgIds, cardType, syncStatus, courseCode, paperNumber, startTime, endTime);
         for (SyncExamTaskDto examTaskDto : examTaskDtos.getRecords()) {
         for (SyncExamTaskDto examTaskDto : examTaskDtos.getRecords()) {
             String paperType = examTaskDto.getPaperType();
             String paperType = examTaskDto.getPaperType();
             List<String> paperTypes = Arrays.asList(paperType.split(","));
             List<String> paperTypes = Arrays.asList(paperType.split(","));
@@ -122,11 +130,11 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
             }
             }
 
 
             List<SysOrg> sysOrgList = sysOrgService.findByConnectByParentId(Long.valueOf(examTaskDto.getTeachingRoomId()), false, false);
             List<SysOrg> sysOrgList = sysOrgService.findByConnectByParentId(Long.valueOf(examTaskDto.getTeachingRoomId()), false, false);
-            if(sysOrgList.isEmpty()){
+            if (sysOrgList.isEmpty()) {
                 throw ExceptionResultEnum.ERROR.exception(String.format("未找到课程[%s(%s)]所属机构及上级机构", examTaskDto.getCourseName(), examTaskDto.getCourseCode()));
                 throw ExceptionResultEnum.ERROR.exception(String.format("未找到课程[%s(%s)]所属机构及上级机构", examTaskDto.getCourseName(), examTaskDto.getCourseCode()));
             }
             }
-            Optional<SysOrg> optionalSysOrg = sysOrgList.stream().filter(m->rootOrg.getId().equals(m.getParentId())).findFirst();
-            if(optionalSysOrg.isPresent()){
+            Optional<SysOrg> optionalSysOrg = sysOrgList.stream().filter(m -> rootOrg.getId().equals(m.getParentId())).findFirst();
+            if (optionalSysOrg.isPresent()) {
                 SysOrg collegeOrg = optionalSysOrg.get();
                 SysOrg collegeOrg = optionalSysOrg.get();
                 examTaskDto.setCollegeId(String.valueOf(collegeOrg.getId()));
                 examTaskDto.setCollegeId(String.valueOf(collegeOrg.getId()));
                 examTaskDto.setCollegeCode(collegeOrg.getCode());
                 examTaskDto.setCollegeCode(collegeOrg.getCode());

+ 5 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -460,7 +460,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     public boolean taskCancel(Long id) {
     public boolean taskCancel(Long id) {
         ExamDetail detail = this.getById(id);
         ExamDetail detail = this.getById(id);
         if (!detail.getStatus().name().equals(ExamDetailStatusEnum.WAITING.name())) {
         if (!detail.getStatus().name().equals(ExamDetailStatusEnum.WAITING.name())) {
-            throw ExceptionResultEnum.ERROR.exception("印刷状态为“待印刷”的任务可撤回提交");
+            throw ExceptionResultEnum.ERROR.exception("印刷状态为[待印刷]的任务可撤回提交");
         }
         }
         UpdateWrapper<ExamDetail> updateWrapper = new UpdateWrapper<>();
         UpdateWrapper<ExamDetail> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(ExamDetail::getStatus, ExamDetailStatusEnum.READY).eq(ExamDetail::getId, id);
         updateWrapper.lambda().set(ExamDetail::getStatus, ExamDetailStatusEnum.READY).eq(ExamDetail::getId, id);
@@ -505,9 +505,10 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
 
 
     @Transactional
     @Transactional
     @Override
     @Override
-    public boolean taskBatchCancel(List<Long> ids) {
-        for (Long id : ids) {
-            taskCancel(id);
+    public boolean taskBatchCancel(Map data) {
+        String ids = String.valueOf(data.get("ids"));
+        for (String id : ids.split(",")) {
+            taskCancel(Long.valueOf(id));
         }
         }
         return true;
         return true;
     }
     }

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

@@ -53,4 +53,6 @@ ALTER TABLE `exam_paper_structure`
     CHANGE COLUMN `subjective_structure` `subjective_structure` MEDIUMTEXT NULL DEFAULT NULL COMMENT '主观题试卷结构JSON' ,
     CHANGE COLUMN `subjective_structure` `subjective_structure` MEDIUMTEXT NULL DEFAULT NULL COMMENT '主观题试卷结构JSON' ,
     CHANGE COLUMN `paper_info_json` `paper_info_json` MEDIUMTEXT NULL DEFAULT NULL COMMENT '整个试卷信息json(前端提供的全部信息)' ;
     CHANGE COLUMN `paper_info_json` `paper_info_json` MEDIUMTEXT NULL DEFAULT NULL COMMENT '整个试卷信息json(前端提供的全部信息)' ;
 
 
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('874', '共用接口-查询学院', '/api/admin/basic/condition/list_college', 'URL', '149', '14', 'SYS', '1', '1', '1');
+
 -----------------------3.2.5 end----------------------
 -----------------------3.2.5 end----------------------

+ 13 - 5
distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml

@@ -156,8 +156,8 @@
             et.paper_number paperNumber,
             et.paper_number paperNumber,
             t.paper_type paperType,
             t.paper_type paperType,
             et.sequence,
             et.sequence,
-            et.start_time startTime,
-            et.end_time endTime,
+            t.exam_start_time startTime,
+            t.exam_end_time endTime,
             t.total_subjects totalSubjects,
             t.total_subjects totalSubjects,
             t.print_plan_ids printPlanIds,
             t.print_plan_ids printPlanIds,
             ets.third_relate_id thirdRelateId,
             ets.third_relate_id thirdRelateId,
@@ -172,6 +172,8 @@
                  c.exam_id,
                  c.exam_id,
                  b.paper_number,
                  b.paper_number,
                  b.paper_type,
                  b.paper_type,
+                 c.exam_start_time,
+                 c.exam_end_time,
                  SUM(b.total_subjects) total_subjects,
                  SUM(b.total_subjects) total_subjects,
                  group_concat(c.print_plan_id) print_plan_ids
                  group_concat(c.print_plan_id) print_plan_ids
              FROM
              FROM
@@ -194,7 +196,7 @@
                     and b.paper_number = #{paperNumber}
                     and b.paper_number = #{paperNumber}
                 </if>
                 </if>
             </where>
             </where>
-             GROUP BY b.school_id , c.exam_id,  b.paper_number , b.paper_type) t
+             GROUP BY b.school_id , c.exam_id,  b.paper_number , b.paper_type, c.exam_start_time, c.exam_end_time) t
                 ON t.school_id = et.school_id
                 ON t.school_id = et.school_id
                 AND t.exam_id = et.exam_id
                 AND t.exam_id = et.exam_id
                 AND t.paper_number = et.paper_number
                 AND t.paper_number = et.paper_number
@@ -218,10 +220,16 @@
                     and ets.sync_status = #{syncStatus}
                     and ets.sync_status = #{syncStatus}
                 </if>
                 </if>
                 <if test="startTime != null">
                 <if test="startTime != null">
-                    and et.start_time &gt;= #{startTime}
+                    and t.exam_start_time &gt;= #{startTime}
                 </if>
                 </if>
                 <if test="endTime != null">
                 <if test="endTime != null">
-                    and et.end_time &lt;= #{endTime}
+                    and t.exam_end_time &lt;= #{endTime}
+                </if>
+                <if test="roomOrgIds != null">
+                    and bc.teaching_room_id in
+                    <foreach collection="roomOrgIds" separator="," open="(" close=")" item="orgId">
+                        #{orgId}
+                    </foreach>
                 </if>
                 </if>
             </where>
             </where>
         ORDER BY et.create_time desc
         ORDER BY et.create_time desc

+ 16 - 7
distributed-print/src/main/java/com/qmth/distributed/print/api/ConditionController.java

@@ -1,9 +1,11 @@
 package com.qmth.distributed.print.api;
 package com.qmth.distributed.print.api;
 
 
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.service.ConditionService;
 import com.qmth.distributed.print.business.service.ConditionService;
 import com.qmth.teachcloud.common.bean.result.BasicCollegeResult;
 import com.qmth.teachcloud.common.bean.result.BasicCollegeResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.*;
 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 io.swagger.annotations.*;
 import io.swagger.annotations.*;
@@ -27,14 +29,14 @@ public class ConditionController {
 
 
     @ApiOperation(value = "学期")
     @ApiOperation(value = "学期")
     @RequestMapping(value = "/list_semester", method = RequestMethod.POST)
     @RequestMapping(value = "/list_semester", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicCollegeResult.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicSemester.class)})
     public Result listSemester(@ApiParam(value = "启用/禁用") @RequestParam(required = false, defaultValue = "true") Boolean enable) {
     public Result listSemester(@ApiParam(value = "启用/禁用") @RequestParam(required = false, defaultValue = "true") Boolean enable) {
         return ResultUtil.ok(conditionService.listSemester(enable));
         return ResultUtil.ok(conditionService.listSemester(enable));
     }
     }
 
 
     @ApiOperation(value = "考试")
     @ApiOperation(value = "考试")
     @RequestMapping(value = "/list_exam", method = RequestMethod.POST)
     @RequestMapping(value = "/list_exam", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicCollegeResult.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicExam.class)})
     public Result listExam(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
     public Result listExam(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
                            @ApiParam(value = "启用/禁用") @RequestParam(required = false, defaultValue = "true") Boolean enable) {
                            @ApiParam(value = "启用/禁用") @RequestParam(required = false, defaultValue = "true") Boolean enable) {
         return ResultUtil.ok(conditionService.listExam(semesterId, enable));
         return ResultUtil.ok(conditionService.listExam(semesterId, enable));
@@ -42,7 +44,7 @@ public class ConditionController {
 
 
     @ApiOperation(value = "课程")
     @ApiOperation(value = "课程")
     @RequestMapping(value = "/list_course", method = RequestMethod.POST)
     @RequestMapping(value = "/list_course", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicCollegeResult.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicCourse.class)})
     public Result listCourse(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
     public Result listCourse(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
                              @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
                              @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
                              @ApiParam(value = "启用/禁用") @RequestParam(required = false) Boolean enable,
                              @ApiParam(value = "启用/禁用") @RequestParam(required = false) Boolean enable,
@@ -52,7 +54,7 @@ public class ConditionController {
 
 
     @ApiOperation(value = "试卷编号")
     @ApiOperation(value = "试卷编号")
     @RequestMapping(value = "/list_paper_number", method = RequestMethod.POST)
     @RequestMapping(value = "/list_paper_number", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicCollegeResult.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = String.class)})
     public Result listPaperNumber(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
     public Result listPaperNumber(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
                                   @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
                                   @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
                                   @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
                                   @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
@@ -62,19 +64,26 @@ public class ConditionController {
 
 
     @ApiOperation(value = "印刷计划")
     @ApiOperation(value = "印刷计划")
     @RequestMapping(value = "/list_print_plan", method = RequestMethod.POST)
     @RequestMapping(value = "/list_print_plan", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicCollegeResult.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = PrintPlanBrief.class)})
     public Result listPrintPlan(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
     public Result listPrintPlan(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
                                 @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
                                 @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
                                 @ApiParam(value = "source") @RequestParam(required = false) String source) {
                                 @ApiParam(value = "source") @RequestParam(required = false) String source) {
         return ResultUtil.ok(conditionService.listPrintPlan(semesterId, examId, source));
         return ResultUtil.ok(conditionService.listPrintPlan(semesterId, examId, source));
     }
     }
 
 
-    @ApiOperation(value = "试卷编号")
+    @ApiOperation(value = "班级")
     @RequestMapping(value = "/list_clazz", method = RequestMethod.POST)
     @RequestMapping(value = "/list_clazz", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicCollegeResult.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicClazz.class)})
     public Result listClazz(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
     public Result listClazz(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
                                   @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
                                   @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
                                   @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode) {
                                   @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode) {
         return ResultUtil.ok(conditionService.listClazz(semesterId, examId, courseCode));
         return ResultUtil.ok(conditionService.listClazz(semesterId, examId, courseCode));
     }
     }
+
+    @ApiOperation(value = "学院")
+    @RequestMapping(value = "/list_college", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = SysOrg.class)})
+    public Result listCollege() {
+        return ResultUtil.ok(conditionService.listCollege());
+    }
 }
 }

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

@@ -388,8 +388,8 @@ public class ExamPrintPlanController {
     @ApiOperation(value = "印刷任务管理-撤回提交")
     @ApiOperation(value = "印刷任务管理-撤回提交")
     @RequestMapping(value = "/task_batch_cancel", method = RequestMethod.POST)
     @RequestMapping(value = "/task_batch_cancel", method = RequestMethod.POST)
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
-    public Result taskCancel(@RequestParam List<Long> ids) {
-        boolean isSuccess = examDetailService.taskBatchCancel(ids);
+    public Result taskCancel(@RequestBody Map data) {
+        boolean isSuccess = examDetailService.taskBatchCancel(data);
         return ResultUtil.ok(isSuccess);
         return ResultUtil.ok(isSuccess);
     }
     }
 
 

+ 32 - 10
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/impl/JobServiceImpl.java

@@ -3,12 +3,11 @@ package com.qmth.teachcloud.task.job.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.UpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.qmth.boot.redis.uid.RedisMachineService;
 import com.qmth.boot.redis.uid.RedisMachineService;
+import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
+import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
-import com.qmth.distributed.print.business.service.BasicMessageService;
-import com.qmth.distributed.print.business.service.ExamPrintPlanService;
-import com.qmth.distributed.print.business.service.ExamTaskService;
-import com.qmth.distributed.print.business.service.PrintCommonService;
+import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
 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;
@@ -18,9 +17,12 @@ import com.qmth.teachcloud.task.job.service.JobService;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.io.IOException;
+import java.util.Collection;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Objects;
@@ -53,6 +55,9 @@ public class JobServiceImpl implements JobService {
     @Resource
     @Resource
     ExamPrintPlanService examPrintPlanService;
     ExamPrintPlanService examPrintPlanService;
 
 
+    @Resource
+    ExamDetailService examDetailService;
+
     @Resource
     @Resource
     RedisUtil redisUtil;
     RedisUtil redisUtil;
 
 
@@ -99,12 +104,29 @@ public class JobServiceImpl implements JobService {
                     .le(ExamPrintPlan::getExamEndTime, System.currentTimeMillis());
                     .le(ExamPrintPlan::getExamEndTime, System.currentTimeMillis());
             List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(queryWrapper);
             List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(queryWrapper);
 
 
-            List<Long> ids = examPrintPlanList.stream().map(ExamPrintPlan::getId).collect(Collectors.toList());
-
-            UpdateWrapper<ExamPrintPlan> updateWrapper = new UpdateWrapper<>();
-            updateWrapper.lambda().set(ExamPrintPlan::getStatus, PrintPlanStatusEnum.END)
-                    .in(ExamPrintPlan::getId, ids);
-            examPrintPlanService.update(updateWrapper);
+            // 更新计划状态为结束
+            if (!CollectionUtils.isEmpty(examPrintPlanList)) {
+                List<Long> ids = examPrintPlanList.stream().map(ExamPrintPlan::getId).collect(Collectors.toList());
+
+                UpdateWrapper<ExamPrintPlan> updateWrapper = new UpdateWrapper<>();
+                updateWrapper.lambda().set(ExamPrintPlan::getStatus, PrintPlanStatusEnum.END)
+                        .in(ExamPrintPlan::getId, ids);
+                examPrintPlanService.update(updateWrapper);
+
+                // 更新考场状态,未结束改为已过期,已结束保持原状态
+                QueryWrapper<ExamDetail> examDetailQueryWrapper = new QueryWrapper<>();
+                examDetailQueryWrapper.lambda().in(ExamDetail::getPrintPlanId, ids)
+                        .ne(ExamDetail::getStatus, ExamDetailStatusEnum.FINISH);
+                List<ExamDetail> examDetails = examDetailService.list(examDetailQueryWrapper);
+                if (!CollectionUtils.isEmpty(examDetails)) {
+                    List<Long> examDetailIds = examDetails.stream().map(ExamDetail::getId).collect(Collectors.toList());
+
+                    UpdateWrapper<ExamDetail> examDetailUpdateWrapper = new UpdateWrapper<>();
+                    examDetailUpdateWrapper.lambda().set(ExamDetail::getStatus, ExamDetailStatusEnum.EXPIRED)
+                            .in(ExamDetail::getId, examDetailIds);
+                    examDetailService.update(examDetailUpdateWrapper);
+                }
+            }
         }
         }
     }
     }