Browse Source

任务管理部分

caozixuan 2 years ago
parent
commit
5505e5e7b3

+ 95 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/params/PaperScanTaskParam.java

@@ -0,0 +1,95 @@
+package com.qmth.paper.library.business.bean.params;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 扫描任务参数
+ * @Author: CaoZixuan
+ * @Date: 2022-09-28
+ */
+public class PaperScanTaskParam implements Serializable {
+
+    @ApiModelProperty(value = "扫描任务id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long paperScanTaskId;
+
+    @ApiModelProperty(value = "扫描任务名称")
+    private String scanTaskName;
+
+    @ApiModelProperty(value = "档案id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long paperArchivesId;
+
+    @ApiModelProperty(value = "课程名称")
+    private String courseName;
+
+    @ApiModelProperty(value = "任课教师")
+    private String teacherName;
+
+    @ApiModelProperty(value = "教学班")
+    private String teachClazzName;
+
+    @ApiModelProperty(value = "扫描员")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long scanUserId;
+
+    public Long getPaperScanTaskId() {
+        return paperScanTaskId;
+    }
+
+    public void setPaperScanTaskId(Long paperScanTaskId) {
+        this.paperScanTaskId = paperScanTaskId;
+    }
+
+    public String getScanTaskName() {
+        return scanTaskName;
+    }
+
+    public void setScanTaskName(String scanTaskName) {
+        this.scanTaskName = scanTaskName;
+    }
+
+    public Long getPaperArchivesId() {
+        return paperArchivesId;
+    }
+
+    public void setPaperArchivesId(Long paperArchivesId) {
+        this.paperArchivesId = paperArchivesId;
+    }
+
+    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 Long getScanUserId() {
+        return scanUserId;
+    }
+
+    public void setScanUserId(Long scanUserId) {
+        this.scanUserId = scanUserId;
+    }
+}

+ 150 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/PaperScanTaskResult.java

@@ -0,0 +1,150 @@
+package com.qmth.paper.library.business.bean.result;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 扫描任务查询结果
+ * @Author: CaoZixuan
+ * @Date: 2022-09-28
+ */
+public class PaperScanTaskResult implements Serializable {
+    @ApiModelProperty(value = "扫描任务id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long paperScanTaskId;
+
+    @ApiModelProperty(value = "学校id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long schoolId;
+
+    @ApiModelProperty(value = "扫描任务名称")
+    private String scanTaskName;
+
+    @ApiModelProperty(value = "档案表id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long paperArchivesId;
+
+    @ApiModelProperty(value = "档案名称")
+    private String archivesName;
+
+    @ApiModelProperty(value = "档案编号")
+    private String archivesCode;
+
+    @ApiModelProperty(value = "课程名称")
+    private String courseName;
+
+    @ApiModelProperty(value = "任课教师名称")
+    private String teacherName;
+
+    @ApiModelProperty(value = "教学班名称")
+    private String teachClazzName;
+
+    @ApiModelProperty(value = "扫描量")
+    private int scanCount;
+
+    @ApiModelProperty(value = "扫描员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long scanUserId;
+
+    @ApiModelProperty(value = "扫描员名称")
+    private String scanUserName;
+
+    public Long getPaperScanTaskId() {
+        return paperScanTaskId;
+    }
+
+    public void setPaperScanTaskId(Long paperScanTaskId) {
+        this.paperScanTaskId = paperScanTaskId;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getScanTaskName() {
+        return scanTaskName;
+    }
+
+    public void setScanTaskName(String scanTaskName) {
+        this.scanTaskName = scanTaskName;
+    }
+
+    public Long getPaperArchivesId() {
+        return paperArchivesId;
+    }
+
+    public void setPaperArchivesId(Long paperArchivesId) {
+        this.paperArchivesId = paperArchivesId;
+    }
+
+    public String getArchivesName() {
+        return archivesName;
+    }
+
+    public void setArchivesName(String archivesName) {
+        this.archivesName = archivesName;
+    }
+
+    public String getArchivesCode() {
+        return archivesCode;
+    }
+
+    public void setArchivesCode(String archivesCode) {
+        this.archivesCode = archivesCode;
+    }
+
+    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;
+    }
+
+    public Long getScanUserId() {
+        return scanUserId;
+    }
+
+    public void setScanUserId(Long scanUserId) {
+        this.scanUserId = scanUserId;
+    }
+
+    public String getScanUserName() {
+        return scanUserName;
+    }
+
+    public void setScanUserName(String scanUserName) {
+        this.scanUserName = scanUserName;
+    }
+}

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

@@ -1,7 +1,14 @@
 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.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 java.util.Set;
 
 /**
  * <p>
@@ -10,4 +17,19 @@ import com.qmth.paper.library.business.entity.PaperScanTask;
  */
 public interface PaperScanTaskMapper extends BaseMapper<PaperScanTask> {
 
+    /**
+     * 扫描任务分页查询
+     *
+     * @param iPage       分页参数
+     * @param schoolId    学校id
+     * @param courseName  课程名称
+     * @param teacherName 教师名称
+     * @param orgIds      数据权限
+     * @return 分页查询结果
+     */
+    IPage<PaperScanTaskResult> findPaperScanTaskPage(@Param("iPage") Page<PaperScanTaskResult> iPage,
+                                                     @Param("schoolId") Long schoolId,
+                                                     @Param("courseName") String courseName,
+                                                     @Param("teacherName") String teacherName,
+                                                     @Param("orgIds") Set<Long> orgIds);
 }

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

@@ -1,7 +1,11 @@
 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.PaperScanTaskResult;
 import com.qmth.paper.library.business.entity.PaperScanTask;
+import com.qmth.paper.library.common.entity.SysUser;
 
 import java.util.List;
 
@@ -11,6 +15,33 @@ import java.util.List;
  * </p>
  */
 public interface PaperScanTaskService extends IService<PaperScanTask> {
+    /**
+     * 扫描任务分页查询
+     *
+     * @param courseName  课程名称
+     * @param teacherName 任课教师
+     * @param pageNumber  分页页数
+     * @param pageSize    分页容量
+     * @param requestUser 请求用户
+     * @return 分页结果
+     */
+    IPage<PaperScanTaskResult> paperScanTaskPage(String courseName, String teacherName, int pageNumber, int pageSize, SysUser requestUser);
+
+    /**
+     * 扫描任务编辑
+     *
+     * @param paperScanTaskParam 扫描任务参数
+     * @param requestUser        请求用户
+     * @return 扫描任务id
+     */
+    Long editPaperScanTask(PaperScanTaskParam paperScanTaskParam, SysUser requestUser);
+
+    /**
+     * 扫描任务批量删除
+     *
+     * @param idList 扫描任务id集合
+     */
+    void deletePaperScanTaskByIdList(List<Long> idList);
 
     List<PaperScanTask> listByPaperArchivesId(Long id);
 }

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

@@ -1,11 +1,18 @@
 package com.qmth.paper.library.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.paper.library.business.bean.params.PaperScanTaskParam;
+import com.qmth.paper.library.business.bean.result.PaperScanTaskResult;
 import com.qmth.paper.library.business.entity.PaperScanTask;
 import com.qmth.paper.library.business.mapper.PaperScanTaskMapper;
 import com.qmth.paper.library.business.service.PaperScanTaskService;
+import com.qmth.paper.library.common.contant.SystemConstant;
+import com.qmth.paper.library.common.entity.SysUser;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -17,6 +24,26 @@ import java.util.List;
 @Service
 public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, PaperScanTask> implements PaperScanTaskService {
 
+    @Override
+    public IPage<PaperScanTaskResult> paperScanTaskPage(String courseName, String teacherName, int pageNumber, int pageSize, SysUser requestUser) {
+        Long schoolId = requestUser.getSchoolId();
+        courseName = SystemConstant.strNotNull(courseName) ? SystemConstant.translateSpecificSign(courseName) : null;
+        teacherName = SystemConstant.strNotNull(teacherName) ? SystemConstant.translateSpecificSign(teacherName) : null;
+        return this.baseMapper.findPaperScanTaskPage(new Page<>(pageNumber,pageSize),schoolId,courseName,teacherName,null);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Long editPaperScanTask(PaperScanTaskParam paperScanTaskParam, SysUser requestUser) {
+        return null;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void deletePaperScanTaskByIdList(List<Long> idList) {
+
+    }
+
     @Override
     public List<PaperScanTask> listByPaperArchivesId(Long paperArchivesId) {
         QueryWrapper<PaperScanTask> queryWrapper = new QueryWrapper<>();

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

@@ -1,4 +1,45 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.qmth.paper.library.business.mapper.PaperScanTaskMapper">
+    <select id="findPaperScanTaskPage"
+            resultType="com.qmth.paper.library.business.bean.result.PaperScanTaskResult">
+        SELECT
+            pst.id AS paperScanTaskId,
+            pst.school_id AS schoolId,
+            pst.scan_task_name AS scanTaskName,
+            pst.course_name AS courseName,
+            pst.teacher_name AS teacherName,
+            pst.teach_clazz_name AS teachClazzName,
+            pst.scan_user_id AS scanUserId,
+            pa.id AS paperArchivesId,
+            pa.archives_name AS archivesName,
+            pa.archives_code AS archivesCode,
+            pl.scan_count AS scanCount,
+            su.real_name AS scanUserName
+        FROM
+            paper_scan_task pst
+                LEFT JOIN
+            paper_archives pa ON pst.paper_archives_id = pa.id
+                LEFT JOIN
+            paper_scan_task_detail pstd ON pst.id = pstd.paper_scan_task_id
+                LEFT JOIN
+            (SELECT
+                 paper_scan_task_detail_id, COUNT(*) AS scan_count
+             FROM
+                 paper_library
+             GROUP BY paper_scan_task_detail_id) pl ON pstd.id = pl.paper_scan_task_detail_id
+                LEFT JOIN
+            sys_user su ON pst.scan_user_id = su.id
+        <where>
+            <if test="schoolId != null and schoolId != ''">
+                AND pst.school_id = #{schoolId}
+            </if>
+            <if test="courseName != null and courseName != ''">
+                AND pst.course_name like CONCAT('%',#{courseName},'%')
+            </if>
+            <if test="teacherName != null and teacherName != ''">
+                AND pst.teacher_name like CONCAT('%',#{teacherName},'%')
+            </if>
+        </where>
+    </select>
 </mapper>