|
@@ -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
|