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.dto.PatentDTO; import cn.cslg.pas.common.model.dto.UploadFileDTO; import cn.cslg.pas.common.utils.*; import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils; import cn.cslg.pas.common.utils.auth.checkAuth; import cn.cslg.pas.domain.Patent; import cn.cslg.pas.common.model.vo.*; import cn.cslg.pas.domain.PatentRight; import cn.cslg.pas.service.*; import cn.dev33.satoken.stp.StpUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.apache.commons.compress.utils.IOUtils; import org.apache.tomcat.util.http.fileupload.disk.DiskFileItem; import org.springframework.context.annotation.Lazy; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.util.Collections; import java.util.List; /** *
* 专利 前端控制器 *
* * @author 王岩 * @since 2021-12-24 */ @Tag(name = "专利") @RestController @RequestMapping(Constants.API_VERSION_V2 + "/patent") @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class PatentController { private final PatentService patentService; private final ProjectPatentLinkService projectPatentLinkService; private final TaskService taskService; private final CacheUtils cacheUtils; private final ProjectFieldPatentLinkService projectFieldPatentLinkService; private final LoginUtils loginUtils; private final PatentRightService patentRightService; private final FileUtils fileUtils; @GetMapping("/read/total") @Operation(summary = "专利阅读状态统计") public String getPatentReadTotal(PatentReadVO params) { return Response.success(projectPatentLinkService.getPatentReadTotal(params)); } @checkAuth(FunId = "/workspace/folder/isRead") @Permission(roles = {2}) @PostMapping("/read/update") @Operation(summary = "修改专利阅读状态") public String updatePatentReadStatus(@RequestBody PatentReadVO params) { return Response.success(projectPatentLinkService.updatePatentReadStatus(params)); } @PostMapping("list") @Operation(summary = "专利列表") public String getList(@RequestBody PatentVO params) { return Response.success(patentService.getPageList(params)); } @GetMapping("{id}") @Operation(summary = "根据ID获取专利") public String getPatentById(@PathVariable Integer id, Integer projectId) { return Response.success(patentService.getPatentDTOById(id, projectId)); } @GetMapping("patentNo") @Operation(summary = "根据专利号获取专利所有信息") public String getPatentIdByPatentNo(String patentNo) { PatentDTO patentDTO =patentService.getPatentDTOById(patentNo); return Response.success(patentDTO); } @GetMapping("id") @Operation(summary = "根据专利号获取专利") public String getPatentByPatentNo(String patentNo) { Patent patent = patentService.getByPatentNo(patentNo); return Response.success(patent); } @PostMapping("ids") @Operation(summary = "根据范围获取专利ID") public String getPatentListIds(@RequestBody PatentVO params) { return Response.success(patentService.getPatentListIds(params)); } @checkAuth(FunId = "/workspace/folder/exportPatent") @PostMapping("export") @Operation(summary = "导出专利") public String export(@RequestBody PatentExportParams params) { String id = cacheUtils.getSelectPatentIds(params.getKey()); List