瀏覽代碼

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

deason 1 年之前
父節點
當前提交
6b572c34df

+ 20 - 0
src/main/java/com/qmth/exam/reserve/bean/studentimport/StudentImportTaskExport.java

@@ -0,0 +1,20 @@
+package com.qmth.exam.reserve.bean.studentimport;
+
+import com.qmth.boot.tools.excel.annotation.ExcelColumn;
+import com.qmth.exam.reserve.bean.IModel;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class StudentImportTaskExport implements IModel {
+
+    private static final long serialVersionUID = -7061459387466884293L;
+
+    @ExcelColumn(name = "任务名称", index = 0)
+    private String taskName;
+
+    @ExcelColumn(name = "异常信息", index = 0)
+    private String message;
+}

+ 27 - 0
src/main/java/com/qmth/exam/reserve/controller/admin/StudentImportTaskController.java

@@ -1,6 +1,8 @@
 package com.qmth.exam.reserve.controller.admin;
 
 import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.List;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -9,6 +11,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -17,8 +20,11 @@ import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.core.collection.PageResult;
 import com.qmth.boot.core.exception.StatusException;
+import com.qmth.boot.tools.excel.ExcelWriter;
+import com.qmth.boot.tools.excel.enums.ExcelType;
 import com.qmth.exam.reserve.bean.PagerReq;
 import com.qmth.exam.reserve.bean.login.LoginUser;
+import com.qmth.exam.reserve.bean.studentimport.StudentImportTaskExport;
 import com.qmth.exam.reserve.bean.studentimport.StudentImportTaskVO;
 import com.qmth.exam.reserve.controller.BaseController;
 import com.qmth.exam.reserve.entity.StudentImportTaskEntity;
@@ -29,6 +35,7 @@ import com.qmth.exam.reserve.util.ResourceUtil;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 
 @RestController
 @Api(tags = "考生信息导入相关接口")
@@ -69,4 +76,24 @@ public class StudentImportTaskController extends BaseController {
             throw new StatusException("文件读取出错", e);
         }
     }
+
+    @ApiOperation(value = "导出异常信息")
+    @GetMapping(value = "/export/message")
+    public void exportExcepionMessage(@ApiParam("导入的任务ID") @RequestParam Long id, HttpServletResponse response) {
+        try {
+            String fileName = URLEncoder.encode("异常信息", "UTF-8");
+            response.setHeader("Content-Disposition", "inline; filename=" + fileName + ".xlsx");
+            response.setContentType("application/vnd.ms-excel");
+            ExcelWriter writer = ExcelWriter.create(ExcelType.XLSX);
+            List<StudentImportTaskExport> exportList = studentImportService.exportPage(id);
+            if (exportList == null || exportList.isEmpty()) {
+                throw new StatusException("没有异常信息");
+            }
+            writer.writeObjects("异常信息", null, StudentImportTaskExport.class, exportList.iterator());
+            writer.output(response.getOutputStream());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
 }

+ 4 - 0
src/main/java/com/qmth/exam/reserve/service/StudentImportTaskService.java

@@ -1,10 +1,12 @@
 package com.qmth.exam.reserve.service;
 
 import java.io.InputStream;
+import java.util.List;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.boot.core.collection.PageResult;
 import com.qmth.exam.reserve.bean.PagerReq;
+import com.qmth.exam.reserve.bean.studentimport.StudentImportTaskExport;
 import com.qmth.exam.reserve.bean.studentimport.StudentImportTaskVO;
 import com.qmth.exam.reserve.entity.StudentImportTaskEntity;
 
@@ -14,4 +16,6 @@ public interface StudentImportTaskService extends IService<StudentImportTaskEnti
 
     PageResult<StudentImportTaskVO> page(PagerReq req);
 
+    List<StudentImportTaskExport> exportPage(Long id);
+
 }

+ 19 - 4
src/main/java/com/qmth/exam/reserve/service/impl/StudentImportTaskServiceImpl.java

@@ -1,8 +1,10 @@
 package com.qmth.exam.reserve.service.impl;
 
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -16,6 +18,7 @@ import com.qmth.boot.tools.excel.ExcelReader;
 import com.qmth.boot.tools.excel.enums.ExcelType;
 import com.qmth.boot.tools.excel.model.DataMap;
 import com.qmth.exam.reserve.bean.PagerReq;
+import com.qmth.exam.reserve.bean.studentimport.StudentImportTaskExport;
 import com.qmth.exam.reserve.bean.studentimport.StudentImportTaskVO;
 import com.qmth.exam.reserve.dao.StudentImportTaskDao;
 import com.qmth.exam.reserve.entity.ApplyTaskEntity;
@@ -28,8 +31,7 @@ import com.qmth.exam.reserve.service.StudentImportTaskService;
 import com.qmth.exam.reserve.util.PageUtil;
 
 @Service
-public class StudentImportTaskServiceImpl extends ServiceImpl<StudentImportTaskDao, StudentImportTaskEntity>
-        implements StudentImportTaskService {
+public class StudentImportTaskServiceImpl extends ServiceImpl<StudentImportTaskDao, StudentImportTaskEntity> implements StudentImportTaskService {
 
     @Autowired
     private StudentImportAsyncService asyncImportService;
@@ -68,9 +70,22 @@ public class StudentImportTaskServiceImpl extends ServiceImpl<StudentImportTaskD
 
     @Override
     public PageResult<StudentImportTaskVO> page(PagerReq req) {
-        IPage<StudentImportTaskVO> page = this.baseMapper
-                .page(new Page<StudentImportTaskVO>(req.getPageNumber(), req.getPageSize()), req);
+        IPage<StudentImportTaskVO> page = this.baseMapper.page(new Page<StudentImportTaskVO>(req.getPageNumber(), req.getPageSize()), req);
         return PageUtil.of(page);
     }
 
+    @Override
+    public List<StudentImportTaskExport> exportPage(Long id) {
+        List<StudentImportTaskExport> exportList = new ArrayList<StudentImportTaskExport>();
+        StudentImportTaskEntity importTask = getById(id);
+        if (importTask != null && StringUtils.isNotEmpty(importTask.getMessage())) {
+            ApplyTaskEntity task = applyTaskService.getById(importTask.getApplyTaskId());
+            StudentImportTaskExport taskExport = new StudentImportTaskExport();
+            taskExport.setMessage(importTask.getMessage());
+            taskExport.setTaskName(task.getName());
+            exportList.add(taskExport);
+        }
+        return exportList;
+    }
+
 }