|
@@ -12,13 +12,13 @@ import com.qmth.sop.business.cache.CommonCacheService;
|
|
|
import com.qmth.sop.business.entity.BasicAttachment;
|
|
|
import com.qmth.sop.business.entity.SysConfig;
|
|
|
import com.qmth.sop.business.entity.SysUser;
|
|
|
+import com.qmth.sop.business.entity.TBTask;
|
|
|
import com.qmth.sop.business.service.BasicAttachmentService;
|
|
|
import com.qmth.sop.business.service.SysUserService;
|
|
|
+import com.qmth.sop.business.service.TBTaskService;
|
|
|
+import com.qmth.sop.business.util.ImportExportUtil;
|
|
|
import com.qmth.sop.common.contant.SystemConstant;
|
|
|
-import com.qmth.sop.common.enums.AppSourceEnum;
|
|
|
-import com.qmth.sop.common.enums.ExceptionResultEnum;
|
|
|
-import com.qmth.sop.common.enums.LoginTypeEnum;
|
|
|
-import com.qmth.sop.common.enums.UploadFileEnum;
|
|
|
+import com.qmth.sop.common.enums.*;
|
|
|
import com.qmth.sop.common.util.Result;
|
|
|
import com.qmth.sop.common.util.ResultUtil;
|
|
|
import com.qmth.sop.common.util.ServletUtil;
|
|
@@ -33,12 +33,16 @@ import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.validation.Valid;
|
|
|
+import java.io.File;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.InputStream;
|
|
|
import java.security.NoSuchAlgorithmException;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -64,6 +68,12 @@ public class SysController {
|
|
|
@Resource
|
|
|
BasicAttachmentService basicAttachmentService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ ImportExportUtil importExportUtil;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ TBTaskService tbTaskService;
|
|
|
+
|
|
|
@ApiOperation(value = "登录")
|
|
|
@RequestMapping(value = "/login", method = RequestMethod.POST)
|
|
|
@ApiResponses({@ApiResponse(code = 200, message = "用户信息", response = LoginResult.class)})
|
|
@@ -145,14 +155,45 @@ public class SysController {
|
|
|
@ApiOperation(value = "下载导入模板")
|
|
|
@RequestMapping(value = "/download_import_template", method = RequestMethod.POST)
|
|
|
@ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
|
|
|
- public void downloadImportTemplate(@RequestParam(value = "type") String type, HttpServletResponse response) {
|
|
|
-// List<String> templateEnums = Stream.of(ImportTemplateEnum.values()).map(m -> m.name()).collect(Collectors.toList());
|
|
|
-// if (!templateEnums.contains(type)) {
|
|
|
-// throw ExceptionResultEnum.ERROR.exception("不支持的模板类型");
|
|
|
-// }
|
|
|
-// ImportTemplateEnum importTemplateEnum = ImportTemplateEnum.valueOf(type);
|
|
|
-// InputStream inputStream = this.getClass().getResourceAsStream(File.separator + "temps" + File.separator + importTemplateEnum.getTemplateName());
|
|
|
-// // 导出
|
|
|
-// FileUtil.outputFile(response, inputStream, importTemplateEnum.getFileName());
|
|
|
+ public void downloadImportTemplate(@ApiParam(value = "模版类型", required = true) @RequestParam ImportTemplateEnum type) throws IOException {
|
|
|
+ List<ImportTemplateEnum> templateEnums = Stream.of(ImportTemplateEnum.values()).map(m -> m).collect(Collectors.toList());
|
|
|
+ if (!templateEnums.contains(type)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("不支持的模板类型");
|
|
|
+ }
|
|
|
+ InputStream inputStream = this.getClass().getResourceAsStream(File.separator + SystemConstant.STATIC + File.separator + type.getTemplateName());
|
|
|
+ // 导出
|
|
|
+ importExportUtil.outputFile(inputStream, type.getFileName());
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "文件下载接口")
|
|
|
+ @RequestMapping(value = "/file/download", method = RequestMethod.POST)
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
|
|
|
+ public Result fileDownload(@ApiParam(value = "任务id", required = true) @RequestParam Long taskId,
|
|
|
+ @ApiParam(value = "下载文件类型", required = true) @RequestParam DownloadFileEnum type) throws Exception {
|
|
|
+ TBTask tbTask = tbTaskService.getById(taskId);
|
|
|
+ Optional.ofNullable(tbTask).orElseThrow(() -> ExceptionResultEnum.TASK_NO_DATA.exception());
|
|
|
+ String path = null;
|
|
|
+ switch (type) {
|
|
|
+ case IMPORT_FILE:
|
|
|
+ path = tbTask.getImportFilePath();
|
|
|
+ break;
|
|
|
+ case REPORT_FILE:
|
|
|
+ path = tbTask.getReportFilePath();
|
|
|
+ break;
|
|
|
+ case EXPORT_FILE:
|
|
|
+ path = tbTask.getResultFilePath();
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ Optional.ofNullable(path).orElseThrow(() -> ExceptionResultEnum.PATH_NO_DATA.exception());
|
|
|
+ return ResultUtil.ok(new EditResult(basicAttachmentService.filePreview(path)));
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "文件预览接口")
|
|
|
+ @RequestMapping(value = "/file/preview", method = RequestMethod.POST)
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
|
|
|
+ public Result filePreview(@ApiParam(value = "附件id", required = true) @RequestParam Long id) throws Exception {
|
|
|
+ return ResultUtil.ok(new EditResult(basicAttachmentService.filePreview(id)));
|
|
|
}
|
|
|
}
|