package com.example.xiaoshiweixinback.controller; import com.alibaba.fastjson2.JSONObject; import com.example.xiaoshiweixinback.business.common.Constants; import com.example.xiaoshiweixinback.business.common.Response; import com.example.xiaoshiweixinback.business.common.base.Records; import com.example.xiaoshiweixinback.business.utils.FileUtils; import com.example.xiaoshiweixinback.entity.dto.esPicture.EsPictureNoDTO; import com.example.xiaoshiweixinback.entity.dto.esPicture.EsPatentVectorDTO; import com.example.xiaoshiweixinback.entity.dto.patent.CollectPatentDTO; import com.example.xiaoshiweixinback.entity.dto.patent.ImportTaskAMVO; import com.example.xiaoshiweixinback.entity.vo.esPicture.EsPictureNoVo; import com.example.xiaoshiweixinback.service.importPatent.EsDenseVectorService; import com.example.xiaoshiweixinback.service.importPatent.EsPatentService; import com.example.xiaoshiweixinback.service.importPatent.GetPatentFromExcelService; import com.example.xiaoshiweixinback.service.importPatent.ImportFromWebToEsService; import io.swagger.v3.oas.annotations.Operation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.util.List; @RequestMapping(Constants.XIAOSHI_WEIXINBACK + "/patent") @RestController public class PatentController { @Autowired private ImportFromWebToEsService importFromWebToEsService; @Autowired private EsDenseVectorService esDenseVectorService; @Autowired private GetPatentFromExcelService getPatentFromExcelService; @Autowired private EsPatentService esPatentService; //--------------------------- 导入 -------------------------- @Operation(summary = "导入专利") @GetMapping(value = "/importPatent") public Response queryPatent(@RequestBody ImportTaskAMVO importTaskAMVO) { try { importFromWebToEsService.ImportTask(importTaskAMVO); } catch (Exception e) { e.printStackTrace(); } return Response.success(""); } @Operation(summary = "excel导入") @GetMapping(value = "/importPatentE") public Response importPatentE(String path) { try { getPatentFromExcelService.run(path); } catch (Exception e) { e.printStackTrace(); } return Response.success(""); } //--------------------------- 关于图片的专利检索 -------------------------- @Operation(summary = "根据关键词获取列表(图片用于排序)--zero") @PostMapping(value = "/getPatentVectors") public Response getPatentVectors(@RequestParam(value = "vectorDTO", required = false) String vectorDTO, @RequestParam(value = "multipartFile", required = false) MultipartFile multipartFile) throws Exception { File file = FileUtils.multipartFileToFile(multipartFile); EsPatentVectorDTO esPatentVectorDTO = new EsPatentVectorDTO(); if (StringUtils.isNotEmpty(vectorDTO)) { esPatentVectorDTO = JSONObject.parseObject(vectorDTO, EsPatentVectorDTO.class); } Records records = esDenseVectorService.getPatentVectors(esPatentVectorDTO, file); return Response.success(records); } @Operation(summary = "根据专利号获取相关图片--zero") @PostMapping(value = "/getPictureByNo") public Response getPictureByNo(@RequestBody EsPictureNoDTO pictureNoDTO) throws Exception { List pictureByNo = esDenseVectorService.getPictureByNo(pictureNoDTO); return Response.success(pictureByNo); } //--------------------------- 收藏专利相关 -------------------------- @Operation(summary = "收藏专利--zero") @PostMapping(value = "/collectPatent") public Response collectPatent(@RequestBody CollectPatentDTO patentDTO) throws Exception { boolean b = esPatentService.collectPatent(patentDTO); return Response.success(b); } //--------------------------- 其他 -------------------------- }