浏览代码

Merge remote-tracking branch 'origin/dev_v1.0.0' into dev_v1.0.0

# Conflicts:
#	paper-library-common/src/main/java/com/qmth/paper/library/common/enums/RoleTypeEnum.java
wangliang 2 年之前
父节点
当前提交
782bd19b03

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

@@ -3,7 +3,10 @@ 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 org.hibernate.validator.constraints.Length;
+import org.hibernate.validator.constraints.Range;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 /**
@@ -18,19 +21,29 @@ public class PaperScanTaskParam implements Serializable {
     private Long paperScanTaskId;
 
     @ApiModelProperty(value = "扫描任务名称")
+    @NotNull(message = "请输入扫描任务名称")
+    @Length(min = 1, message = "请输入扫描任务名称")
     private String scanTaskName;
 
     @ApiModelProperty(value = "档案id")
     @JsonSerialize(using = ToStringSerializer.class)
+    @NotNull(message = "请输入档案id")
+    @Range(min = 1L, message = "请输入档案id")
     private Long paperArchivesId;
 
     @ApiModelProperty(value = "课程名称")
+    @NotNull(message = "请输入课程名称")
+    @Length(min = 1, message = "请输入课程名称")
     private String courseName;
 
     @ApiModelProperty(value = "任课教师")
+    @NotNull(message = "请输入任课教师")
+    @Length(min = 1, message = "请输入任课教师")
     private String teacherName;
 
     @ApiModelProperty(value = "教学班")
+    @NotNull(message = "请输入教学班")
+    @Length(min = 1, message = "请输入教学班")
     private String teachClazzName;
 
     @ApiModelProperty(value = "扫描员")

+ 4 - 2
paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperScanTaskService.java

@@ -39,9 +39,11 @@ public interface PaperScanTaskService extends IService<PaperScanTask> {
     /**
      * 扫描任务批量删除
      *
-     * @param idList 扫描任务id集合
+     * @param idList      扫描任务id集合
+     * @param requestUser 请求的用户
      */
-    void deletePaperScanTaskByIdList(List<Long> idList);
+    void deletePaperScanTaskByIdList(List<Long> idList, SysUser requestUser);
+
 
     List<PaperScanTask> listByPaperArchivesId(Long id);
 }

+ 90 - 3
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperScanTaskServiceImpl.java

@@ -6,15 +6,23 @@ 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.PaperLibrary;
 import com.qmth.paper.library.business.entity.PaperScanTask;
 import com.qmth.paper.library.business.mapper.PaperScanTaskMapper;
+import com.qmth.paper.library.business.service.PaperArchivesService;
+import com.qmth.paper.library.business.service.PaperLibraryService;
 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 com.qmth.paper.library.common.enums.ExceptionResultEnum;
+import com.qmth.paper.library.common.service.SysUserService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -23,25 +31,104 @@ import java.util.List;
  */
 @Service
 public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, PaperScanTask> implements PaperScanTaskService {
+    @Resource
+    private PaperArchivesService paperArchivesService;
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
+    private PaperLibraryService paperLibraryService;
 
     @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);
+        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;
+        // 参数
+        Long requestUserId = requestUser.getId();
+        Long schoolId = requestUser.getSchoolId();
+        Long paperScanTaskId = paperScanTaskParam.getPaperScanTaskId();
+        Long paperArchivesId = paperScanTaskParam.getPaperArchivesId();
+        if (Objects.isNull(paperArchivesService.getById(paperArchivesId))) {
+            throw ExceptionResultEnum.ERROR.exception("未找到档案");
+        }
+
+        String scanTaskName = paperScanTaskParam.getScanTaskName();
+        // 任务名称在档案下唯一
+        PaperScanTask check = this.getOne(new QueryWrapper<PaperScanTask>()
+                .lambda()
+                .eq(PaperScanTask::getPaperArchivesId, paperArchivesId)
+                .eq(PaperScanTask::getScanTaskName, scanTaskName));
+        if (Objects.nonNull(check) && !Objects.equals(check.getId(), paperScanTaskId)) {
+            throw ExceptionResultEnum.ERROR.exception("所选档案下已存在名称为【" + scanTaskName + "】的扫描任务");
+        }
+
+        String courseName = paperScanTaskParam.getCourseName();
+        String teacherName = paperScanTaskParam.getTeacherName();
+        String teacherClazzName = paperScanTaskParam.getTeachClazzName();
+        Long scanUserId = paperScanTaskParam.getScanUserId();
+        if (SystemConstant.longNotNull(scanUserId)) {
+            SysUser sysUser = sysUserService.getById(scanUserId);
+            if (Objects.isNull(sysUser)) {
+                throw ExceptionResultEnum.ERROR.exception("未找到扫描员");
+            }
+        }
+
+        // 组装
+        PaperScanTask paperScanTask = new PaperScanTask();
+        paperScanTask.setSchoolId(schoolId);
+        paperScanTask.setPaperArchivesId(paperArchivesId);
+        paperScanTask.setScanTaskName(scanTaskName);
+        paperScanTask.setCourseName(courseName);
+        paperScanTask.setTeacherName(teacherName);
+        paperScanTask.setTeachClazzName(teacherClazzName);
+        if (SystemConstant.longNotNull(scanUserId)) {
+            paperScanTask.setScanUserId(scanUserId);
+        }
+
+        // 操作
+        if (SystemConstant.longNotNull(paperScanTaskId)) {
+            // 有扫描任务id - 编辑
+            paperScanTask.updateInfo(requestUserId);
+            paperScanTask.setId(paperScanTaskId);
+        } else {
+            // 没扫描任务id - 新增
+            paperScanTask.insertInfo(requestUserId);
+        }
+        this.saveOrUpdate(paperScanTask);
+        return paperScanTask.getId();
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void deletePaperScanTaskByIdList(List<Long> idList) {
+    public void deletePaperScanTaskByIdList(List<Long> idList, SysUser requestUser) {
+        Long schoolId = requestUser.getSchoolId();
+        if (idList != null && idList.size() > 0) {
+            List<PaperLibrary> paperLibraryList = paperLibraryService.list(new QueryWrapper<PaperLibrary>()
+                    .lambda()
+                    .eq(PaperLibrary::getSchoolId, schoolId)
+                    .in(PaperLibrary::getPaperScanTaskDetailId, idList));
+
+            if (paperLibraryList.size() > 0) {
+                // 所选择要删除的扫描任务中出现了已经开始扫描的,不能被删除
+                List<Long> cantDeleteScanTaskIdList = paperLibraryList.stream()
+                        .map(PaperLibrary::getPaperScanTaskDetailId)
+                        .distinct()
+                        .collect(Collectors.toList());
 
+                if (cantDeleteScanTaskIdList.size() > 0) {
+                    List<PaperScanTask> paperScanTaskList = this.list(new QueryWrapper<PaperScanTask>().lambda().in(PaperScanTask::getId, cantDeleteScanTaskIdList));
+                    String cantDeleteScanTaskNames = paperScanTaskList.stream().map(PaperScanTask::getScanTaskName).collect(Collectors.joining(","));
+                    throw ExceptionResultEnum.ERROR.exception("扫描任务【" + cantDeleteScanTaskNames + "】已经进行了图片扫描不能删除");
+                }
+            }
+        }
+        this.removeByIds(idList);
     }
 
     @Override

+ 3 - 1
paper-library-common/src/main/java/com/qmth/paper/library/common/enums/RoleTypeEnum.java

@@ -16,7 +16,9 @@ public enum RoleTypeEnum {
     PRESIDENT("学院院长"),
     TEACHER("任课老师"),
     MARKER("评卷员"),
-    MARKER_LEADER("科组长");
+    MARKER_LEADER("科组长"),
+    SCANNER("扫描员"),
+    ;
 
     RoleTypeEnum(String desc) {
         this.desc = desc;