Bläddra i källkod

扫描员模板导出

caozixuan 2 år sedan
förälder
incheckning
b328e75095

+ 47 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/dto/excel/ScannerBindingDto.java

@@ -0,0 +1,47 @@
+package com.qmth.paper.library.business.bean.dto.excel;
+
+import com.qmth.paper.library.common.annotation.ExcelImportTempleteVaild;
+import com.qmth.paper.library.common.annotation.ExcelNote;
+import com.qmth.paper.library.common.annotation.ExcelProperty;
+import com.qmth.paper.library.common.annotation.excelStyle.ExcelDataStyle;
+import com.qmth.paper.library.common.annotation.excelStyle.ExcelHeaderStyle;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 扫描员绑定excel
+ * @Author: CaoZixuan
+ * @Date: 2022-09-30
+ */
+@ExcelHeaderStyle
+@ExcelImportTempleteVaild(value = true)
+public class ScannerBindingDto implements Serializable {
+
+    @ExcelNote(value = "任务名称")
+    @ExcelProperty(name = "任务名称", width = 30, index = 1)
+    @ExcelDataStyle(lock = true)
+    @NotNull
+    private String scanTaskName;
+
+    @ExcelNote(value = "扫描员")
+    @ExcelProperty(name = "扫描员", width = 30, index = 2)
+    @NotNull
+    private String scannerName;
+
+    public String getScanTaskName() {
+        return scanTaskName;
+    }
+
+    public void setScanTaskName(String scanTaskName) {
+        this.scanTaskName = scanTaskName;
+    }
+
+    public String getScannerName() {
+        return scannerName;
+    }
+
+    public void setScannerName(String scannerName) {
+        this.scannerName = scannerName;
+    }
+}

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

@@ -44,6 +44,12 @@ public interface PaperScanTaskService extends IService<PaperScanTask> {
      */
     void deletePaperScanTaskByIdList(List<Long> idList, SysUser requestUser);
 
+    /**
+     * 扫描员模板导出
+     *
+     * @param requestUser 请求的用户
+     */
+    void exportScanner(SysUser requestUser) throws Exception;
 
     List<PaperScanTask> listByPaperArchivesId(Long id);
 }

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

@@ -4,6 +4,7 @@ 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.dto.excel.ScannerBindingDto;
 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;
@@ -16,6 +17,8 @@ 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 com.qmth.paper.library.common.util.ExcelUtil;
+import com.qmth.paper.library.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -23,6 +26,7 @@ import javax.annotation.Resource;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * <p>
@@ -131,6 +135,41 @@ public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, P
         this.removeByIds(idList);
     }
 
+    @Override
+    public void exportScanner(SysUser requestUser) throws Exception {
+        Long schoolId = requestUser.getSchoolId();
+        // 已经开始扫描的任务id
+        List<Long> alreadyScannedTaskIdList = paperLibraryService.list(new QueryWrapper<PaperLibrary>().lambda()
+                        .eq(PaperLibrary::getSchoolId, schoolId))
+                .stream()
+                .map(PaperLibrary::getPaperScanTaskId)
+                .collect(Collectors.toList());
+
+        QueryWrapper<PaperScanTask> paperScanTaskQueryWrapper = new QueryWrapper<>();
+        paperScanTaskQueryWrapper.lambda().eq(PaperScanTask::getSchoolId, schoolId);
+        if (alreadyScannedTaskIdList.size() > 0) {
+            paperScanTaskQueryWrapper.lambda().notIn(PaperScanTask::getId, alreadyScannedTaskIdList);
+        }
+        List<PaperScanTask> paperScanTaskList = this.list(paperScanTaskQueryWrapper);
+        List<ScannerBindingDto> scannerBindingDtoList = paperScanTaskList.stream().flatMap(e -> {
+            String scanTaskName = e.getScanTaskName();
+            String scannerName = "";
+            Long scanUserId = e.getScanUserId();
+            if (SystemConstant.longNotNull(scanUserId)) {
+                SysUser scanner = sysUserService.getById(scanUserId);
+                if (Objects.isNull(scanner)) {
+                    throw ExceptionResultEnum.ERROR.exception("未找到扫描员");
+                }
+                scannerName = scanner.getRealName();
+            }
+            ScannerBindingDto scannerBindingDto = new ScannerBindingDto();
+            scannerBindingDto.setScannerName(scannerName);
+            scannerBindingDto.setScanTaskName(scanTaskName);
+            return Stream.of(scannerBindingDto);
+        }).collect(Collectors.toList());
+        ExcelUtil.excelExport("绑定扫描员导入模板", ScannerBindingDto.class, scannerBindingDtoList, ServletUtil.getResponse());
+    }
+
     @Override
     public List<PaperScanTask> listByPaperArchivesId(Long paperArchivesId) {
         QueryWrapper<PaperScanTask> queryWrapper = new QueryWrapper<>();

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

@@ -11,6 +11,7 @@ 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;
@@ -88,9 +89,19 @@ public class PaperScanTaskController {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Map<String, Object> map = paperLibraryCommonService.saveTask(file, TaskTypeEnum.PAPER_SCAN_TASK_IMPORT);
         map.put(SystemConstant.SYS_USER, sysUser);
-        map.put("paperArchivesId",paperArchivesId);
+        map.put("paperArchivesId", paperArchivesId);
         asyncPaperScanTaskImportService.importTask(map);
         TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
         return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");
     }
+
+    @ApiOperation(value = "扫描任务管理-绑定扫描员导入模板下载")
+    @RequestMapping(value = "/scanner_export", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    public Result scannerExport() throws Exception {
+
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        paperScanTaskService.exportScanner(requestUser);
+        return ResultUtil.ok();
+    }
 }