Selaa lähdekoodia

试卷结构上传-阅卷待办任务

xiaof 3 vuotta sitten
vanhempi
commit
5e352fa4d1

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

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.entity.ExamPaperStructure;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 考试试卷结构 Mapper 接口
@@ -14,5 +16,7 @@ import org.apache.ibatis.annotations.Param;
  * @author xf
  */
 public interface ExamPaperStructureMapper extends BaseMapper<ExamPaperStructure> {
-    IPage<ExamPaperStructure> listByPropositionTeacherId(@Param("page") Page<ExamPaperStructure> page, @Param("schoolId") Long schoolId, @Param("propositionTeacherId") Long propositionTeacherId, @Param("syncStatus") String syncStatus);
+    IPage<ExamPaperStructure> listByPropositionTeacherId(@Param("page") Page<ExamPaperStructure> page, @Param("schoolId") Long schoolId, @Param("propositionTeacherId") Long propositionTeacherId, @Param("syncStatus") String syncStatus, @Param("structureStatusEnums") String[] structureStatusEnums);
+
+    List<ExamPaperStructure> listByPropositionTeacherId(@Param("schoolId") Long schoolId, @Param("propositionTeacherId") Long propositionTeacherId, @Param("syncStatus") String syncStatus, @Param("structureStatusEnums") String[] structureStatusEnums);
 }

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

@@ -18,11 +18,13 @@ import java.util.Map;
  */
 public interface ExamPaperStructureService extends IService<ExamPaperStructure> {
 
-    IPage<ExamPaperStructure> listByPropositionTeacherId(Integer pageNumber, Integer pageSize);
+    IPage<ExamPaperStructure> listByPropositionTeacherId(Integer pageNumber, Integer pageSize, String[] structureStatusEnums);
 
     ExamPaperStructure upload(String examPaperStructure, String md5, MultipartFile[] files);
 
     void updateStatusById(Long id, ExamPaperStructureStatusEnum startSync);
 
     List<Map> preStructure(Long id);
+
+    long countByPropositionTeacherId();
 }

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

@@ -27,7 +27,6 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
-import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.sync.StmmsUtils;
 import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -72,11 +71,11 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
     StmmsUtils stmmsUtils;
 
     @Override
-    public IPage<ExamPaperStructure> listByPropositionTeacherId(Integer pageNumber, Integer pageSize) {
+    public IPage<ExamPaperStructure> listByPropositionTeacherId(Integer pageNumber, Integer pageSize, String[] structureStatusEnums) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Page<ExamPaperStructure> page = new Page<>(pageNumber, pageSize);
-        IPage<ExamPaperStructure> examPaperStructureIPage = this.baseMapper.listByPropositionTeacherId(page, schoolId, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name());
+        IPage<ExamPaperStructure> examPaperStructureIPage = this.baseMapper.listByPropositionTeacherId(page, schoolId, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums);
         return examPaperStructureIPage;
     }
 
@@ -196,6 +195,15 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
         return list;
     }
 
+    @Override
+    public long countByPropositionTeacherId() {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        String[] structureStatusEnums = new String[]{ExamPaperStructureStatusEnum.INIT.name()};
+        List<ExamPaperStructure> examPaperStructureList= this.baseMapper.listByPropositionTeacherId(schoolId, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums);
+        return CollectionUtils.isEmpty(examPaperStructureList) ? 0 : examPaperStructureList.size();
+    }
+
 
     private Map<String, String> createExamTaskAttachmentIds(ExamPaperStructure examPaperStructure) {
         ExamTask examTask = examTaskService.getByCourseCodeAndPaperNumber(examPaperStructure.getSchoolId(), examPaperStructure.getCourseCode(), examPaperStructure.getPaperNumber());

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

@@ -29,7 +29,7 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
         QueryWrapper<TBSyncTask> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(TBSyncTask::getSchoolId, examPrintPlan.getSchoolId())
                 .eq(TBSyncTask::getPrintPlanId, examPrintPlan.getId())
-                .eq(TBSyncTask::getType, PushTypeEnum.ADMIN_PUSH)
+                .eq(TBSyncTask::getType, PushTypeEnum.EXAM_PUSH)
                 .ne(TBSyncTask::getStatus, TaskStatusEnum.FINISH);
         TBSyncTask tbSyncTask = this.getOne(queryWrapper);
         if (tbSyncTask != null) {
@@ -40,7 +40,7 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
             tbSyncTask.setSchoolId(examPrintPlan.getSchoolId());
             tbSyncTask.setPrintPlanId(examPrintPlan.getId());
             tbSyncTask.setPrintPlanName(examPrintPlan.getName());
-            tbSyncTask.setType(PushTypeEnum.ADMIN_PUSH);
+            tbSyncTask.setType(PushTypeEnum.EXAM_PUSH);
             tbSyncTask.setStatus(TaskStatusEnum.INIT);
             tbSyncTask.setCreateTime(System.currentTimeMillis());
         }

+ 6 - 0
distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml

@@ -37,5 +37,11 @@
             epp.school_id = #{schoolId}
             and et.user_id = #{propositionTeacherId}
             and epp.sync_status = #{syncStatus}
+            <if test="structureStatusEnums != null">
+                AND ifnull(eps.status, 'INIT') IN
+                <foreach collection="structureStatusEnums" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
     </select>
 </mapper>

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

@@ -50,7 +50,7 @@ public class ExamPaperStructureController {
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     public Result list(@RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        IPage<ExamPaperStructure> examPaperStructureIPage = examPaperStructureService.listByPropositionTeacherId(pageNumber, pageSize);
+        IPage<ExamPaperStructure> examPaperStructureIPage = examPaperStructureService.listByPropositionTeacherId(pageNumber, pageSize, null);
         return ResultUtil.ok(examPaperStructureIPage);
     }
 
@@ -85,5 +85,6 @@ public class ExamPaperStructureController {
         List<Map> list = examPaperStructureService.preStructure(id);
         return ResultUtil.ok(list);
     }
+
 }
 

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

@@ -1,11 +1,15 @@
 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.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.WorkResult;
+import com.qmth.distributed.print.business.entity.ExamPaperStructure;
+import com.qmth.distributed.print.business.enums.ExamPaperStructureStatusEnum;
 import com.qmth.distributed.print.business.enums.ExamStatusEnum;
+import com.qmth.distributed.print.business.service.ExamPaperStructureService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -13,6 +17,7 @@ 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.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -22,6 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -41,6 +47,9 @@ public class WorkController {
     @Resource
     ExamTaskService examTaskService;
 
+    @Autowired
+    ExamPaperStructureService examPaperStructureService;
+
     @ApiOperation(value = "获取待办接口")
     @RequestMapping(value = "/exam/task/ready", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
@@ -57,5 +66,31 @@ public class WorkController {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         return ResultUtil.ok(examTaskService.getFlowTaskReadyList(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), SystemConstant.getHeadOrUserSchoolId(), sysUser.getOrgId(), sysUser.getId()).getRecords().size());
     }
+
+    /**
+     * 阅卷待办任务-数量
+     *
+     * @return
+     */
+    @ApiOperation(value = "阅卷待办任务-数量")
+    @RequestMapping(value = "/structure/task/ready_count", method = RequestMethod.POST)
+    public Result countStructure() {
+        long count = examPaperStructureService.countByPropositionTeacherId();
+        return ResultUtil.ok(count);
+    }
+
+    /**
+     * 阅卷待办任务-数量
+     *
+     * @return
+     */
+    @ApiOperation(value = "阅卷待办任务-列表")
+    @RequestMapping(value = "/structure/task/ready", method = RequestMethod.POST)
+    public Result list(@RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                       @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        String[] structureStatusEnums = new String[]{ExamPaperStructureStatusEnum.INIT.name()};
+        IPage<ExamPaperStructure> examPaperStructureIPage = examPaperStructureService.listByPropositionTeacherId(pageNumber, pageSize, structureStatusEnums);
+        return ResultUtil.ok(examPaperStructureIPage);
+    }
 }
 

+ 3 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/PushTypeEnum.java

@@ -10,7 +10,9 @@ import java.util.Objects;
 public enum PushTypeEnum {
     USER_PUSH("用户推送"),
 
-    ADMIN_PUSH("考试推送"),
+    EXAM_PUSH("考试、考生、题卡推送"),
+
+    STRUCTURE_PUSH("试卷结构推送"),
 
     SCORE_PUSH("成绩推送");