PatentController.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package com.example.xiaoshiweixinback.controller;
  2. import com.alibaba.fastjson2.JSONObject;
  3. import com.example.xiaoshiweixinback.business.common.Constants;
  4. import com.example.xiaoshiweixinback.business.common.Response;
  5. import com.example.xiaoshiweixinback.business.common.base.Records;
  6. import com.example.xiaoshiweixinback.business.utils.FileUtils;
  7. import com.example.xiaoshiweixinback.checkLogin.checkLogin;
  8. import com.example.xiaoshiweixinback.entity.dto.esPicture.EsPictureNoDTO;
  9. import com.example.xiaoshiweixinback.entity.dto.esPicture.EsPatentVectorDTO;
  10. import com.example.xiaoshiweixinback.entity.dto.patent.*;
  11. import com.example.xiaoshiweixinback.entity.vo.esPicture.EsPictureNoVo;
  12. import com.example.xiaoshiweixinback.service.importPatent.EsDenseVectorService;
  13. import com.example.xiaoshiweixinback.service.importPatent.EsPatentService;
  14. import com.example.xiaoshiweixinback.service.importPatent.GetPatentFromExcelService;
  15. import com.example.xiaoshiweixinback.service.importPatent.ImportFromWebToEsService;
  16. import io.swagger.v3.oas.annotations.Operation;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.web.bind.annotation.*;
  20. import org.springframework.web.multipart.MultipartFile;
  21. import java.io.File;
  22. import java.io.IOException;
  23. import java.util.List;
  24. @RequestMapping(Constants.XIAOSHI_WEIXINBACK + "/patent")
  25. @RestController
  26. public class PatentController {
  27. @Autowired
  28. private ImportFromWebToEsService importFromWebToEsService;
  29. @Autowired
  30. private EsDenseVectorService esDenseVectorService;
  31. @Autowired
  32. private GetPatentFromExcelService getPatentFromExcelService;
  33. @Autowired
  34. private EsPatentService esPatentService;
  35. //--------------------------- 导入 --------------------------
  36. @Operation(summary = "导入专利")
  37. @GetMapping(value = "/importPatent")
  38. public Response queryPatent(@RequestBody ImportTaskAMVO importTaskAMVO) {
  39. try {
  40. importFromWebToEsService.ImportTask(importTaskAMVO);
  41. } catch (Exception e) {
  42. e.printStackTrace();
  43. }
  44. return Response.success("");
  45. }
  46. @Operation(summary = "excel导入")
  47. @GetMapping(value = "/importPatentE")
  48. public Response importPatentE(String path) {
  49. try {
  50. getPatentFromExcelService.run(path);
  51. } catch (Exception e) {
  52. e.printStackTrace();
  53. }
  54. return Response.success("");
  55. }
  56. //--------------------------- 关于图片的专利检索 --------------------------
  57. @Operation(summary = "根据关键词获取列表(图片用于排序)--zero")
  58. @PostMapping(value = "/getPatentVectors")
  59. public Response getPatentVectors(@RequestParam(value = "vectorDTO", required = false) String vectorDTO, @RequestParam(value = "multipartFile", required = false) MultipartFile multipartFile) throws Exception {
  60. File file = FileUtils.multipartFileToFile(multipartFile);
  61. EsPatentVectorDTO esPatentVectorDTO = new EsPatentVectorDTO();
  62. if (StringUtils.isNotEmpty(vectorDTO)) {
  63. esPatentVectorDTO = JSONObject.parseObject(vectorDTO, EsPatentVectorDTO.class);
  64. }
  65. Records records = esDenseVectorService.getPatentVectors(esPatentVectorDTO, file);
  66. return Response.success(records);
  67. }
  68. @Operation(summary = "根据专利号获取相关图片--zero")
  69. @PostMapping(value = "/getPictureByNo")
  70. public Response getPictureByNo(@RequestBody EsPictureNoDTO pictureNoDTO) throws Exception {
  71. List<EsPictureNoVo> pictureByNo = esDenseVectorService.getPictureByNo(pictureNoDTO);
  72. return Response.success(pictureByNo);
  73. }
  74. //--------------------------- 收藏专利相关 --------------------------
  75. @checkLogin
  76. @Operation(summary = "收藏专利--zero")
  77. @PostMapping(value = "/collectPatent")
  78. public Response collectPatent(@RequestBody CollectPatentDTO patentDTO) {
  79. boolean b = false;
  80. try {
  81. b = esPatentService.collectPatent(patentDTO);
  82. } catch (IOException e) {
  83. return Response.error(e.getMessage());
  84. }
  85. return Response.success(b);
  86. }
  87. @Operation(summary = "查询收藏专利--zero")
  88. @PostMapping(value = "/selectCollectPatent")
  89. public Response selectCollectPatent(@RequestBody SelectCollectPatentDTO patentDTO) throws Exception {
  90. Records records = esPatentService.selectCollectPatent(patentDTO);
  91. return Response.success(records);
  92. }
  93. @Operation(summary = "删除收藏专利--zero")
  94. @PostMapping(value = "/delCollectPatent")
  95. public Response delCollectPatent(@RequestBody DelCollectPatentDTO patentDTO) throws IOException {
  96. boolean b = false;
  97. try {
  98. b = esPatentService.delCollectPatent(patentDTO);
  99. } catch (IOException e) {
  100. return Response.error(e.getMessage());
  101. }
  102. return Response.success(b);
  103. }
  104. //--------------------------- 其他 --------------------------
  105. @Operation(summary = "查询专利(用于导出专利数据)--zero")
  106. @PostMapping(value = "/selectPatent")
  107. public Response selectPatent(@RequestParam(value = "searchQuery", required = false) String searchQuery, @RequestParam(value = "multipartFile", required = false) MultipartFile multipartFile) throws Exception {
  108. File file = FileUtils.multipartFileToFile(multipartFile);
  109. SelectPatentDTO patentDTO = new SelectPatentDTO();
  110. if (StringUtils.isNotEmpty(searchQuery)) {
  111. patentDTO = JSONObject.parseObject(searchQuery, SelectPatentDTO.class);
  112. }
  113. List<PatentColumnDTO> columnDTOS = esPatentService.selectPatent(patentDTO, file);
  114. return Response.success(columnDTOS);
  115. }
  116. }