123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package cn.cslg.pas.controller;
- import cn.cslg.pas.common.core.annotation.Permission;
- import cn.cslg.pas.common.core.base.Constants;
- import cn.cslg.pas.common.model.vo.ImportDataVo;
- import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
- import cn.cslg.pas.common.model.vo.ProjectImportVO;
- import cn.cslg.pas.common.model.vo.TaskParams;
- import cn.cslg.pas.common.utils.*;
- import cn.cslg.pas.service.ProjectImportService;
- import cn.cslg.pas.service.ProjectImportStatusService;
- import cn.cslg.pas.service.ProjectService;
- import cn.cslg.pas.service.UploadSettingTest;
- import cn.dev33.satoken.stp.StpUtil;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import lombok.RequiredArgsConstructor;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.BufferedReader;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.nio.charset.StandardCharsets;
- import java.util.List;
- import java.util.Objects;
- /**
- * <p>
- * 专题库导入 前端控制器
- * </p>
- *
- * @author 王岩
- * @since 2021-12-24
- */
- @Tag(name = "专题库导入")
- @RestController
- @RequestMapping(Constants.API_VERSION_V2 + "/project/import")
- @RequiredArgsConstructor(onConstructor_ = {@Lazy})
- public class ProjectImportController {
- private final ProjectService projectService;
- private final CacheUtils cacheUtils;
- private final ProjectImportService projectImportService;
- private final ProjectImportStatusService projectImportStatusService;
- private final UploadSettingTest uploadSettingTest;
- private final FileUtils fileUtils;
- @Permission(roles = {2})
- @PostMapping("patent")
- @Operation(summary = "为专题库导入专利")
- public String importPatent(MultipartFile file, String json) {
- ProjectImportPatentVO params = JsonUtils.jsonToPojo(json, ProjectImportPatentVO.class);
- if (params == null) {
- return Response.error("参数错误");
- }
- TaskParams taskParams = projectService.getImportPatentTaskParams(file, params.getProjectId());
- projectService.importPatent(taskParams, params);
- String getSettingJson = fileUtils.analysisJsonFile();
- uploadSettingTest.processData(taskParams, params, getSettingJson);
- return Response.success(true);
- }
- @GetMapping("list")
- @Operation(summary = "导入任务列表")
- public String getPageList(ProjectImportVO params) {
- return Response.success(projectImportService.getPageList(params));
- }
- @PostMapping("delete")
- @Operation(summary = "删除导入任务")
- public String delete(Integer id) {
- return projectImportService.delete(id);
- }
- @GetMapping("status")
- @Operation(summary = "获取导入进度")
- public String getProjectImportStatusList(Integer importId) {
- return Response.success(projectImportStatusService.getProjectImportByImportId(importId));
- }
- @Permission(roles = {2})
- @PostMapping
- @Operation(summary = "数据导入")
- public String importData(String url, ProjectImportVO params) {
- Integer userId = StpUtil.getLoginIdAsInt();
- String tempId = cacheUtils.getUserImportId(userId);
- if (StringUtils.isNotEmpty(tempId)) {
- return Response.error("有导入任务在进行中");
- }
- Integer importId = projectImportService.add(userId, url);
- projectService.importData(url, params, userId, importId);
- cacheUtils.setUserImportId(userId, importId);
- return Response.success(importId);
- }
- @GetMapping("ongoing")
- @Operation(summary = "获取用户是否存在导入中的任务")
- public String getProjectImportOngoing() {
- Integer userId = StpUtil.getLoginIdAsInt();
- String tempId = cacheUtils.getUserImportId(userId);
- if (StringUtils.isNotEmpty(tempId)) {
- return Response.success(tempId);
- }
- return Response.success(false);
- }
- }
|