Browse Source

卷库查询-生成考务数据

xiaof 3 years ago
parent
commit
ac219ac13a

+ 43 - 18
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamTaskPrint.java

@@ -8,6 +8,8 @@ import com.qmth.teachcloud.common.base.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -49,8 +51,8 @@ public class ExamTaskPrint extends BaseEntity implements Serializable {
     @TableField("exam_end_time")
     private Long examEndTime;
 
-    @TableField("package_code")
-    private String packageCode;
+    @TableField("package_seq")
+    private String packageSeq;
 
     @TableField("exam_place")
     private String examPlace;
@@ -58,8 +60,8 @@ public class ExamTaskPrint extends BaseEntity implements Serializable {
     @TableField("exam_room")
     private String examRoom;
 
-    @TableField("invigilatro_teacher")
-    private String invigilatroTeacher;
+    @TableField("invigilator_teacher")
+    private String invigilatorTeacher;
 
     @TableField("class_id")
     private String classId;
@@ -70,8 +72,15 @@ public class ExamTaskPrint extends BaseEntity implements Serializable {
     @TableField(value = "student_count")
     private Integer studentCount;
 
-    @TableField(value = "print_house")
-    private String printHouse;
+    @TableField(value = "print_house_id")
+    private String printHouseId;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableField("exam_detail_id")
+    private Long examDetailId;
+
+    @TableField(exist = false)
+    private List<Map> extendFields;
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -141,12 +150,12 @@ public class ExamTaskPrint extends BaseEntity implements Serializable {
         this.examEndTime = examEndTime;
     }
 
-    public String getPackageCode() {
-        return packageCode;
+    public String getPackageSeq() {
+        return packageSeq;
     }
 
-    public void setPackageCode(String packageCode) {
-        this.packageCode = packageCode;
+    public void setPackageSeq(String packageSeq) {
+        this.packageSeq = packageSeq;
     }
 
     public String getExamPlace() {
@@ -165,12 +174,12 @@ public class ExamTaskPrint extends BaseEntity implements Serializable {
         this.examRoom = examRoom;
     }
 
-    public String getInvigilatroTeacher() {
-        return invigilatroTeacher;
+    public String getInvigilatorTeacher() {
+        return invigilatorTeacher;
     }
 
-    public void setInvigilatroTeacher(String invigilatroTeacher) {
-        this.invigilatroTeacher = invigilatroTeacher;
+    public void setInvigilatorTeacher(String invigilatorTeacher) {
+        this.invigilatorTeacher = invigilatorTeacher;
     }
 
     public String getClassId() {
@@ -197,11 +206,27 @@ public class ExamTaskPrint extends BaseEntity implements Serializable {
         this.studentCount = studentCount;
     }
 
-    public String getPrintHouse() {
-        return printHouse;
+    public String getPrintHouseId() {
+        return printHouseId;
+    }
+
+    public void setPrintHouseId(String printHouseId) {
+        this.printHouseId = printHouseId;
+    }
+
+    public Long getExamDetailId() {
+        return examDetailId;
+    }
+
+    public void setExamDetailId(Long examDetailId) {
+        this.examDetailId = examDetailId;
+    }
+
+    public List<Map> getExtendFields() {
+        return extendFields;
     }
 
-    public void setPrintHouse(String printHouse) {
-        this.printHouse = printHouse;
+    public void setExtendFields(List<Map> extendFields) {
+        this.extendFields = extendFields;
     }
 }

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

@@ -1,5 +1,7 @@
 package com.qmth.distributed.print.business.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.entity.BasicStudent;
 
@@ -13,4 +15,5 @@ import com.qmth.distributed.print.business.entity.BasicStudent;
  */
 public interface BasicStudentService extends IService<BasicStudent> {
 
+    IPage<BasicStudent> listPage(Page<BasicStudent> page, String classId);
 }

+ 6 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskPrintService.java

@@ -1,7 +1,9 @@
 package com.qmth.distributed.print.business.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.params.TaskPrintParams;
+import com.qmth.distributed.print.business.entity.BasicStudent;
 import com.qmth.distributed.print.business.entity.ExamTaskPrint;
 
 import java.util.List;
@@ -16,4 +18,8 @@ import java.util.List;
  */
 public interface ExamTaskPrintService extends IService<ExamTaskPrint> {
     List<ExamTaskPrint> createTaskPrint(TaskPrintParams taskPrintParams);
+
+    IPage<BasicStudent> listStudentByClass(String classId, Integer pageNumber, Integer pageSize);
+
+    void remove(Long examTaskPrintId);
 }

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

@@ -1,11 +1,18 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.qmth.distributed.print.business.entity.BasicStudent;
 import com.qmth.distributed.print.business.mapper.BasicStudentMapper;
 import com.qmth.distributed.print.business.service.BasicStudentService;
 import org.springframework.stereotype.Service;
 
+import java.lang.reflect.Array;
+import java.util.Arrays;
+import java.util.List;
+
 /**
  * <p>
  * 学校id 服务实现类
@@ -17,4 +24,11 @@ import org.springframework.stereotype.Service;
 @Service
 public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, BasicStudent> implements BasicStudentService {
 
+    @Override
+    public IPage<BasicStudent> listPage(Page<BasicStudent> page, String classId) {
+        List<String> classIds = Arrays.asList(classId.split(","));
+        QueryWrapper<BasicStudent> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().in(BasicStudent::getClazz, classIds).orderByAsc(BasicStudent::getClazz, BasicStudent::getStudentCode);
+        return this.baseMapper.selectPage(page, queryWrapper);
+    }
 }

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

@@ -1,13 +1,22 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.params.TaskPrintParams;
+import com.qmth.distributed.print.business.entity.BasicStudent;
+import com.qmth.distributed.print.business.entity.ExamDetailCourse;
+import com.qmth.distributed.print.business.entity.ExamStudent;
 import com.qmth.distributed.print.business.entity.ExamTaskPrint;
 import com.qmth.distributed.print.business.mapper.ExamTaskPrintMapper;
-import com.qmth.distributed.print.business.service.ExamTaskPrintService;
+import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.stream.Collectors;
@@ -18,6 +27,18 @@ import java.util.stream.Collectors;
 @Service
 public class ExamTaskPrintServiceImpl extends ServiceImpl<ExamTaskPrintMapper, ExamTaskPrint> implements ExamTaskPrintService {
 
+    @Autowired
+    private BasicStudentService basicStudentService;
+
+    @Autowired
+    private ExamDetailService examDetailService;
+
+    @Autowired
+    private ExamDetailCourseService examDetailCourseService;
+
+    @Autowired
+    private ExamStudentService examStudentService;
+
     @Override
     public List<ExamTaskPrint> createTaskPrint(TaskPrintParams taskPrintParams) {
         Long schoolId = (Long) ServletUtil.getRequestHeaderSchoolId();
@@ -39,4 +60,37 @@ public class ExamTaskPrintServiceImpl extends ServiceImpl<ExamTaskPrintMapper, E
         this.saveBatch(list);
         return list;
     }
+
+    @Override
+    public IPage<BasicStudent> listStudentByClass(String classId, Integer pageNumber, Integer pageSize) {
+        Page<BasicStudent> page = new Page<>(pageNumber, pageSize);
+        IPage<BasicStudent> studentIPage = basicStudentService.listPage(page, classId);
+        return studentIPage;
+    }
+
+    @Transactional
+    @Override
+    public void remove(Long examTaskPrintId) {
+        // todo xf删除逻辑校验
+        ExamTaskPrint examTaskPrint = this.getById(examTaskPrintId);
+        QueryWrapper<ExamDetailCourse> examDetailCourseQueryWrapper = new QueryWrapper<>();
+        examDetailCourseQueryWrapper.lambda().eq(ExamDetailCourse::getExamDetailId, examTaskPrint.getExamDetailId());
+        List<ExamDetailCourse> examDetailCourses = examDetailCourseService.list(examDetailCourseQueryWrapper);
+        for (ExamDetailCourse examDetailCours : examDetailCourses) {
+            // 删除考务数据-考生
+            UpdateWrapper<ExamStudent> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.lambda().eq(ExamStudent::getExamDetailCourseId, examDetailCours.getId());
+            examStudentService.remove(updateWrapper);
+
+            // 删除考务数据-课程
+            examDetailCourseService.removeById(examDetailCours.getId());
+        }
+
+        // 删除考务数据-考点
+        examDetailService.removeById(examTaskPrint.getExamDetailId());
+        // 删除exam_task_print
+        this.removeById(examTaskPrintId);
+
+
+    }
 }

+ 14 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -138,6 +138,9 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     @Autowired
     BasicStudentService basicStudentService;
 
+    @Autowired
+    ExamTaskPrintService examTaskPrintService;
+
     /**
      * 创建pdf前置条件
      *
@@ -1069,10 +1072,10 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             return null;
         }
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
-        Long printPlanId = list.stream().map(m -> m.getPrintPlanId()).findFirst().get();
+        Long printPlanId = tbTask.getPrintPlanId();
         Long schoolId = (Long) ServletUtil.getRequestHeaderSchoolId();
         if (!tbTaskService.countByPrintPlanIdAndEntityId(schoolId, printPlanId, null)) {
-            throw ExceptionResultEnum.ERROR.exception("当前印刷计划正在生成pdf,无法导入考务数据");
+            throw ExceptionResultEnum.ERROR.exception("当前印刷计划正在生成pdf,无法生成考务数据");
         }
         ExamPrintPlan examPrintPlan = examPrintPlanService.getById(printPlanId);
         if (examPrintPlan == null) {
@@ -1080,14 +1083,12 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         }
         PrintPlanStatusEnum printPlanStatus = examPrintPlan.getStatus();
         if (PrintPlanStatusEnum.NEW != printPlanStatus && PrintPlanStatusEnum.READY != printPlanStatus) {
-            throw ExceptionResultEnum.ERROR.exception(printPlanStatus + "状态下的印刷计划不允许重新提交");
+            throw ExceptionResultEnum.ERROR.exception(printPlanStatus.getDesc() + "状态下的印刷计划不允许重新生成考务数据");
         }
 
-        String printPlanName = examPrintPlan.getName();
-        // 该学校有效考务数据
-        List<FieldsDto> fieldsDtoList = examDetailService.findExaminationFields(schoolId);
-        if (fieldsDtoList.size() == 0) {
-            throw ExceptionResultEnum.ERROR.exception("该学校没有设置考务数据");
+        BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId(schoolId);
+        if (Objects.isNull(basicExamRule)) {
+            throw ExceptionResultEnum.EXAM_RULE_IS_NULL.exception();
         }
 
         // 删除印刷计划下的考务数据
@@ -1118,6 +1119,10 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 examDetailService.save(examDetail);
                 examDetailIdList.add(examDetail.getId());
 
+                UpdateWrapper<ExamTaskPrint> updateWrapper = new UpdateWrapper<>();
+                updateWrapper.lambda().set(ExamTaskPrint::getExamDetailId, examDetail.getId()).eq(ExamTaskPrint::getId, examTaskPrint.getId());
+                examTaskPrintService.update(updateWrapper);
+
                 ExamDetailCourse examDetailCourse = new ExamDetailCourse();
                 examDetailCourse.setId(SystemConstant.getDbUuid());
                 examDetailCourse.setSchoolId(schoolId);
@@ -1145,7 +1150,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                     examStudent.setStudentCode(basicStudent.getStudentCode());
                     // 准考证号(年月+000001)
                     examStudent.setTicketNumber(createTempNumber(ticketNumberParams));
-//                    examStudent.setExtendFields(JSON.toJSONString(extendFieldsDtoList));
+                    examStudent.setExtendFields(JSON.toJSONString(examTaskPrint.getExtendFields()));
                     examStudent.setSiteNumber(String.valueOf(atomicInteger.getAndIncrement()));
                     examStudent.setCreateId(examTaskPrint.getCreateId());
                     examStudent.setUpdateId(examTaskPrint.getCreateId());
@@ -1156,7 +1161,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 redisTemplate.opsForValue().set(key, value);
                 throw new RuntimeException(e);
             }
-
         }
 
         // 更改印刷计划状态

+ 26 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -565,5 +565,31 @@ public class ExamTaskController {
         return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");
     }
 
+    /**
+     * 查看考生
+     * @param classId
+     * @return
+     */
+    @ApiOperation(value = "卷库查询-发布印刷任务-查看考生")
+    @RequestMapping(value = "/list_task_print_student", method = RequestMethod.POST)
+    public Result listTaskPrintStudent(@RequestParam(value = "classId") String classId,
+                                       @RequestParam Integer pageNumber,
+                                       @RequestParam Integer pageSize) {
+        IPage<BasicStudent> students = examTaskPrintService.listStudentByClass(classId, pageNumber, pageSize);
+        return ResultUtil.ok(students);
+    }
+
+    /**
+     * 查看考生
+     * @param examTaskPrintId
+     * @return
+     */
+    @ApiOperation(value = "卷库查询-发布印刷任务-删除")
+    @RequestMapping(value = "/remove_task_print", method = RequestMethod.POST)
+    public Result listTaskPrintStudent(@RequestParam(value = "examTaskPrintId") Long examTaskPrintId) {
+        examTaskPrintService.remove(examTaskPrintId);
+        return ResultUtil.ok(true, "");
+    }
+
 }