|
@@ -96,7 +96,7 @@ public class EsDenseVectorService {
|
|
|
private EsPatentService esPatentService;
|
|
|
|
|
|
@Autowired
|
|
|
- private VipService vipService;
|
|
|
+ private PatentStarApiService patentStarApiService;
|
|
|
|
|
|
@Autowired
|
|
|
private RedisService redisService;
|
|
@@ -104,7 +104,8 @@ public class EsDenseVectorService {
|
|
|
private String patentVectorName;
|
|
|
@Value("${ES.patent}")
|
|
|
private String patentMapName;
|
|
|
-
|
|
|
+ @Value("${ImageHttp}")
|
|
|
+ private String imageHttp;
|
|
|
private final UseFunctionFactory useFunctionFactory;
|
|
|
private final UseFunctionRecordService useFunctionRecordService;
|
|
|
private static String FACTORY_CLASS = "checkQueryPatent";
|
|
@@ -134,7 +135,7 @@ public class EsDenseVectorService {
|
|
|
}
|
|
|
|
|
|
if (size != -1L && allNum > size) {
|
|
|
- if (assoVipFunction==null||assoVipFunction.getVipType()==null||assoVipFunction.getVipType().equals(0)) {
|
|
|
+ if (assoVipFunction == null || assoVipFunction.getVipType() == null || assoVipFunction.getVipType().equals(0)) {
|
|
|
throw new BusinessException(ExceptionEnum.PERMISSION_NO_VIP, "未开通vip");
|
|
|
} else {
|
|
|
throw new BusinessException(ExceptionEnum.PERMISSION_BEYOND_USETIME, "超过可查看专利数量");
|
|
@@ -247,7 +248,7 @@ public class EsDenseVectorService {
|
|
|
builder.index(patentVectorName);
|
|
|
Query query = QueryBuilders.term(i -> i.field("app_no").value(noDTO.getAppNo()));
|
|
|
builder.query(query);
|
|
|
- builder.size(30);
|
|
|
+ builder.size(300);
|
|
|
SearchResponse<PatentVector> response = client.search(builder.build(), PatentVector.class);
|
|
|
List<Hit<PatentVector>> hits = response.hits().hits();
|
|
|
for (Hit<PatentVector> hit : hits) {
|
|
@@ -462,4 +463,102 @@ public class EsDenseVectorService {
|
|
|
return records;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据专利号获取相关图片
|
|
|
+ *
|
|
|
+ * @param noDTO
|
|
|
+ * @return
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ public List<EsPictureNoVo> getPictureByNo2(EsPictureNoDTO noDTO) throws Exception {
|
|
|
+ List<EsPictureNoVo> pictureNoVos = new ArrayList<>();
|
|
|
+ String no = noDTO.getAppNo();
|
|
|
+ if (no.startsWith("CN")) {
|
|
|
+ no = no.substring(2, 14);
|
|
|
+ System.out.println(no);
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
+ String wgPictureApi = patentStarApiService.getWGPictureApi(no);
|
|
|
+ if (StringUtils.isNotEmpty(wgPictureApi)) {
|
|
|
+ if (wgPictureApi.contains("|http")) {
|
|
|
+ String[] urlArr = wgPictureApi.split("\\|");
|
|
|
+ list.addAll(Arrays.asList(urlArr));
|
|
|
+ } else {
|
|
|
+ list.add(wgPictureApi);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ EsPictureNoVo noVo = new EsPictureNoVo();
|
|
|
+ noVo.setGuid(list.get(i));
|
|
|
+ noVo.setImageIndex(i);
|
|
|
+ pictureNoVos.add(noVo);
|
|
|
+ }
|
|
|
+ return pictureNoVos;
|
|
|
+ }
|
|
|
+ SearchRequest.Builder builder = new SearchRequest.Builder();
|
|
|
+ //设置查询索引
|
|
|
+ builder.index(patentVectorName);
|
|
|
+ Query query = QueryBuilders.term(i -> i.field("app_no").value(noDTO.getAppNo()));
|
|
|
+ builder.query(query);
|
|
|
+ builder.size(30);
|
|
|
+ SearchResponse<PatentVector> response = client.search(builder.build(), PatentVector.class);
|
|
|
+ List<Hit<PatentVector>> hits = response.hits().hits();
|
|
|
+ for (Hit<PatentVector> hit : hits) {
|
|
|
+ PatentVector vector = hit.source();
|
|
|
+ EsPictureNoVo noVo = new EsPictureNoVo();
|
|
|
+ noVo.setGuid(vector.getGuid());
|
|
|
+ noVo.setImageIndex(vector.getImageIndex());
|
|
|
+ pictureNoVos.add(noVo);
|
|
|
+ }
|
|
|
+ return pictureNoVos.stream().sorted(Comparator.comparing(EsPictureNoVo::getImageIndex)).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<EsPictureNoVo> getPictureByNo3(EsPictureNoDTO noDTO) throws Exception {
|
|
|
+ List<EsPictureNoVo> esPictureNoVos = new ArrayList<>();
|
|
|
+ String appNo = noDTO.getAppNo();
|
|
|
+ if (appNo == null) {
|
|
|
+ return esPictureNoVos;
|
|
|
+ }
|
|
|
+ if (appNo.startsWith("CN")) {
|
|
|
+ esPictureNoVos = this.getPictureByNoCN(noDTO);
|
|
|
+ } else {
|
|
|
+ esPictureNoVos = this.getPictureByNoWG(noDTO);
|
|
|
+ }
|
|
|
+ return esPictureNoVos;
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<EsPictureNoVo> getPictureByNoWG(EsPictureNoDTO noDTO) throws Exception {
|
|
|
+ List<EsPictureNoVo> pictureNoVos = new ArrayList<>();
|
|
|
+ SearchRequest.Builder builder = new SearchRequest.Builder();
|
|
|
+ //设置查询索引
|
|
|
+ builder.index(patentVectorName);
|
|
|
+ Query query = QueryBuilders.term(i -> i.field("app_no").value(noDTO.getAppNo()));
|
|
|
+ builder.query(query);
|
|
|
+ builder.size(300);
|
|
|
+ SearchResponse<PatentVector> response = client.search(builder.build(), PatentVector.class);
|
|
|
+ List<Hit<PatentVector>> hits = response.hits().hits();
|
|
|
+ for (Hit<PatentVector> hit : hits) {
|
|
|
+ PatentVector vector = hit.source();
|
|
|
+ EsPictureNoVo noVo = new EsPictureNoVo();
|
|
|
+ noVo.setGuid(imageHttp+vector.getGuid());
|
|
|
+ noVo.setImageIndex(vector.getImageIndex());
|
|
|
+ pictureNoVos.add(noVo);
|
|
|
+ }
|
|
|
+ return pictureNoVos.stream().sorted(Comparator.comparing(EsPictureNoVo::getImageIndex)).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<EsPictureNoVo> getPictureByNoCN(EsPictureNoDTO noDTO) throws Exception {
|
|
|
+ String appNo = noDTO.getAppNo();
|
|
|
+ String[] appNoStrs = appNo.split("\\.");
|
|
|
+ String rowAppNo = appNoStrs[0];
|
|
|
+ rowAppNo = rowAppNo.replace("CN", "");
|
|
|
+ List<String> urls = patentStarApiService.getExternalFigure(rowAppNo);
|
|
|
+ List<EsPictureNoVo> pictureNoVos = new ArrayList<>();
|
|
|
+ for (int i = 0; i < urls.size(); i++) {
|
|
|
+ EsPictureNoVo esPictureNoVo = new EsPictureNoVo();
|
|
|
+ esPictureNoVo.setImageIndex(i);
|
|
|
+ esPictureNoVo.setGuid(urls.get(i));
|
|
|
+ pictureNoVos.add(esPictureNoVo);
|
|
|
+ }
|
|
|
+ return pictureNoVos;
|
|
|
+ }
|
|
|
}
|