Parcourir la source

扫描详情查询
扫描数据清除

caozixuan il y a 2 ans
Parent
commit
53cfa00887

+ 78 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/PaperScanTaskDetailResult.java

@@ -0,0 +1,78 @@
+package com.qmth.paper.library.business.bean.result;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 扫描任务
+ * @Author: CaoZixuan
+ * @Date: 2022-09-30
+ */
+public class PaperScanTaskDetailResult implements Serializable {
+    @ApiModelProperty(value = "姓名")
+    private String studentName;
+
+    @ApiModelProperty(value = "学号")
+    private String studentCode;
+
+    @ApiModelProperty(value = "课程")
+    private String courseName;
+
+    @ApiModelProperty(value = "任课老师")
+    private String teacherName;
+
+    @ApiModelProperty(value = "教学班")
+    private String teachClazzName;
+
+    @ApiModelProperty(value = "扫描张数")
+    private int scanCount;
+
+    public String getStudentName() {
+        return studentName;
+    }
+
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getTeachClazzName() {
+        return teachClazzName;
+    }
+
+    public void setTeachClazzName(String teachClazzName) {
+        this.teachClazzName = teachClazzName;
+    }
+
+    public int getScanCount() {
+        return scanCount;
+    }
+
+    public void setScanCount(int scanCount) {
+        this.scanCount = scanCount;
+    }
+}

+ 16 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/mapper/PaperScanTaskMapper.java

@@ -3,10 +3,12 @@ package com.qmth.paper.library.business.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.paper.library.business.bean.result.PaperScanTaskDetailResult;
 import com.qmth.paper.library.business.bean.result.PaperScanTaskResult;
 import com.qmth.paper.library.business.entity.PaperScanTask;
 import com.qmth.paper.library.common.bean.result.BasicStudentResult;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.context.annotation.Primary;
 
 import java.util.Set;
 
@@ -32,4 +34,18 @@ public interface PaperScanTaskMapper extends BaseMapper<PaperScanTask> {
                                                      @Param("courseName") String courseName,
                                                      @Param("teacherName") String teacherName,
                                                      @Param("orgIds") Set<Long> orgIds);
+
+    /**
+     * 根据扫描任务id分页查询扫描任务详情
+     *
+     * @param iPage           分页参数
+     * @param schoolId        学校id
+     * @param paperScanTaskId 扫描任务id
+     * @param orgIds          数据权限
+     * @return 分页查询结果
+     */
+    IPage<PaperScanTaskDetailResult> findPaperScanTaskDetailPageByTaskId(@Param("iPage") Page<PaperScanTaskDetailResult> iPage,
+                                                                         @Param("schoolId") Long schoolId,
+                                                                         @Param("paperScanTaskId") Long paperScanTaskId,
+                                                                         @Param("orgIds") Set<Long> orgIds);
 }

+ 19 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperScanTaskService.java

@@ -3,6 +3,7 @@ package com.qmth.paper.library.business.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.paper.library.business.bean.params.PaperScanTaskParam;
+import com.qmth.paper.library.business.bean.result.PaperScanTaskDetailResult;
 import com.qmth.paper.library.business.bean.result.PaperScanTaskResult;
 import com.qmth.paper.library.business.entity.PaperScanTask;
 import com.qmth.paper.library.common.entity.SysUser;
@@ -51,5 +52,23 @@ public interface PaperScanTaskService extends IService<PaperScanTask> {
      */
     void exportScanner(SysUser requestUser) throws Exception;
 
+    /**
+     * 根据扫描任务id分页查询扫描任务详情
+     *
+     * @param paperScanTaskId 扫描任务id
+     * @param requestUser     请求的用户
+     * @return 扫描任务详情分页结果
+     */
+    IPage<PaperScanTaskDetailResult> findPaperScanTaskDetailPageByTaskId(Long paperScanTaskId, int pageNumber, int pageSize, SysUser requestUser);
+
+    /**
+     * 清除扫描任务数据
+     *
+     * @param paperScanTaskId 扫描任务id
+     * @param requestUser     请求用户
+     */
+    void clearScanData(Long paperScanTaskId, SysUser requestUser);
+
+
     List<PaperScanTask> listByPaperArchivesId(Long id);
 }

+ 39 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperScanTaskServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.paper.library.business.bean.dto.excel.ScannerBindingDto;
 import com.qmth.paper.library.business.bean.params.PaperScanTaskParam;
+import com.qmth.paper.library.business.bean.result.PaperScanTaskDetailResult;
 import com.qmth.paper.library.business.bean.result.PaperScanTaskResult;
 import com.qmth.paper.library.business.entity.PaperLibrary;
 import com.qmth.paper.library.business.entity.PaperScanTask;
@@ -170,6 +171,44 @@ public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, P
         ExcelUtil.excelExport("绑定扫描员导入模板", ScannerBindingDto.class, scannerBindingDtoList, ServletUtil.getResponse());
     }
 
+    @Override
+    public IPage<PaperScanTaskDetailResult> findPaperScanTaskDetailPageByTaskId(Long paperScanTaskId, int pageNumber, int pageSize, SysUser requestUser) {
+        Long schoolId = requestUser.getSchoolId();
+        return this.baseMapper.findPaperScanTaskDetailPageByTaskId(new Page<>(pageNumber, pageSize), paperScanTaskId, schoolId, null);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void clearScanData(Long paperScanTaskId, SysUser requestUser) {
+        Long schoolId = requestUser.getSchoolId();
+
+        // 扫描任务校验
+        PaperScanTask paperScanTask = this.getById(paperScanTaskId);
+        if (Objects.isNull(paperScanTask)) {
+            throw ExceptionResultEnum.ERROR.exception("扫描任务不存在");
+        }
+        // 要删除的图片数据集合
+        List<PaperLibrary> willDeletePaperLibraryList = paperLibraryService.list(new QueryWrapper<PaperLibrary>()
+                .lambda()
+                .eq(PaperLibrary::getSchoolId, schoolId)
+                .eq(PaperLibrary::getPaperScanTaskId, paperScanTaskId));
+
+        if (willDeletePaperLibraryList.size() > 0) {
+            // 已绑定的扫描任务校验
+            List<PaperLibrary> cantDeleteList = willDeletePaperLibraryList
+                    .stream()
+                    .filter(e -> SystemConstant.longNotNull(e.getPaperScanTaskDetailId()))
+                    .collect(Collectors.toList());
+
+            if (cantDeleteList.size() > 0) {
+                throw ExceptionResultEnum.ERROR.exception("所选的扫描任务已经进行了数据检验,不能删除");
+            }
+
+            // 删除该任务扫描的的数据
+            paperLibraryService.removeByIds(willDeletePaperLibraryList);
+        }
+    }
+
     @Override
     public List<PaperScanTask> listByPaperArchivesId(Long paperArchivesId) {
         QueryWrapper<PaperScanTask> queryWrapper = new QueryWrapper<>();

+ 32 - 0
paper-library-business/src/main/resources/mapper/PaperScanTaskMapper.xml

@@ -42,4 +42,36 @@
             </if>
         </where>
     </select>
+
+    <select id="findPaperScanTaskDetailPageByTaskId"
+            resultType="com.qmth.paper.library.business.bean.result.PaperScanTaskDetailResult">
+        SELECT
+            bs.student_name AS studentName,
+            bs.student_code AS studentCode,
+            pst.course_name AS courseName,
+            pst.teacher_name AS teacherName,
+            pst.teach_clazz_name AS teachClazzName,
+            pl.scan_count AS scanCount
+        FROM
+            paper_scan_task pst
+                LEFT JOIN
+            paper_scan_task_detail pstd ON pst.id = pstd.paper_scan_task_id
+                LEFT JOIN
+            basic_student bs ON bs.id = pstd.student_id
+                LEFT JOIN
+            (SELECT
+                 COUNT(*) AS scan_count, paper_scan_task_detail_id
+             FROM
+                 paper_library
+             GROUP BY paper_scan_task_detail_id) pl ON pl.paper_scan_task_detail_id = pstd.id
+        <where>
+            <if test="schoolId != null and schoolId != ''">
+                AND pst.school_id = #{schoolId}
+            </if>
+            <if test="paperScanTaskId != null and paperScanTaskId != ''">
+                AND pst.id = #{paperScanTaskId}
+            </if>
+        </where>
+        ORDER BY scanCount desc
+    </select>
 </mapper>

+ 19 - 1
paper-library/src/main/java/com/qmth/paper/library/api/PaperScanTaskController.java

@@ -11,7 +11,6 @@ import com.qmth.paper.library.business.templete.execute.AsyncPaperScanTaskImport
 import com.qmth.paper.library.common.contant.SystemConstant;
 import com.qmth.paper.library.common.entity.SysUser;
 import com.qmth.paper.library.common.entity.TBTask;
-import com.qmth.paper.library.common.enums.ExceptionResultEnum;
 import com.qmth.paper.library.common.enums.TaskTypeEnum;
 import com.qmth.paper.library.common.util.Result;
 import com.qmth.paper.library.common.util.ResultUtil;
@@ -104,4 +103,23 @@ public class PaperScanTaskController {
         paperScanTaskService.exportScanner(requestUser);
         return ResultUtil.ok();
     }
+
+    @ApiOperation(value = "扫描任务管理-任务详情查询")
+    @RequestMapping(value = "/task_detail_page", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    public Result findPaperScanTaskDetailPage(@ApiParam(value = "扫描任务id", required = true) @RequestParam String paperScanTaskId,
+                                              @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) {
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        return ResultUtil.ok(paperScanTaskService.findPaperScanTaskDetailPageByTaskId(SystemConstant.convertIdToLong(paperScanTaskId), pageNumber, pageSize, requestUser));
+    }
+
+    @ApiOperation(value = "扫描任务管理-清除数据")
+    @RequestMapping(value = "/clear_scan_data", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    public Result clearScanData(@ApiParam(value = "扫描任务id", required = true) @RequestParam String paperScanTaskId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        paperScanTaskService.clearScanData(SystemConstant.convertIdToLong(paperScanTaskId), sysUser);
+        return ResultUtil.ok();
+    }
 }