Переглянути джерело

试卷结构上传-增加学期Id

xiaof 3 роки тому
батько
коміт
eb795cbb18
17 змінених файлів з 204 додано та 35 видалено
  1. 12 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/PrintPlanParams.java
  2. 23 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/PrintPlanResult.java
  3. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPrintPlanMapper.java
  4. 3 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java
  5. 51 17
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicSemesterServiceImpl.java
  6. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPaperStructureServiceImpl.java
  7. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  8. 12 5
      distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml
  9. 11 0
      distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml
  10. 25 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicSemesterController.java
  11. 3 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java
  12. 3 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java
  13. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java
  14. 22 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/BasicSemesterResult.java
  15. 11 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicSemester.java
  16. 17 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicSemesterService.java
  17. 3 1
      teachcloud-common/src/main/resources/mapper/BasicSemesterMapper.xml

+ 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")
     @ApiModelProperty(value = "学校id")
     private Long schoolId;
     private Long schoolId;
 
 
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "学期ID")
+    private Long semesterId;
+
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "机构id")
     @ApiModelProperty(value = "机构id")
     private Long orgId;
     private Long orgId;
@@ -88,6 +92,14 @@ public class PrintPlanParams {
         this.schoolId = schoolId;
         this.schoolId = schoolId;
     }
     }
 
 
+    public Long getSemesterId() {
+        return semesterId;
+    }
+
+    public void setSemesterId(Long semesterId) {
+        this.semesterId = semesterId;
+    }
+
     public Long getOrgId() {
     public Long getOrgId() {
         return orgId;
         return orgId;
     }
     }

+ 23 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/PrintPlanResult.java

@@ -23,6 +23,13 @@ public class PrintPlanResult {
     @ApiModelProperty(value = "印刷计划id")
     @ApiModelProperty(value = "印刷计划id")
     private Long id;
     private Long id;
 
 
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "学期ID")
+    private Long semesterId;
+
+    @ApiModelProperty(value = "学期名称")
+    private String semesterName;
+
     @ApiModelProperty(value = "印刷计划名称")
     @ApiModelProperty(value = "印刷计划名称")
     private String name;
     private String name;
 
 
@@ -97,6 +104,22 @@ public class PrintPlanResult {
         this.id = id;
         this.id = id;
     }
     }
 
 
+    public Long getSemesterId() {
+        return semesterId;
+    }
+
+    public void setSemesterId(Long semesterId) {
+        this.semesterId = semesterId;
+    }
+
+    public String getSemesterName() {
+        return semesterName;
+    }
+
+    public void setSemesterName(String semesterName) {
+        this.semesterName = semesterName;
+    }
+
     public String getName() {
     public String getName() {
         return name;
         return name;
     }
     }

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

@@ -24,6 +24,7 @@ import java.util.Set;
 public interface ExamPrintPlanMapper extends BaseMapper<ExamPrintPlan> {
 public interface ExamPrintPlanMapper extends BaseMapper<ExamPrintPlan> {
     IPage<PrintPlanResult> findPrintPlanPage(@Param("iPage") Page<PrintPlanResult> iPage,
     IPage<PrintPlanResult> findPrintPlanPage(@Param("iPage") Page<PrintPlanResult> iPage,
                                              @Param("schoolId") Long schoolId,
                                              @Param("schoolId") Long schoolId,
+                                             @Param("semesterId") Long semesterId,
                                              @Param("printPlanIdList") List<Long> printPlanIdList,
                                              @Param("printPlanIdList") List<Long> printPlanIdList,
                                              @Param("status") PrintPlanStatusEnum status,
                                              @Param("status") PrintPlanStatusEnum status,
                                              @Param("startTime") Long startTime,
                                              @Param("startTime") Long startTime,
@@ -32,6 +33,7 @@ public interface ExamPrintPlanMapper extends BaseMapper<ExamPrintPlan> {
 
 
     IPage<PrintPlanResult> findPrintPlanSyncPage(@Param("iPage") Page<PrintPlanResult> iPage,
     IPage<PrintPlanResult> findPrintPlanSyncPage(@Param("iPage") Page<PrintPlanResult> iPage,
                                              @Param("schoolId") Long schoolId,
                                              @Param("schoolId") Long schoolId,
+                                             @Param("semesterId") Long semesterId,
                                              @Param("status") String[] status,
                                              @Param("status") String[] status,
                                              @Param("printPlanId") Long printPlanId,
                                              @Param("printPlanId") Long printPlanId,
                                              @Param("startTime") Long startTime,
                                              @Param("startTime") Long startTime,

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

@@ -29,6 +29,7 @@ public interface ExamPrintPlanService extends IService<ExamPrintPlan> {
      * 印刷计划分页查询
      * 印刷计划分页查询
      *
      *
      * @param schoolId   学校id
      * @param schoolId   学校id
+     * @param semesterId
      * @param printPlanIdList  印刷计划id集合
      * @param printPlanIdList  印刷计划id集合
      * @param status     印刷计划状态
      * @param status     印刷计划状态
      * @param startTime  印刷计划创建时间开始
      * @param startTime  印刷计划创建时间开始
@@ -37,9 +38,9 @@ public interface ExamPrintPlanService extends IService<ExamPrintPlan> {
      * @param pageSize   分页容量
      * @param pageSize   分页容量
      * @return 分页查询结果
      * @return 分页查询结果
      */
      */
-    IPage<PrintPlanResult> printPlanPage(Long schoolId, List<Long> printPlanIdList, PrintPlanStatusEnum status, Long startTime, Long endTime, int pageNumber, int pageSize);
+    IPage<PrintPlanResult> printPlanPage(Long schoolId, Long semesterId, List<Long> printPlanIdList, PrintPlanStatusEnum status, Long startTime, Long endTime, int pageNumber, int pageSize);
 
 
-    IPage<PrintPlanResult> printPlanSyncPage(Long schoolId, Long printPlanId, Long startTime, Long endTime, int pageNumber, int pageSize);
+    IPage<PrintPlanResult> printPlanSyncPage(Long schoolId, Long semesterId, Long printPlanId, Long startTime, Long endTime, int pageNumber, int pageSize);
 
 
     /**
     /**
      * 印刷计划模糊名称
      * 印刷计划模糊名称

+ 51 - 17
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicSemesterServiceImpl.java

@@ -5,23 +5,25 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.teachcloud.common.entity.BasicSemester;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.mapper.BasicSemesterMapper;
 import com.qmth.distributed.print.business.mapper.BasicSemesterMapper;
-import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.distributed.print.business.service.ExamPrintPlanService;
 import com.qmth.distributed.print.business.service.ExamPrintPlanService;
 import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
 import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
 import com.qmth.teachcloud.common.bean.result.BasicSemesterResult;
 import com.qmth.teachcloud.common.bean.result.BasicSemesterResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicSemester;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.List;
 import java.util.Objects;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -38,13 +40,13 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
 
 
     @Override
     @Override
     public IPage<BasicSemesterResult> basicSemesterPage(Long schoolId, int pageNumber, int pageSize) {
     public IPage<BasicSemesterResult> basicSemesterPage(Long schoolId, int pageNumber, int pageSize) {
-        return this.baseMapper.findBasicSemesterPage(new Page<>(pageNumber, pageSize), schoolId,null);
+        return this.baseMapper.findBasicSemesterPage(new Page<>(pageNumber, pageSize), schoolId, null);
     }
     }
 
 
     @Transactional
     @Transactional
     @Override
     @Override
     public Long saveBasicSemester(BasicSemesterParams basicSemesterParams) throws IllegalAccessException {
     public Long saveBasicSemester(BasicSemesterParams basicSemesterParams) throws IllegalAccessException {
-        SystemConstant.verifyDBFields(basicSemesterParams,basicSemesterParams.getClass());
+        SystemConstant.verifyDBFields(basicSemesterParams, basicSemesterParams.getClass());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Long id = basicSemesterParams.getId();
         Long id = basicSemesterParams.getId();
         Long schoolId = sysUser.getSchoolId();
         Long schoolId = sysUser.getSchoolId();
@@ -54,24 +56,24 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
 
 
         // 校验学期唯一性
         // 校验学期唯一性
         BasicSemester checkName = this.getOne(new QueryWrapper<BasicSemester>().lambda()
         BasicSemester checkName = this.getOne(new QueryWrapper<BasicSemester>().lambda()
-                .eq(BasicSemester::getEnable,true)
-                .eq(BasicSemester::getSchoolId,schoolId)
-                .eq(BasicSemester::getName,semesterName));
-        if (Objects.nonNull(checkName) && !checkName.getId().equals(id)){
+                .eq(BasicSemester::getEnable, true)
+                .eq(BasicSemester::getSchoolId, schoolId)
+                .eq(BasicSemester::getName, semesterName));
+        if (Objects.nonNull(checkName) && !checkName.getId().equals(id)) {
             throw ExceptionResultEnum.ERROR.exception("学期名称【" + semesterName + "】重复");
             throw ExceptionResultEnum.ERROR.exception("学期名称【" + semesterName + "】重复");
         }
         }
-        if (SystemConstant.longNotNull(id)){
+        if (SystemConstant.longNotNull(id)) {
             // 编辑
             // 编辑
             BasicSemester old = this.getById(id);
             BasicSemester old = this.getById(id);
-            if (Objects.isNull(old) || old.getEnable().equals(false)){
+            if (Objects.isNull(old) || old.getEnable().equals(false)) {
                 throw ExceptionResultEnum.ERROR.exception("所选学期不存在或被禁用");
                 throw ExceptionResultEnum.ERROR.exception("所选学期不存在或被禁用");
             }
             }
             this.update(new UpdateWrapper<BasicSemester>().lambda()
             this.update(new UpdateWrapper<BasicSemester>().lambda()
-                    .eq(BasicSemester::getId,id)
-                    .set(BasicSemester::getName,semesterName)
-                    .set(BasicSemester::getStartTime,startTime)
-                    .set(BasicSemester::getEndTime,endTime));
-        }else {
+                    .eq(BasicSemester::getId, id)
+                    .set(BasicSemester::getName, semesterName)
+                    .set(BasicSemester::getStartTime, startTime)
+                    .set(BasicSemester::getEndTime, endTime));
+        } else {
             // 新增
             // 新增
             id = SystemConstant.getDbUuid();
             id = SystemConstant.getDbUuid();
             BasicSemester basicSemester = new BasicSemester();
             BasicSemester basicSemester = new BasicSemester();
@@ -83,6 +85,7 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
             basicSemester.setStartTime(startTime);
             basicSemester.setStartTime(startTime);
             basicSemester.setEndTime(endTime);
             basicSemester.setEndTime(endTime);
             basicSemester.setOrgId(sysUser.getOrgId());
             basicSemester.setOrgId(sysUser.getOrgId());
+            basicSemester.setInUsed(false);
             this.save(basicSemester);
             this.save(basicSemester);
         }
         }
         return id;
         return id;
@@ -91,10 +94,41 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
     @Transactional
     @Transactional
     @Override
     @Override
     public boolean deleteBasicSemesterById(Long id) {
     public boolean deleteBasicSemesterById(Long id) {
-        List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getSemesterId,id));
-        if (examPrintPlanList.size() > 0){
+        List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getSemesterId, id));
+        if (examPrintPlanList.size() > 0) {
             throw ExceptionResultEnum.ERROR.exception("印刷计划中已使用了该学期,不能删除");
             throw ExceptionResultEnum.ERROR.exception("印刷计划中已使用了该学期,不能删除");
         }
         }
         return this.removeById(id);
         return this.removeById(id);
     }
     }
+
+    @Override
+    public List<BasicSemester> list(Long schoolId, Boolean inUsed) {
+        QueryWrapper<BasicSemester> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(BasicSemester::getSchoolId, schoolId).eq(BasicSemester::getEnable, true);
+        if (Objects.nonNull(inUsed)) {
+            queryWrapper.lambda().eq(BasicSemester::getInUsed, inUsed);
+        }
+        return this.list(queryWrapper);
+    }
+
+    @Transactional
+    @Override
+    public boolean setInUsed(Long id) {
+        BasicSemester semester = this.getById(id);
+        // 只能设置一个当前使用学期
+        if(!semester.getInUsed()){
+            QueryWrapper<BasicSemester> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(BasicSemester::getSchoolId, semester.getSchoolId());
+            List<BasicSemester> list = this.list(queryWrapper);
+            if(!CollectionUtils.isEmpty(list)) {
+                list = list.stream().map(m -> {
+                    m.setInUsed(false);
+                    return m;
+                }).collect(Collectors.toList());
+                this.updateBatchById(list);
+            }
+        }
+        semester.setInUsed(!semester.getInUsed());
+        return this.updateById(semester);
+    }
 }
 }

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

@@ -199,7 +199,7 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
     public long countByPropositionTeacherId() {
     public long countByPropositionTeacherId() {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        String[] structureStatusEnums = new String[]{ExamPaperStructureStatusEnum.INIT.name()};
+        String[] structureStatusEnums = new String[]{ExamPaperStructureStatusEnum.FINISH.name()};
         List<ExamPaperStructure> examPaperStructureList= this.baseMapper.listByPropositionTeacherId(schoolId, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums);
         List<ExamPaperStructure> examPaperStructureList= this.baseMapper.listByPropositionTeacherId(schoolId, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums);
         return CollectionUtils.isEmpty(examPaperStructureList) ? 0 : examPaperStructureList.size();
         return CollectionUtils.isEmpty(examPaperStructureList) ? 0 : examPaperStructureList.size();
     }
     }

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

@@ -85,9 +85,9 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
-    public IPage<PrintPlanResult> printPlanPage(Long schoolId, List<Long> printPlanIdList, PrintPlanStatusEnum status, Long startTime, Long endTime, int pageNumber, int pageSize) {
+    public IPage<PrintPlanResult> printPlanPage(Long schoolId, Long semesterId, List<Long> printPlanIdList, PrintPlanStatusEnum status, Long startTime, Long endTime, int pageNumber, int pageSize) {
         Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
-        IPage<PrintPlanResult> page = examPrintPlanMapper.findPrintPlanPage(new Page<>(pageNumber, pageSize), schoolId, printPlanIdList, status, startTime, endTime, orgIds);
+        IPage<PrintPlanResult> page = examPrintPlanMapper.findPrintPlanPage(new Page<>(pageNumber, pageSize), schoolId, semesterId, printPlanIdList, status, startTime, endTime, orgIds);
         List<PrintPlanResult> list = page.getRecords();
         List<PrintPlanResult> list = page.getRecords();
         for (PrintPlanResult printPlanResult : list) {
         for (PrintPlanResult printPlanResult : list) {
             List<Map> variableContent = JSONObject.parseArray(printPlanResult.getVariableContentTemp(), Map.class);
             List<Map> variableContent = JSONObject.parseArray(printPlanResult.getVariableContentTemp(), Map.class);
@@ -105,10 +105,10 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
-    public IPage<PrintPlanResult> printPlanSyncPage(Long schoolId, Long printPlanId, Long startTime, Long endTime, int pageNumber, int pageSize) {
+    public IPage<PrintPlanResult> printPlanSyncPage(Long schoolId,Long semesterId, Long printPlanId, Long startTime, Long endTime, int pageNumber, int pageSize) {
         Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         String[] status = {PrintPlanStatusEnum.PRINT_FINISH.name(), PrintPlanStatusEnum.END.name()};
         String[] status = {PrintPlanStatusEnum.PRINT_FINISH.name(), PrintPlanStatusEnum.END.name()};
-        IPage<PrintPlanResult> page = examPrintPlanMapper.findPrintPlanSyncPage(new Page<>(pageNumber, pageSize), schoolId, status, printPlanId, startTime, endTime, orgIds);
+        IPage<PrintPlanResult> page = examPrintPlanMapper.findPrintPlanSyncPage(new Page<>(pageNumber, pageSize), schoolId,semesterId, status, printPlanId, startTime, endTime, orgIds);
         List<PrintPlanResult> list = page.getRecords();
         List<PrintPlanResult> list = page.getRecords();
         for (PrintPlanResult printPlanResult : list) {
         for (PrintPlanResult printPlanResult : list) {
             List<Map> variableContent = JSONObject.parseArray(printPlanResult.getVariableContentTemp(), Map.class);
             List<Map> variableContent = JSONObject.parseArray(printPlanResult.getVariableContentTemp(), Map.class);

+ 12 - 5
distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml

@@ -14,7 +14,7 @@
             edc.course_code courseCode,
             edc.course_code courseCode,
             edc.course_name courseName,
             edc.course_name courseName,
             edc.paper_type paperType,
             edc.paper_type paperType,
-            ifnull(eps.status, 'INIT') status,
+            IFNULL(eps.status, 'INIT') status,
             eps.paper_answer paperAnswer,
             eps.paper_answer paperAnswer,
             et.user_id propositionTeacherId
             et.user_id propositionTeacherId
         FROM
         FROM
@@ -22,9 +22,16 @@
                 LEFT JOIN
                 LEFT JOIN
             basic_semester bs ON epp.semester_id = bs.name
             basic_semester bs ON epp.semester_id = bs.name
                 LEFT JOIN
                 LEFT JOIN
-            exam_detail ed ON epp.id = ed.print_plan_id
-                LEFT JOIN
-            exam_detail_course edc ON ed.id = edc.exam_detail_id
+            (SELECT DISTINCT
+                a.print_plan_id,
+                    a.school_id,
+                    b.paper_number,
+                    b.course_code,
+                    b.course_name,
+                    b.paper_type
+            FROM
+                exam_detail a
+            LEFT JOIN exam_detail_course b ON a.id = b.exam_detail_id) edc ON epp.id = edc.print_plan_id
                 LEFT JOIN
                 LEFT JOIN
             exam_task et ON edc.school_id = et.school_id
             exam_task et ON edc.school_id = et.school_id
                 AND edc.paper_number = et.paper_number
                 AND edc.paper_number = et.paper_number
@@ -38,7 +45,7 @@
             and et.user_id = #{propositionTeacherId}
             and et.user_id = #{propositionTeacherId}
             and epp.sync_status = #{syncStatus}
             and epp.sync_status = #{syncStatus}
             <if test="structureStatusEnums != null">
             <if test="structureStatusEnums != null">
-                AND ifnull(eps.status, 'INIT') IN
+                AND ifnull(eps.status, 'INIT') NOT IN
                 <foreach collection="structureStatusEnums" item="item" index="index" open="(" separator="," close=")">
                 <foreach collection="structureStatusEnums" item="item" index="index" open="(" separator="," close=")">
                     #{item}
                     #{item}
                 </foreach>
                 </foreach>

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

@@ -32,6 +32,8 @@
             resultType="com.qmth.distributed.print.business.bean.result.PrintPlanResult">
             resultType="com.qmth.distributed.print.business.bean.result.PrintPlanResult">
         SELECT
         SELECT
             a.id,
             a.id,
+            a.semester_id semesterId,
+            c.name semesterName,
             a.name,
             a.name,
             a.exam_start_time AS examStartTime,
             a.exam_start_time AS examStartTime,
             a.exam_end_time AS examEndTime,
             a.exam_end_time AS examEndTime,
@@ -60,10 +62,15 @@
             exam_print_plan a
             exam_print_plan a
                 LEFT JOIN
                 LEFT JOIN
             sys_user b on a.create_id = b.id
             sys_user b on a.create_id = b.id
+                LEFT JOIN
+            basic_semester c on a.semester_id = c.id
         <where>
         <where>
             <if test="schoolId != null and schoolId != ''">
             <if test="schoolId != null and schoolId != ''">
                 and a.school_id = #{schoolId}
                 and a.school_id = #{schoolId}
             </if>
             </if>
+            <if test="semesterId != null and semesterId != ''">
+                and a.semester_id = #{semesterId}
+            </if>
             <if test="printPlanIdList != null and printPlanIdList.size() > 0">
             <if test="printPlanIdList != null and printPlanIdList.size() > 0">
                 and a.id IN
                 and a.id IN
                 <foreach collection="printPlanIdList" item="item" index="index" open="(" separator="," close=")">
                 <foreach collection="printPlanIdList" item="item" index="index" open="(" separator="," close=")">
@@ -92,6 +99,7 @@
             resultType="com.qmth.distributed.print.business.bean.result.PrintPlanResult">
             resultType="com.qmth.distributed.print.business.bean.result.PrintPlanResult">
         SELECT
         SELECT
         a.id,
         a.id,
+        a.semester_id semesterId,
         a.name,
         a.name,
         a.exam_start_time AS examStartTime,
         a.exam_start_time AS examStartTime,
         a.exam_end_time AS examEndTime,
         a.exam_end_time AS examEndTime,
@@ -128,6 +136,9 @@
             <if test="schoolId != null and schoolId != ''">
             <if test="schoolId != null and schoolId != ''">
                 and a.school_id = #{schoolId}
                 and a.school_id = #{schoolId}
             </if>
             </if>
+            <if test="semesterId!= null and semesterId != ''">
+                and a.semester_id = #{semesterId}
+            </if>
             <if test="printPlanId!= null and printPlanId != ''">
             <if test="printPlanId!= null and printPlanId != ''">
                 and a.id = #{printPlanId}
                 and a.id = #{printPlanId}
             </if>
             </if>

+ 25 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicSemesterController.java

@@ -42,6 +42,19 @@ public class BasicSemesterController {
         return ResultUtil.ok(basicSemesterService.basicSemesterPage(schoolId,pageNumber,pageSize));
         return ResultUtil.ok(basicSemesterService.basicSemesterPage(schoolId,pageNumber,pageSize));
     }
     }
 
 
+    /**
+     * 模糊查询
+     * @param inUsed 1:只查询当前使用的学期  0:只查询不是当前使用的学期  null:查询所有
+     * @return
+     */
+    @ApiOperation(value = "学期模糊查询")
+    @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    public Result list(@RequestParam(value = "inUsed", required = false) Boolean inUsed) {
+        Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
+        return ResultUtil.ok(basicSemesterService.list(schoolId, inUsed));
+    }
+
     @ApiOperation(value = "学期管理-新增/编辑")
     @ApiOperation(value = "学期管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
@@ -58,4 +71,16 @@ public class BasicSemesterController {
     public Result deleteBasicSemester(@ApiParam(value = "学期id", required = true) @RequestParam String id) {
     public Result deleteBasicSemester(@ApiParam(value = "学期id", required = true) @RequestParam String id) {
         return ResultUtil.ok(basicSemesterService.deleteBasicSemesterById(SystemConstant.convertIdToLong(id)));
         return ResultUtil.ok(basicSemesterService.deleteBasicSemesterById(SystemConstant.convertIdToLong(id)));
     }
     }
+
+    /**
+     * 设置为当前使用学期
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "学期管理-设置为当前使用学期")
+    @RequestMapping(value = "/set_in_used", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    public Result saveBasicSemester(@RequestParam("id") Long id) {
+        return ResultUtil.ok(basicSemesterService.setInUsed(id));
+    }
 }
 }

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

@@ -75,7 +75,8 @@ public class ExamPrintPlanController {
     @ApiOperation(value = "印刷计划查询")
     @ApiOperation(value = "印刷计划查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    public Result findPrintPlanPage(@ApiParam(value = "印刷计划id集合") @RequestParam(required = false) List<String> printPlanIdList,
+    public Result findPrintPlanPage(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
+                                    @ApiParam(value = "印刷计划id集合") @RequestParam(required = false) List<String> printPlanIdList,
                                     @ApiParam(value = "印刷计划状态") @RequestParam(required = false) PrintPlanStatusEnum status,
                                     @ApiParam(value = "印刷计划状态") @RequestParam(required = false) PrintPlanStatusEnum status,
                                     @ApiParam(value = "计划创建时间段开始时间") @RequestParam(required = false) Long startTime,
                                     @ApiParam(value = "计划创建时间段开始时间") @RequestParam(required = false) Long startTime,
                                     @ApiParam(value = "计划创建时间段结束时间") @RequestParam(required = false) Long endTime,
                                     @ApiParam(value = "计划创建时间段结束时间") @RequestParam(required = false) Long endTime,
@@ -87,7 +88,7 @@ public class ExamPrintPlanController {
             printPlanIdList = new ArrayList<>();
             printPlanIdList = new ArrayList<>();
         }
         }
         List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
         List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
-        return ResultUtil.ok(examPrintPlanService.printPlanPage(schoolId, idList, status, startTime, endTime, pageNumber, pageSize));
+        return ResultUtil.ok(examPrintPlanService.printPlanPage(schoolId,semesterId, idList, status, startTime, endTime, pageNumber, pageSize));
     }
     }
 
 
     @ApiOperation(value = "印刷计划模糊查询")
     @ApiOperation(value = "印刷计划模糊查询")

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

@@ -48,13 +48,14 @@ public class ExamPrintPlanSyncController {
     @ApiOperation(value = "印刷计划合并管理-计划查询")
     @ApiOperation(value = "印刷计划合并管理-计划查询")
     @RequestMapping(value = "/list_sync", method = RequestMethod.POST)
     @RequestMapping(value = "/list_sync", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    public Result findPrintPlanPage(@ApiParam(value = "印刷计划ID") @RequestParam(required = false) Long printPlanId,
+    public Result findPrintPlanPage(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
+                                    @ApiParam(value = "印刷计划ID") @RequestParam(required = false) Long printPlanId,
                                     @ApiParam(value = "计划创建时间段开始时间") @RequestParam(required = false) Long startTime,
                                     @ApiParam(value = "计划创建时间段开始时间") @RequestParam(required = false) Long startTime,
                                     @ApiParam(value = "计划创建时间段结束时间") @RequestParam(required = false) Long endTime,
                                     @ApiParam(value = "计划创建时间段结束时间") @RequestParam(required = false) Long endTime,
                                     @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                     @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) {
                                     @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        return ResultUtil.ok(examPrintPlanService.printPlanSyncPage(schoolId, printPlanId, startTime, endTime, pageNumber, pageSize));
+        return ResultUtil.ok(examPrintPlanService.printPlanSyncPage(schoolId, semesterId, printPlanId, startTime, endTime, pageNumber, pageSize));
     }
     }
 
 
     /**
     /**

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java

@@ -88,7 +88,7 @@ public class WorkController {
     @RequestMapping(value = "/structure/task/ready", method = RequestMethod.POST)
     @RequestMapping(value = "/structure/task/ready", method = RequestMethod.POST)
     public Result list(@RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
     public Result list(@RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        String[] structureStatusEnums = new String[]{ExamPaperStructureStatusEnum.INIT.name()};
+        String[] structureStatusEnums = new String[]{ExamPaperStructureStatusEnum.FINISH.name()};
         IPage<ExamPaperStructure> examPaperStructureIPage = examPaperStructureService.listByPropositionTeacherId(pageNumber, pageSize, structureStatusEnums);
         IPage<ExamPaperStructure> examPaperStructureIPage = examPaperStructureService.listByPropositionTeacherId(pageNumber, pageSize, structureStatusEnums);
         return ResultUtil.ok(examPaperStructureIPage);
         return ResultUtil.ok(examPaperStructureIPage);
     }
     }

+ 22 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/BasicSemesterResult.java

@@ -26,6 +26,12 @@ public class BasicSemesterResult {
     @ApiModelProperty(value = "学期结束时间")
     @ApiModelProperty(value = "学期结束时间")
     private Long endTime;
     private Long endTime;
 
 
+    @ApiModelProperty(value = "是否启用")
+    private Boolean enable;
+
+    @ApiModelProperty(value = "是否当前使用")
+    private Boolean inUsed;
+
     public Long getId() {
     public Long getId() {
         return id;
         return id;
     }
     }
@@ -65,4 +71,20 @@ public class BasicSemesterResult {
     public void setEndTime(Long endTime) {
     public void setEndTime(Long endTime) {
         this.endTime = endTime;
         this.endTime = endTime;
     }
     }
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+
+    public Boolean getInUsed() {
+        return inUsed;
+    }
+
+    public void setInUsed(Boolean inUsed) {
+        this.inUsed = inUsed;
+    }
 }
 }

+ 11 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicSemester.java

@@ -44,6 +44,9 @@ public class BasicSemester extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "是否启用,0:停用,1:启用")
     @ApiModelProperty(value = "是否启用,0:停用,1:启用")
     private Boolean enable;
     private Boolean enable;
 
 
+    @ApiModelProperty(value = "是否当前使用学期,0:否,1:是")
+    private Boolean inUsed;
+
     public static long getSerialVersionUID() {
     public static long getSerialVersionUID() {
         return serialVersionUID;
         return serialVersionUID;
     }
     }
@@ -103,4 +106,12 @@ public class BasicSemester extends BaseEntity implements Serializable {
     public void setEnable(Boolean enable) {
     public void setEnable(Boolean enable) {
         this.enable = enable;
         this.enable = enable;
     }
     }
+
+    public Boolean getInUsed() {
+        return inUsed;
+    }
+
+    public void setInUsed(Boolean inUsed) {
+        this.inUsed = inUsed;
+    }
 }
 }

+ 17 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicSemesterService.java

@@ -6,6 +6,8 @@ import com.qmth.teachcloud.common.entity.BasicSemester;
 import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
 import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
 import com.qmth.teachcloud.common.bean.result.BasicSemesterResult;
 import com.qmth.teachcloud.common.bean.result.BasicSemesterResult;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 学期字典表 服务类
  * 学期字典表 服务类
@@ -38,4 +40,19 @@ public interface BasicSemesterService extends IService<BasicSemester> {
      * @return 是否删除成功
      * @return 是否删除成功
      */
      */
     boolean deleteBasicSemesterById(Long id);
     boolean deleteBasicSemesterById(Long id);
+
+    /**
+     * 查询学期
+     * @param schoolId
+     * @param inUsed
+     * @return
+     */
+    List<BasicSemester> list(Long schoolId, Boolean inUsed);
+
+    /**
+     * 设置当前使用学期
+     * @param id
+     * @return
+     */
+    boolean setInUsed(Long id);
 }
 }

+ 3 - 1
teachcloud-common/src/main/resources/mapper/BasicSemesterMapper.xml

@@ -8,7 +8,9 @@
             name AS semesterName,
             name AS semesterName,
             code AS semesterCode,
             code AS semesterCode,
             start_time AS startTime,
             start_time AS startTime,
-            end_time AS endTime
+            end_time AS endTime,
+            enable,
+            in_used inUsed
         FROM
         FROM
             basic_semester bs
             basic_semester bs
         <where>
         <where>