Sfoglia il codice sorgente

7/30 外部检索逻辑更改

lwhhszx 1 anno fa
parent
commit
8088b510be
25 ha cambiato i file con 1191 aggiunte e 282 eliminazioni
  1. 1 1
      src/main/java/cn/cslg/pas/common/config/ElasticSearchClientConfig.java
  2. 1 0
      src/main/java/cn/cslg/pas/common/dto/business/PatentProjectDTO.java
  3. 1 0
      src/main/java/cn/cslg/pas/common/dto/business/UpdatePatentProjectDTO.java
  4. 110 0
      src/main/java/cn/cslg/pas/common/importTask/ImportTaskConditionVO.java
  5. 8 0
      src/main/java/cn/cslg/pas/common/importTask/ProjectQuartzQueryDTO.java
  6. 10 0
      src/main/java/cn/cslg/pas/common/importTask/ProjectQuartzSetDTO.java
  7. 52 0
      src/main/java/cn/cslg/pas/common/importTask/QuartzConditionDTO.java
  8. 0 0
      src/main/java/cn/cslg/pas/common/importTask/QuartzConditionQueryDTO.java
  9. 11 0
      src/main/java/cn/cslg/pas/common/importTask/QuartzConditionRemoveDTO.java
  10. 55 0
      src/main/java/cn/cslg/pas/common/importTask/QuartzConditionUpdateDTO.java
  11. 16 0
      src/main/java/cn/cslg/pas/common/patentProject/ProjectQuartzDTO.java
  12. 41 0
      src/main/java/cn/cslg/pas/common/utils/CronUtil.java
  13. 21 1
      src/main/java/cn/cslg/pas/controller/PatentProjectController.java
  14. 2 0
      src/main/java/cn/cslg/pas/domain/business/PatentProject.java
  15. 187 21
      src/main/java/cn/cslg/pas/service/business/PatentProjectService.java
  16. 102 95
      src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java
  17. 1 1
      src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java
  18. 13 13
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentPDFFromWebThread.java
  19. 8 8
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentPictureFromWebThread.java
  20. 19 53
      src/main/java/cn/cslg/pas/service/importPatent/GetRightAndFullTextFromWebThread.java
  21. 64 65
      src/main/java/cn/cslg/pas/service/importPatent/ImportSinglePatentService.java
  22. 10 0
      src/main/java/cn/cslg/pas/service/importPatent/WebVOTransformService.java
  23. 26 24
      src/main/java/cn/cslg/pas/service/quartzService/JobService.java
  24. 3 0
      src/main/java/cn/cslg/pas/service/quartzService/QrtzTaskDTO.java
  25. 429 0
      src/test/java/cn/cslg/pas/service/WebVoTransformServiceTests.java

+ 1 - 1
src/main/java/cn/cslg/pas/common/config/ElasticSearchClientConfig.java

@@ -56,7 +56,7 @@ public class  ElasticSearchClientConfig {
         public ElasticsearchClient elasticsearchClient() throws Exception {
             RestClientBuilder builder = RestClient.builder(new HttpHost(config, 9200, "http"));
             CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
-            credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "xiaoshi221101"));
+            credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "Xiaoshi221101"));
             SSLContext sslContext = SSLContextBuilder.create()
                     .loadTrustMaterial(new TrustSelfSignedStrategy())
                     .build();

+ 1 - 0
src/main/java/cn/cslg/pas/common/dto/business/PatentProjectDTO.java

@@ -54,4 +54,5 @@ public class PatentProjectDTO {
     @Schema(description = "文件guids")
     private List<String> fileGuids;
     private String personId;
+    private String updateCycle;
 }

+ 1 - 0
src/main/java/cn/cslg/pas/common/dto/business/UpdatePatentProjectDTO.java

@@ -54,4 +54,5 @@ public class UpdatePatentProjectDTO {
     private List<ProjectEventDTO> events;
     @Schema(description = "文件guids")
     private List<String> fileGuids;
+    private String updateCycle;
 }

+ 110 - 0
src/main/java/cn/cslg/pas/common/importTask/ImportTaskConditionVO.java

@@ -0,0 +1,110 @@
+package cn.cslg.pas.common.importTask;
+
+import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author lrj
+ * @Date 2023/8/15
+ */
+@Data
+
+public class ImportTaskConditionVO  {
+    private Integer id;
+    /**
+     * 项目id
+     */
+    private Integer projectId;
+
+    private String patentNos;
+    /**
+     * 项目类型
+     * 0专题库 1报告
+     */
+    private Integer projectType;
+
+    /**
+     * 产品id
+     */
+    private Integer productId;
+
+    /**
+     * 周期
+     */
+    private String crons;
+
+    private String updateCycle;
+
+    /**
+     * 上次更新时间
+     */
+    private Date lastUpdateDate;
+
+    /**
+     * 若是检索导入/专利号导入则必填
+     * 五位数字
+     * 第1著录项目2附图
+     * 3权利要求,4说明书文本,5pdf文档
+     */
+    private Integer importContent;
+
+    /**
+     * 是否更新
+     */
+    private Boolean ifUpdate;
+
+    /**
+     * 条件
+     */
+    private String searchCondition;
+
+    /**
+     * 1excel导入
+     * 2专利号导入
+     * 3专利号文件导入
+     * 4检索导入
+     * 5pdf文档导入
+     */
+    private Integer type;
+
+    /**
+     * 文件guid
+     */
+    private String fileGuid;
+
+    /**
+     * 若是excel导入任务,则使用到配置文件source_id
+     */
+    private Integer sourceId;
+
+    /**
+     * 创建人id
+     */
+
+    private String createId;
+    private String dbType;
+    private String orderByType;
+    private String orderBy;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    private List<EsCustomFieldDTO> fieldDTOS;
+
+    private Integer pdfType;
+
+
+    private String searchSetting;
+
+    private Boolean ifDelete;
+
+
+    private String createName;
+
+}

+ 8 - 0
src/main/java/cn/cslg/pas/common/importTask/ProjectQuartzQueryDTO.java

@@ -0,0 +1,8 @@
+package cn.cslg.pas.common.importTask;
+
+import lombok.Data;
+
+@Data
+public class ProjectQuartzQueryDTO {
+    private Integer projectId;
+}

+ 10 - 0
src/main/java/cn/cslg/pas/common/importTask/ProjectQuartzSetDTO.java

@@ -0,0 +1,10 @@
+package cn.cslg.pas.common.importTask;
+
+import lombok.Data;
+
+@Data
+public class ProjectQuartzSetDTO {
+  private   Integer projectId;
+    private Boolean ifUpdate;
+    private String updateCycle;
+}

+ 52 - 0
src/main/java/cn/cslg/pas/common/importTask/QuartzConditionDTO.java

@@ -0,0 +1,52 @@
+package cn.cslg.pas.common.importTask;
+
+import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QuartzConditionDTO {
+    private  Integer id;
+    /**
+     * 导入id
+     */
+    private Integer importToId;
+
+    private String searchSetting;
+    /**
+     * 周期
+     */
+    private String crons;
+
+    private String updateCycle;
+    /**
+     * 若是检索导入/专利号导入则必填
+     * 五位数字
+     * 第1著录项目2附图
+     * 3权利要求,4说明书文本,5pdf文档
+     */
+    private Integer importContent;
+
+    /**
+     * 是否更新
+     */
+    private Boolean ifUpdate;
+
+    /**
+     * 条件
+     */
+    private String searchCondition;
+
+
+    /**
+     * 检索导入使用的数据库类型(中国or世界)
+     */
+    @JsonProperty(value = "DBType")
+    private String DBType;
+
+    private String orderBy;
+    private String orderByType;
+    private List<EsCustomFieldDTO> fieldDTOS;
+}

+ 0 - 0
src/main/java/cn/cslg/pas/common/importTask/QuartzConditionQueryDTO.java


+ 11 - 0
src/main/java/cn/cslg/pas/common/importTask/QuartzConditionRemoveDTO.java

@@ -0,0 +1,11 @@
+package cn.cslg.pas.common.importTask;
+
+import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QuartzConditionRemoveDTO {
+    private List<Integer> ids;
+}

+ 55 - 0
src/main/java/cn/cslg/pas/common/importTask/QuartzConditionUpdateDTO.java

@@ -0,0 +1,55 @@
+package cn.cslg.pas.common.importTask;
+
+import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QuartzConditionUpdateDTO {
+    private Integer id;
+
+    /**
+     * 导入id
+     */
+    private Integer importToId;
+    /**
+     * 前端检索配置
+     */
+    private String searchSetting;
+
+    /**
+     * 周期
+     */
+    private String crons;
+
+    /**
+     * 若是检索导入/专利号导入则必填
+     * 五位数字
+     * 第1著录项目2附图
+     * 3权利要求,4说明书文本,5pdf文档
+     */
+    private Integer importContent;
+
+    /**
+     * 是否更新
+     */
+    private Boolean ifUpdate;
+
+    /**
+     * 条件
+     */
+    private String searchCondition;
+
+
+    /**
+     * 检索导入使用的数据库类型(中国or世界)
+     */
+    private String dbType;
+
+    private String orderBy;
+    private String orderByType;
+    private List<EsCustomFieldDTO> fieldDTOS;
+    private String updateCycle;
+}

+ 16 - 0
src/main/java/cn/cslg/pas/common/patentProject/ProjectQuartzDTO.java

@@ -0,0 +1,16 @@
+package cn.cslg.pas.common.patentProject;
+
+import cn.cslg.pas.common.vo.PersonSelfFieldVO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 实体类表以及栏位信息
+ */
+@Data
+public class ProjectQuartzDTO {
+    private Integer projectId;
+    private Boolean ifUpdate;
+    private String crons;
+}

+ 41 - 0
src/main/java/cn/cslg/pas/common/utils/CronUtil.java

@@ -0,0 +1,41 @@
+package cn.cslg.pas.common.utils;
+
+
+import cn.cslg.pas.exception.ExceptionEnum;
+import cn.cslg.pas.exception.XiaoShiException;
+import org.springframework.beans.BeanWrapper;
+import org.springframework.beans.BeanWrapperImpl;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class CronUtil {
+    public static String getCron(String cron) {
+        if(cron==null){
+            return null;
+        }
+        switch (cron) {
+            case "week":
+                cron = "0 0 * * 0";
+                break;
+            case "month":
+                cron = "0 0 1 * *";
+                break;
+            case "quarter":
+                cron = "0 0 0 1 1,4,7,10 ?";
+                break;
+            case "year":
+                cron = "0 0 1 1 *";
+                break;
+            default:
+                throw new XiaoShiException(ExceptionEnum.BUSINESS_CHECK,"周期非法输入");
+        }
+        return cron;
+
+    }
+
+}

+ 21 - 1
src/main/java/cn/cslg/pas/controller/PatentProjectController.java

@@ -4,16 +4,21 @@ import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.dto.business.PatentProjectDTO;
 import cn.cslg.pas.common.dto.business.UpdateEventDTO;
 import cn.cslg.pas.common.dto.business.UpdatePatentProjectDTO;
+import cn.cslg.pas.common.importTask.ProjectQuartzQueryDTO;
+import cn.cslg.pas.common.importTask.ProjectQuartzSetDTO;
 import cn.cslg.pas.common.model.addPatentToReport.AddProjectPatentToReportDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.StringGroupRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
+import cn.cslg.pas.common.patentProject.ProjectQuartzDTO;
 import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.domain.business.PatentProject;
 import cn.cslg.pas.exception.ConditionException;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
+import cn.cslg.pas.service.business.PatentProjectService;
 import cn.cslg.pas.service.business.ProjectService;
 import com.alibaba.fastjson.JSONObject;
 import io.swagger.v3.oas.annotations.Operation;
@@ -40,7 +45,8 @@ public class PatentProjectController {
     private BusinessFactory businessFactory;
     @Autowired
     private ProjectService projectService;
-
+    @Autowired
+    private PatentProjectService patentProjectService;
     @Operation(summary = "查询专利数据库")
     @PostMapping("/queryPatentProject")
     public Response queryPatentProject(@RequestBody StringRequest stringRequest) throws Exception {
@@ -126,4 +132,18 @@ public class PatentProjectController {
         projectService.addProjectPatentToReport(addProjectPatentToReportDTO);
         return Response.success();
     }
+
+    @Operation(summary = "设置更新周期")
+    @PostMapping("/setProjectQuartz")
+    public Response setProjectQuartz(@RequestBody ProjectQuartzSetDTO projectQuartzSetDTO) throws Exception {
+        patentProjectService.setProjectQuartz(projectQuartzSetDTO);
+        return  Response.success(true);
+    }
+
+    @Operation(summary = "查询更新周期")
+    @PostMapping("/queryProjectQuartz")
+    public Response queryProjectQuartz(@RequestBody ProjectQuartzQueryDTO projectQuartzDTO) throws Exception {
+        PatentProject patentProject= patentProjectService.queryProjectQuartz(projectQuartzDTO);
+        return  Response.success(patentProject);
+    }
 }

+ 2 - 0
src/main/java/cn/cslg/pas/domain/business/PatentProject.java

@@ -37,4 +37,6 @@ public class PatentProject extends BaseEntity<PatentProject> {
 
     @TableField(value = "status")
     private Integer status;
+
+    private String updateCycle;
 }

+ 187 - 21
src/main/java/cn/cslg/pas/service/business/PatentProjectService.java

@@ -2,11 +2,15 @@ package cn.cslg.pas.service.business;
 
 import cn.cslg.pas.common.dto.ClientDTO;
 import cn.cslg.pas.common.dto.business.*;
+import cn.cslg.pas.common.importTask.ProjectQuartzQueryDTO;
+import cn.cslg.pas.common.importTask.ProjectQuartzSetDTO;
 import cn.cslg.pas.common.model.cronModel.*;
 import cn.cslg.pas.common.model.request.GroupRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
+import cn.cslg.pas.common.patentProject.ProjectQuartzDTO;
 import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.CronUtil;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.DepartmentVO;
 
@@ -15,6 +19,7 @@ import cn.cslg.pas.common.vo.business.PatentProjectVO;
 import cn.cslg.pas.common.vo.business.ReportCountVO;
 import cn.cslg.pas.domain.business.*;
 
+import cn.cslg.pas.exception.ExceptionEnum;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.factorys.businessFactory.Business;
@@ -23,6 +28,9 @@ import cn.cslg.pas.factorys.reGroupFactory.QueryGroupImp;
 import cn.cslg.pas.mapper.PatentProjectMapper;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.permissions.PermissionService;
+import cn.cslg.pas.service.quartzService.JobService;
+import cn.cslg.pas.service.quartzService.QrtzTaskDTO;
+import cn.cslg.pas.service.quartzService.QuartzVO;
 import cn.cslg.pas.service.query.FormatQueryService;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
@@ -100,6 +108,9 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     @Autowired
     private AssoProjectScenarioService assoProjectScenarioService;
 
+    @Autowired
+    private JobService jobService;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
@@ -173,6 +184,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         //TODO 根据id删除导入任务信息(导入任务模块未完成,暂时不做)
 
         //删除专利数据库
+        this.removeQuartz(ids);
         LambdaQueryWrapper<PatentProject> patentProjectLambdaQueryWrapper = new LambdaQueryWrapper<>();
         patentProjectLambdaQueryWrapper.in(PatentProject::getProjectId, ids);
         this.remove(patentProjectLambdaQueryWrapper);
@@ -244,7 +256,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         PatentProjectDTO patentProjectDTO = (PatentProjectDTO) object;
         //判断是否选择更新并且上传了cron表达式
         if (patentProjectDTO.getIfUpdate() != false) {
-            if (patentProjectDTO.getCrons() == null && patentProjectDTO.getCrons().equals("")) {
+            if (patentProjectDTO.getUpdateCycle() == null && patentProjectDTO.getUpdateCycle().equals("")) {
                 throw new XiaoShiException("选择更新,则cron表达式不能为空!");
             }
         }
@@ -254,11 +266,10 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         }
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        if(patentProjectDTO.getPersonId()==null) {
-                personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        if (patentProjectDTO.getPersonId() == null) {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
 
-        }
-        else {
+        } else {
             personnelVO.setId(patentProjectDTO.getPersonId());
             personnelVO.setTenantType("1");
             personnelVO.setTenantId(1);
@@ -311,10 +322,13 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         /**
          * 装载patentProject
          */
-        PatentProject patentProject = new PatentProject();
-        BeanUtils.copyProperties(patentProjectDTO, patentProject);
-        patentProject.setProjectId(project.getId());
-        patentProject.insert();
+        if(patentProjectDTO.getIfUpdate()!=null&&patentProjectDTO.getIfUpdate()){
+            ProjectQuartzSetDTO projectQuartzSetDTO =new ProjectQuartzSetDTO();
+            projectQuartzSetDTO.setProjectId(project.getId());
+            projectQuartzSetDTO.setIfUpdate(patentProjectDTO.getIfUpdate());
+            projectQuartzSetDTO.setUpdateCycle(patentProjectDTO.getUpdateCycle());
+            this.setProjectQuartz(projectQuartzSetDTO);
+        }
 
         /**
          * 装载事件与project关联
@@ -426,7 +440,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         UpdatePatentProjectDTO updatePatentProjectDTO = (UpdatePatentProjectDTO) object;
         //判断是否选择更新并且上传了cron表达式
         if (updatePatentProjectDTO.getIfUpdate() != false) {
-            if (updatePatentProjectDTO.getCrons() == null && updatePatentProjectDTO.getCrons().equals("")) {
+            if (updatePatentProjectDTO.getUpdateCycle() == null && updatePatentProjectDTO.getUpdateCycle().equals("")) {
                 throw new XiaoShiException("选择更新,则cron表达式不能为空!");
             }
         }
@@ -437,7 +451,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
 
-            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
 
         //TODO 更新基本信息
         //根据传入对象id查询project对象
@@ -481,6 +495,12 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
          * 装载patentProject
          */
         //根据projectId查询出patentProject
+            ProjectQuartzSetDTO projectQuartzSetDTO =new ProjectQuartzSetDTO();
+            projectQuartzSetDTO.setProjectId(project.getId());
+            projectQuartzSetDTO.setIfUpdate(updatePatentProjectDTO.getIfUpdate());
+            projectQuartzSetDTO.setUpdateCycle(updatePatentProjectDTO.getUpdateCycle());
+            this.setProjectQuartz(projectQuartzSetDTO);
+
         LambdaQueryWrapper<PatentProject> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(PatentProject::getProjectId, project.getId());
         PatentProject patentProject = this.list(queryWrapper).get(0);
@@ -685,8 +705,8 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
             String res = fileManagerService.getSystemFileFromFMS(guids);
 
             systemFiles = JSONObject.parseArray(res, SystemFile.class);
-            if(systemFiles==null){
-                systemFiles=new ArrayList<>();
+            if (systemFiles == null) {
+                systemFiles = new ArrayList<>();
             }
         }
 
@@ -929,13 +949,159 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         sqls.add(null);
         sqls.add(null);
         List<PatentProjectVO> patentProjectVOS = patentProjectMapper.getPatentProject(sqls.get(0), sqls.get(1), sqls.get(2));
-       try {
-           this.loadPatentProject(patentProjectVOS);
-       }
-    catch (Exception e){}
-       if(patentProjectVOS!=null&&patentProjectVOS.size()>0){
-           return  patentProjectVOS.get(0);
-       }
-       return null;
+        try {
+            this.loadPatentProject(patentProjectVOS);
+        } catch (Exception e) {
+        }
+        if (patentProjectVOS != null && patentProjectVOS.size() > 0) {
+            return patentProjectVOS.get(0);
+        }
+        return null;
+    }
+
+    /**
+     * 设置定时周期
+     *
+     * @param projectQuartzDTO
+     */
+    public void setProjectQuartz(ProjectQuartzDTO projectQuartzDTO) {
+        Integer projectId = projectQuartzDTO.getProjectId();
+        Boolean ifUpdate = projectQuartzDTO.getIfUpdate();
+        String crons = projectQuartzDTO.getCrons();
+        PatentProject patentProject = this.getProjectQuartz(projectId);
+        patentProject.setIfUpdate(ifUpdate);
+        patentProject.setCrons(crons);
+        patentProject.updateById();
+    }
+
+    /**
+     * 获取项目定时配置
+     *
+     * @param projectId
+     */
+    public PatentProject getProjectQuartz(Integer projectId) {
+        LambdaQueryWrapper<PatentProject> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PatentProject::getProjectId, projectId);
+        PatentProject patentProject = this.getOne(queryWrapper);
+        return patentProject;
+    }
+
+    public PatentProject addProjectQuartz(ProjectQuartzSetDTO projectQuartzSetDTO) {
+        Integer projectId = projectQuartzSetDTO.getProjectId();
+        String updateCycle = projectQuartzSetDTO.getUpdateCycle();
+        Boolean ifUpdate = projectQuartzSetDTO.getIfUpdate();
+        PatentProject project = new PatentProject();
+        project.setProjectId(projectId);
+        project.setIfUpdate(projectQuartzSetDTO.getIfUpdate());
+        project.setUpdateCycle(updateCycle);
+        if (ifUpdate != null && ifUpdate) {
+            String crons = CronUtil.getCron(updateCycle);
+            if (crons == null) {
+                throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "请输入周期");
+            }
+            project.setCrons(crons);
+            QuartzVO quartzVO = jobService.getPatentProjectVO(projectId);
+            QrtzTaskDTO qrtzTaskDTO = new QrtzTaskDTO();
+            qrtzTaskDTO.setCron(crons);
+            qrtzTaskDTO.setQuartzVO(quartzVO);
+            try {
+                jobService.addJob(qrtzTaskDTO);
+            } catch (Exception e) {
+                throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "新建定时任务错误");
+            }
+            project.updateById();
+        }
+        return project;
+    }
+
+    public PatentProject updateProjectQuartz(ProjectQuartzSetDTO projectQuartzSetDTO) {
+        Integer projectId = projectQuartzSetDTO.getProjectId();
+        String updateCycle = projectQuartzSetDTO.getUpdateCycle();
+        Boolean ifUpdate = projectQuartzSetDTO.getIfUpdate();
+        PatentProject project = this.getProjectQuartz(projectId);
+        String crons = null;
+        project.setUpdateCycle(updateCycle);
+        project.setIfUpdate(ifUpdate);
+        if (ifUpdate != null && ifUpdate) {
+            crons = CronUtil.getCron(updateCycle);
+            project.setCrons(crons);
+        }
+
+        if (project.getIfUpdate() != null && project.getIfUpdate() && (ifUpdate == null || !ifUpdate)) {
+            QuartzVO quartzVO = jobService.getPatentProjectVO(projectId);
+            try {
+                jobService.deleteJob(quartzVO);
+            } catch (Exception e) {
+                throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "新建定时任务错误");
+            }
+        } else if (project.getIfUpdate() != null && project.getIfUpdate() && ifUpdate != null && ifUpdate == false) {
+            if (project.getUpdateCycle().equals(updateCycle)) {
+                return project;
+            }
+            QuartzVO quartzVO = jobService.getPatentProjectVO(projectId);
+            QrtzTaskDTO qrtzTaskDTO = new QrtzTaskDTO();
+            qrtzTaskDTO.setCron(crons);
+            qrtzTaskDTO.setQuartzVO(quartzVO);
+            jobService.updateJob(qrtzTaskDTO);
+        } else if ((project.getIfUpdate() == null || !project.getIfUpdate()) && (ifUpdate != null && ifUpdate)) {
+            QuartzVO quartzVO = jobService.getPatentProjectVO(projectId);
+            QrtzTaskDTO qrtzTaskDTO = new QrtzTaskDTO();
+            qrtzTaskDTO.setCron(crons);
+            qrtzTaskDTO.setQuartzVO(quartzVO);
+            try {
+                jobService.addJob(qrtzTaskDTO);
+            } catch (Exception e) {
+                throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "新建定时任务错误");
+            }
+        }
+        project.updateById();
+        return project;
+    }
+
+    /**
+     * 设置项目定时配置
+     *
+     * @param projectQuartzSetDTO
+     */
+    public PatentProject setProjectQuartz(ProjectQuartzSetDTO projectQuartzSetDTO) {
+        Integer projectId = projectQuartzSetDTO.getProjectId();
+        PatentProject project = this.getProjectQuartz(projectId);
+        if (project == null) {
+            this.addProjectQuartz(projectQuartzSetDTO);
+        } else {
+            this.updateProjectQuartz(projectQuartzSetDTO);
+        }
+        return project;
+    }
+
+    public Boolean checkIfHaveQuartz(Integer projectId) {
+        PatentProject project = this.getProjectQuartz(projectId);
+        return project.getIfUpdate();
+    }
+
+    public void removeQuartz(List<Integer> ids) {
+        for (Integer id : ids) {
+            PatentProject project = this.getProjectQuartz(id);
+            if (project.getIfUpdate() != null && project.getIfUpdate()) {
+                QuartzVO quartzVO = jobService.getPatentProjectVO(id);
+          try {
+              jobService.deleteJob(quartzVO);
+
+          }
+          catch (Exception e){
+              throw  new XiaoShiException(ExceptionEnum.BUSINESS_ERROR,"创建定时任务错误");
+          }
+            }
+        }
+
+    }
+
+
+    public PatentProject queryProjectQuartz(ProjectQuartzQueryDTO projectQuartzQueryDTO) {
+        Integer projectId =projectQuartzQueryDTO.getProjectId();
+        LambdaQueryWrapper<PatentProject> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PatentProject::getProjectId, projectId);
+        PatentProject patentProject = this.getOne(queryWrapper);
+        return patentProject;
     }
 }

+ 102 - 95
src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java

@@ -574,8 +574,11 @@ System.out.println("search time:"+(end-start));
         }
         List<String> reStrs = new ArrayList<>();
         Integer count = 1;
+
         for (Element item : elements) {
             String claim = item.getText().replaceAll("<br/>", "");
+
+
             if (!claim.trim().equals("技术领域")
                     && !claim.trim().equals("发明内容")
                     && !claim.trim().equals("附图说明")
@@ -691,6 +694,7 @@ System.out.println("search time:"+(end-start));
      * 从专利之星获取同族专利
      */
     public String getFamilyByPubNoApi(String patentNo) {
+        patentNo="CN217038881U";
         String url = "https://api.patentstar.com.cn/api/Patent/FamilyByPubNo/" + patentNo;
         JSONObject configObject = this.getConfigObject(4, 2);
         String appId = configObject.getString("appId");
@@ -869,30 +873,30 @@ System.out.println("search time:"+(end-start));
         starPatentVOS.forEach(item -> {
             PatentColumnDTO patentColumnDTO = new PatentColumnDTO();
             //申请号
-            patentColumnDTO.setAppNo(item.getApplicationNo());
+            patentColumnDTO.setAppNo(item.getAN());
             //装载公开号
-            patentColumnDTO.setPublicNo(item.getPublicNo());
+            patentColumnDTO.setPublicNo(item.getPN());
             //装载公告号
-            patentColumnDTO.setGrantNo(item.getPublicAccreditNo());
+            patentColumnDTO.setGrantNo(item.getGN());
             //装载专利状态
             if (item.getLG() != null) {
                 patentColumnDTO.setSimpleStatus(item.getLG().toString());
             }
             //装载专利类型
-            if (item.getPatentType() != null) {
-                patentColumnDTO.setPatentType(item.getPatentType().toString());
+            if (item.getPT() != null) {
+                patentColumnDTO.setPatentType(item.getPT().toString());
             }
             //装载摘要
             List<Text> abstractList = new ArrayList<>();
             Text text = new Text();
-            text.setTextContent(item.getAbstractStr());
+            text.setTextContent(item.getAB());
             text.setIfOrigin(true);
             abstractList.add(text);
             patentColumnDTO.setAbstractStr(abstractList);
             //装载标题
             List<Text> titleList = new ArrayList<>();
             Text title = new Text();
-            title.setTextContent(item.getName());
+            title.setTextContent(item.getTI());
             title.setIfOrigin(true);
             titleList.add(title);
 //            text.setLanguage(patent.getAppCountry());
@@ -900,7 +904,7 @@ System.out.println("search time:"+(end-start));
             //装载权利要求
             List<Text> claimList = new ArrayList<>();
             Text claim = new Text();
-            claim.setTextContent(item.getClaimStr());
+            claim.setTextContent(item.getCL());
             claim.setIfOrigin(true);
             claimList.add(claim);
             patentColumnDTO.setClaim(claimList);
@@ -919,94 +923,94 @@ System.out.println("search time:"+(end-start));
                 }
             }
 
-            //装载申请日
-            if (item.getApplicationDate() != null && !item.getApplicationDate().trim().equals("")) {
-                patentColumnDTO.setAppDate(DateUtils.strToDate(item.getApplicationDate()));
-            }
+//            //装载申请日
+//            if (item.getAD() != null && !item.getAD().trim().equals("")) {
+//                patentColumnDTO.setAppDate(DateUtils.strToDate(item.getAD()));
+//            }
+////            patentColumnDTO.setAppCountry(item.getBureau());
+//            //装载申请人地址
+//            PersonAddress appAddress = new PersonAddress();
+//            appAddress.setAddress(item.getApplicationAddress());
+//            appAddress.setProvince(item.getProvinceStr());
+//            patentColumnDTO.setApplicantAddr(appAddress);
+//            patentColumnDTO.setAppAddress(item.getApplicationAddress());
+////            patentColumnDTO.setApplicantCountry(item.getProvinceStr());
+//            String provinceStr = item.getProvinceStr();
+//            if (provinceStr.contains("(") && provinceStr.contains(")")) {
+//                String substring = provinceStr.substring(provinceStr.indexOf("(") + 1, provinceStr.indexOf(")"));
+//                patentColumnDTO.setAppProvince(substring);
+//            }
+//            //装载ipc(主)分类号
+//            PatentClassify mipcClassify = new PatentClassify();
+//            mipcClassify.setLevel5(item.getMainIpc());
+//            patentColumnDTO.setMipc(mipcClassify);
+//            //装载ipc分类号
+//            List<PatentClassify> classifies = new ArrayList<>();
+//            String[] split = item.getIpcListStr().split(";");
+//            for (String ipc : split) {
+//                PatentClassify ipcClassify = new PatentClassify();
+//                ipcClassify.setLevel5(ipc);
+//            }
+//            patentColumnDTO.setIpc(classifies);
+//            //获取摘要附图
+////            String pictureApi = this.getPictureApi(item.getRowApplicationNo());
+////            patentColumnDTO.setPictureGuid(pictureApi);
+//            //获取外部专利原始申请号
+//            patentColumnDTO.setRowApplicationNo(item.getRowApplicationNo());
+//            //获取法律状态
+////            String cnLegalApi = this.getCnLegalApi(item.getRowApplicationNo());
+////            patentColumnDTO.setLegalStatus(Arrays.asList(cnLegalApi));
+//            //获取被引用次数
+//            //装载公开日
+//            if (item.getPublicDate() != null && !item.getPublicDate().trim().equals("")) {
+//                patentColumnDTO.setPublicDate(DateUtils.strToDate(item.getPublicDate()));
+//            }
+//
+//            //装载公开日
+//            if (item.getPublicAccreditDate() != null && !item.getPublicAccreditDate().trim().equals("")) {
+//                patentColumnDTO.setGrantDate(DateUtils.strToDate(item.getPublicAccreditDate()));
+//            }
+//
+//            //装载申请人
+//            if (item.getApplicantStr() != null && !item.getApplicantStr().trim().equals("")) {
+//                List<String> names = Arrays.asList(item.getApplicantStr().split(";"));
+//                patentColumnDTO.setApplicant(names);
+//            } else {
+//                patentColumnDTO.setApplicant(new ArrayList<>());
+//            }
+//
+//            //装载发明人
+//            if (item.getInventorStr() != null && !item.getInventorStr().trim().equals("")) {
+//                List<String> names = Arrays.asList(item.getInventorStr().split(";"));
+//                patentColumnDTO.setInventor(names);
+//            } else {
+//                patentColumnDTO.setInventor(new ArrayList<>());
+//            }
+//
+//            //装载权利人
+//            if (item.getCurrentApplicantStr() != null && !item.getCurrentApplicantStr().trim().equals("")) {
+//                List<String> names = Arrays.asList(item.getCurrentApplicantStr().split(";"));
+//                patentColumnDTO.setRightHolder(names);
+//            } else {
+//                patentColumnDTO.setRightHolder(new ArrayList<>());
+//            }
+//
+//            //装载代理人
+//            if (item.getAgentStr() != null && !item.getAgentStr().trim().equals("")) {
+//                List<String> names = Arrays.asList(item.getAgentStr().split(";"));
+//                patentColumnDTO.setAgent(names);
+//            } else {
+//                patentColumnDTO.setAgent(new ArrayList<>());
+//            }
+//
+//            //装载代理机构
+//            if (item.getAgencyStr() != null && !item.getAgencyStr().trim().equals("")) {
+//                patentColumnDTO.setAgency(item.getAgencyStr());
+//            }
+//            //装载优先权
+//            patentColumnDTO.setPriorityNo(item.getPriorityNo());
+//            patentColumnDTO.setPriorityDate(item.getPriorityDate());
 //            patentColumnDTO.setAppCountry(item.getBureau());
-            //装载申请人地址
-            PersonAddress appAddress = new PersonAddress();
-            appAddress.setAddress(item.getApplicationAddress());
-            appAddress.setProvince(item.getProvinceStr());
-            patentColumnDTO.setApplicantAddr(appAddress);
-            patentColumnDTO.setAppAddress(item.getApplicationAddress());
-//            patentColumnDTO.setApplicantCountry(item.getProvinceStr());
-            String provinceStr = item.getProvinceStr();
-            if (provinceStr.contains("(") && provinceStr.contains(")")) {
-                String substring = provinceStr.substring(provinceStr.indexOf("(") + 1, provinceStr.indexOf(")"));
-                patentColumnDTO.setAppProvince(substring);
-            }
-            //装载ipc(主)分类号
-            PatentClassify mipcClassify = new PatentClassify();
-            mipcClassify.setLevel5(item.getMainIpc());
-            patentColumnDTO.setMipc(mipcClassify);
-            //装载ipc分类号
-            List<PatentClassify> classifies = new ArrayList<>();
-            String[] split = item.getIpcListStr().split(";");
-            for (String ipc : split) {
-                PatentClassify ipcClassify = new PatentClassify();
-                ipcClassify.setLevel5(ipc);
-            }
-            patentColumnDTO.setIpc(classifies);
-            //获取摘要附图
-//            String pictureApi = this.getPictureApi(item.getRowApplicationNo());
-//            patentColumnDTO.setPictureGuid(pictureApi);
-            //获取外部专利原始申请号
-            patentColumnDTO.setRowApplicationNo(item.getRowApplicationNo());
-            //获取法律状态
-//            String cnLegalApi = this.getCnLegalApi(item.getRowApplicationNo());
-//            patentColumnDTO.setLegalStatus(Arrays.asList(cnLegalApi));
-            //获取被引用次数
-            //装载公开日
-            if (item.getPublicDate() != null && !item.getPublicDate().trim().equals("")) {
-                patentColumnDTO.setPublicDate(DateUtils.strToDate(item.getPublicDate()));
-            }
-
-            //装载公开日
-            if (item.getPublicAccreditDate() != null && !item.getPublicAccreditDate().trim().equals("")) {
-                patentColumnDTO.setGrantDate(DateUtils.strToDate(item.getPublicAccreditDate()));
-            }
-
-            //装载申请人
-            if (item.getApplicantStr() != null && !item.getApplicantStr().trim().equals("")) {
-                List<String> names = Arrays.asList(item.getApplicantStr().split(";"));
-                patentColumnDTO.setApplicant(names);
-            } else {
-                patentColumnDTO.setApplicant(new ArrayList<>());
-            }
-
-            //装载发明人
-            if (item.getInventorStr() != null && !item.getInventorStr().trim().equals("")) {
-                List<String> names = Arrays.asList(item.getInventorStr().split(";"));
-                patentColumnDTO.setInventor(names);
-            } else {
-                patentColumnDTO.setInventor(new ArrayList<>());
-            }
-
-            //装载权利人
-            if (item.getCurrentApplicantStr() != null && !item.getCurrentApplicantStr().trim().equals("")) {
-                List<String> names = Arrays.asList(item.getCurrentApplicantStr().split(";"));
-                patentColumnDTO.setRightHolder(names);
-            } else {
-                patentColumnDTO.setRightHolder(new ArrayList<>());
-            }
-
-            //装载代理人
-            if (item.getAgentStr() != null && !item.getAgentStr().trim().equals("")) {
-                List<String> names = Arrays.asList(item.getAgentStr().split(";"));
-                patentColumnDTO.setAgent(names);
-            } else {
-                patentColumnDTO.setAgent(new ArrayList<>());
-            }
-
-            //装载代理机构
-            if (item.getAgencyStr() != null && !item.getAgencyStr().trim().equals("")) {
-                patentColumnDTO.setAgency(item.getAgencyStr());
-            }
-            //装载优先权
-            patentColumnDTO.setPriorityNo(item.getPriorityNo());
-            patentColumnDTO.setPriorityDate(item.getPriorityDate());
-            patentColumnDTO.setAppCountry(item.getBureau());
             patentColumnDTOS.add(patentColumnDTO);
         });
 
@@ -1136,6 +1140,7 @@ System.out.println("search time:"+(end-start));
      * @return
      */
     public List<Text> getCnFullText(String appNo) {
+        appNo="202410796708";
         List<Text> pubTextList = new ArrayList<>();
         //获取公开说明书
         String cnFullXmlApi = null;
@@ -1332,4 +1337,6 @@ System.out.println("search time:"+(end-start));
         }
         return dto;
     }
+
+
 }

+ 1 - 1
src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java

@@ -65,7 +65,7 @@ public class GetCataloguingFromWebThread extends Thread {
                 String patentZhuLuStr = "";
                 patentStarApiService = applicationContext.getBean(PatentStarApiService.class);
                 WebVOTransformService webVOTransformService = applicationContext.getBean(WebVOTransformService.class);
-                if (starPatentVO.getAB().startsWith("CN")) {
+                if (starPatentVO.getAN().startsWith("CN")) {
                     patentZhuLuStr = patentStarApiService.getCnBibApi(uploadPatentWebDTO.getStarPatentVO().getANO());
                 } else {
                     patentZhuLuStr = patentStarApiService.getENBibApi(uploadPatentWebDTO.getStarPatentVO().getPN());

+ 13 - 13
src/main/java/cn/cslg/pas/service/importPatent/GetPatentPDFFromWebThread.java

@@ -59,17 +59,17 @@ public class GetPatentPDFFromWebThread extends Thread {
             try {
                 String usedPatentNo;
                 StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
-                if (starPatentVO.getPublicNo() != null && !starPatentVO.getPublicNo().equals("")) {
-                    usedPatentNo = starPatentVO.getPublicNo();
+                if (starPatentVO.getPN() != null && !starPatentVO.getPN().equals("")) {
+                    usedPatentNo = starPatentVO.getPN();
                 } else {
-                    usedPatentNo = starPatentVO.getPublicAccreditNo();
+                    usedPatentNo = starPatentVO.getGN();
                 }
 
                 String pdfUrl = "", pdfUrl1 = "", pdfUrl2 = "";
                 //先根据公开号判断国家,若没有公开号再根据申请号判断,调用"获得中国专利pdf"接口,获得1个或2个pdf的url地址
-                if ((starPatentVO.getPublicNo() != null && starPatentVO.getPublicNo().contains("CN")) || (starPatentVO.getPublicNo() == null && starPatentVO.getPatentNo().contains("CN"))) {
+                if ((starPatentVO.getPN() != null && starPatentVO.getPN().contains("CN")) || (starPatentVO.getPN() == null && starPatentVO.getPatentNo().contains("CN"))) {
 
-                    String pdfUrlStr = patentStarApiService.getCnPdfApi(starPatentVO.getRowApplicationNo());
+                    String pdfUrlStr = patentStarApiService.getCnPdfApi(starPatentVO.getANO());
 
                     //若没有取到说明书pdf,则将当前申请号和备注信息存入问题记录表,并返回空对象
                     if (!pdfUrlStr.equals("")) {
@@ -81,17 +81,17 @@ public class GetPatentPDFFromWebThread extends Thread {
                         pdfUrl2 = pdfUrlArr[1].substring(pdfUrlArr[1].indexOf("http"), pdfUrlArr[1].indexOf("?"));
 
                         if (pdfUrl1.contains("0A_CN_0.pdf")) {
-                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 0);
+                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
                             File file1 = FileUtils.getFileByUrl(pdfUrl1);
                             fileManagerService.uploadFileWithGuid(file1, guid1);
-                            String guid2 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 1);
+                            String guid2 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
                             File file2 = FileUtils.getFileByUrl(pdfUrl2);
                             fileManagerService.uploadFileWithGuid(file2, guid2);
                         } else {
-                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 1);
+                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
                             File file1 = FileUtils.getFileByUrl(pdfUrl1);
                             fileManagerService.uploadFileWithGuid(file1, guid1);
-                            String guid2 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 0);
+                            String guid2 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
                             File file2 = FileUtils.getFileByUrl(pdfUrl2);
                             fileManagerService.uploadFileWithGuid(file2, guid2);
                         }
@@ -103,11 +103,11 @@ public class GetPatentPDFFromWebThread extends Thread {
                             pdfUrl1 = pdfUrlStr.substring(pdfUrlStr.indexOf("http"));
                         }
                         if (pdfUrl1.contains("0A_CN_0.pdf")) {
-                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 0);
+                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
                             File file1 = FileUtils.getFileByUrl(pdfUrl1);
                             fileManagerService.uploadFileWithGuid(file1, guid1);
                         } else {
-                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 1);
+                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
                             File file1 = FileUtils.getFileByUrl(pdfUrl1);
                             fileManagerService.uploadFileWithGuid(file1, guid1);
                         }
@@ -116,7 +116,7 @@ public class GetPatentPDFFromWebThread extends Thread {
                 }
                     else {
 
-                        recordQuestionPatent(starPatentVO.getApplicationNo());
+                        recordQuestionPatent(starPatentVO.getAN());
                     }
                 }
                 else {
@@ -129,7 +129,7 @@ public class GetPatentPDFFromWebThread extends Thread {
                         fileManagerService.uploadFileWithGuid(file1, guid1);
                     }
                     else{
-                        recordQuestionPatent(starPatentVO.getApplicationNo());
+                        recordQuestionPatent(starPatentVO.getAN());
 
                     }
                 }

+ 8 - 8
src/main/java/cn/cslg/pas/service/importPatent/GetPatentPictureFromWebThread.java

@@ -57,22 +57,22 @@ public class GetPatentPictureFromWebThread extends Thread {
             }
             UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOs.remove(0);
             try {
-                String usedNo = uploadPatentWebDTO.getStarPatentVO().getPublicNo();
+                String usedNo = uploadPatentWebDTO.getStarPatentVO().getPA();
                 if (usedNo == null) {
-                    usedNo = uploadPatentWebDTO.getStarPatentVO().getPublicAccreditNo();
+                    usedNo = uploadPatentWebDTO.getStarPatentVO().getGN();
                 }
                 if (usedNo.contains("CN")) {
                     PatentStarApiService patentStarApiService = applicationContext.getBean(PatentStarApiService.class);
 
-                    String pictureUrl = patentStarApiService.getPictureApi(uploadPatentWebDTO.getStarPatentVO().getRowApplicationNo());
+                    String pictureUrl = patentStarApiService.getPictureApi(uploadPatentWebDTO.getStarPatentVO().getANO());
 
                     if (pictureUrl != null && !pictureUrl.contains("408")) {
                         File file = FileUtils.getPictureFileByUrl(pictureUrl);
                         FileManagerService fileManagerService = applicationContext.getBean(FileManagerService.class);
-                        String guid = FormatUtil.getPictureFormat(uploadPatentWebDTO.getStarPatentVO().getApplicationNo());
+                        String guid = FormatUtil.getPictureFormat(uploadPatentWebDTO.getStarPatentVO().getANO());
                         fileManagerService.uploadFileWithGuid(file, guid);
                     } else {
-                        recordQuestionPatent(uploadPatentWebDTO.getStarPatentVO().getApplicationNo());
+                        recordQuestionPatent(uploadPatentWebDTO.getStarPatentVO().getANO());
                     }
                 } else {
                     ImportSinglePatentService importSinglePatentService = applicationContext.getBean(ImportSinglePatentService.class);
@@ -80,11 +80,11 @@ public class GetPatentPictureFromWebThread extends Thread {
                     if (bytes != null) {
                         File file = FileUtils.getFileByBytes(bytes, usedNo, "jpg");
                         FileManagerService fileManagerService = applicationContext.getBean(FileManagerService.class);
-                        String guid = FormatUtil.getPictureFormat(uploadPatentWebDTO.getStarPatentVO().getApplicationNo());
+                        String guid = FormatUtil.getPictureFormat(uploadPatentWebDTO.getStarPatentVO().getANO());
                         fileManagerService.uploadFileWithGuid(file, guid);
                         file.delete();
                     } else {
-                        recordQuestionPatent(uploadPatentWebDTO.getStarPatentVO().getApplicationNo());
+                        recordQuestionPatent(uploadPatentWebDTO.getStarPatentVO().getANO());
 
                     }
 
@@ -92,7 +92,7 @@ public class GetPatentPictureFromWebThread extends Thread {
                 taskThread.updateProcess(false, 2, "");
             } catch (Exception e) {
                 taskThread.updateProcess(true, 2, "");
-                recordQuestionPatent(uploadPatentWebDTO.getStarPatentVO().getApplicationNo());
+                recordQuestionPatent(uploadPatentWebDTO.getStarPatentVO().getAN());
 
                 e.printStackTrace();
             }

+ 19 - 53
src/main/java/cn/cslg/pas/service/importPatent/GetRightAndFullTextFromWebThread.java

@@ -43,9 +43,7 @@ public class GetRightAndFullTextFromWebThread extends Thread {
 
     @Override
     public void run() {
-
         while ((!ifProductAll || uploadPatentWebDTOs.size() > 0) && importTaskAMVO.getState().equals(1)) {
-
             try {
                 if (uploadPatentWebDTOs.size() == 0) {
                     taskLock.lock();
@@ -54,32 +52,31 @@ public class GetRightAndFullTextFromWebThread extends Thread {
             } catch (Exception e) {
 
             }
-            if(uploadPatentWebDTOs.size()==0){
+            if (uploadPatentWebDTOs.size() == 0) {
                 break;
             }
             UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOs.remove(0);
             try {
                 StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
-
-                if ((starPatentVO.getPublicNo() != null && starPatentVO.getPublicNo().contains("CN")) || (starPatentVO.getApplicationNo() != null && starPatentVO.getApplicationNo().contains("CN"))|| (starPatentVO.getPublicAccreditNo() != null && starPatentVO.getPublicAccreditNo().contains("CN"))) {
+                Patent patent = uploadPatentWebDTO.getPatent();
+                if ((starPatentVO.getPN() != null && starPatentVO.getPN().contains("CN")) || (starPatentVO.getAN() != null && starPatentVO.getAN().contains("CN")) || (starPatentVO.getGN() != null && starPatentVO.getGN().contains("CN"))) {
                     patentStarApiService = applicationContext.getBean(PatentStarApiService.class);
-                    String cnFullXmlStr = patentStarApiService.getCnFullXmlApi(starPatentVO.getRowApplicationNo());
-                    this.loadClaim(uploadPatentWebDTO, cnFullXmlStr);
-                    ImportSinglePatentService importSinglePatentService =applicationContext.getBean(ImportSinglePatentService.class);
+                    String cnFullXmlStr = patentStarApiService.getCnFullXmlApi(starPatentVO.getANO());
+                    WebVOTransformService webVOTransformService = applicationContext.getBean(WebVOTransformService.class);
+                    webVOTransformService.loadClaim(patent, cnFullXmlStr);
+                    ImportSinglePatentService importSinglePatentService = applicationContext.getBean(ImportSinglePatentService.class);
                     importSinglePatentService.loadFullText(uploadPatentWebDTO, cnFullXmlStr);
                 }
                 //加入es保存队列
-                importFromWebToEsService.loadPatentMessageDone(uploadPatentWebDTO);
+                this.addPatent(uploadPatentWebDTO);
             } catch (Exception e) {
-                importFromWebToEsService.loadPatentMessageDone(uploadPatentWebDTO);
+                this.addPatent(uploadPatentWebDTO);
                 e.printStackTrace();
             }
-            System.out.println("rightDone" + ifProductAll);
         }
         importFromWebToEsService.setPatentToEsProductAll("rightDone");
     }
 
-
     public GetRightAndFullTextFromWebThread(TaskThread taskThread, ImportFromWebToEsService importFromWebToEsService) {
         this.importTaskAMVO = taskThread.getImportTaskAMVO();
         this.importFromWebToEsService = importFromWebToEsService;
@@ -100,46 +97,6 @@ public class GetRightAndFullTextFromWebThread extends Thread {
     }
 
 
-    //装载权利要求
-    private void loadClaim(UploadPatentWebDTO uploadPatentWebDTO, String cnFullXmlStr) {
-        Patent patent = uploadPatentWebDTO.getPatent();
-        try {
-            if (cnFullXmlStr != null && cnFullXmlStr != "") {
-                SAXReader reader = new SAXReader();
-                reader.setEntityResolver(new IgnoreDTDEntityResolver());
-                Reader stringReader = new StringReader(cnFullXmlStr);
-                Document document = reader.read(stringReader);
-                XPath xpath = document.createXPath("//claim-text");
-                List<Element> element = (List<Element>) xpath.selectNodes(document);
-                if (element.size() == 0) {
-                    xpath = document.createXPath("//business:ClaimText");
-                    element = (List<Element>) xpath.selectNodes(document);
-                }
-                List<String> reClaims = new ArrayList<>();
-                element.forEach(item -> {
-                    String claim = item.getText();
-                    claim = claim.replaceAll("\r\n|\r|\n|\t| ", "");
-                    reClaims.add(claim);
-
-                });
-                String reClaim = "";
-                if (reClaims.size() != 0) {
-                    reClaim = cn.cslg.pas.common.utils.StringUtils.join(reClaims, "");
-                }
-                //装载权利要求原文
-                Text text = new Text();
-                text.setLanguage("CN");
-                text.setTextContent(reClaim);
-                text.setIfOrigin(true);
-                patent.setClaim(Arrays.asList(text));
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-
-    }
-
     public void setIfProductAll(Boolean ifProductAll) {
         this.ifProductAll = ifProductAll;
         if (taskLock.tryLock()) {
@@ -147,4 +104,13 @@ public class GetRightAndFullTextFromWebThread extends Thread {
             taskLock.unlock();
         }
     }
-}
+
+    /**
+     * @param uploadPatentWebDTO
+     */
+    public void addPatent(UploadPatentWebDTO uploadPatentWebDTO) {
+        SavePatentToEsThread savePatentToEsThread = importFromWebToEsService.getSavePatentToEsThreadObject();
+        savePatentToEsThread.awakeTask(uploadPatentWebDTO);
+    }
+
+}

+ 64 - 65
src/main/java/cn/cslg/pas/service/importPatent/ImportSinglePatentService.java

@@ -109,7 +109,7 @@ public class ImportSinglePatentService {
 
 
     public PatentWithIdVO addSinglePatent(String patentNo) {
-        PatentWithIdVO patentWithIdVO =new PatentWithIdVO();
+        PatentWithIdVO patentWithIdVO = new PatentWithIdVO();
         StarPatentVO starPatentVO = new StarPatentVO();
         starPatentVO = this.getPatentFromWeb(patentNo);
         if (starPatentVO == null) {
@@ -121,11 +121,11 @@ public class ImportSinglePatentService {
         patentJoin.setName("patent");
         patent.setPatentJoin(patentJoin);
         try {
-             patentWithIdVO = esService.getIdByPatentNo(patent.getPatentNo());
+            patentWithIdVO = esService.getIdByPatentNo(patent.getPatentNo());
             if (patentWithIdVO != null) {
                 return patentWithIdVO;
             }
-            patentWithIdVO =new PatentWithIdVO();
+            patentWithIdVO = new PatentWithIdVO();
             String patentId = esService.addPatent(patent);
             patentWithIdVO.setPatent(patent);
             patentWithIdVO.setId(patentId);
@@ -143,17 +143,17 @@ public class ImportSinglePatentService {
      */
     public Patent getPatentCataloguingFromWeb(StarPatentVO starPatentVO) {
         String patentZhuLuStr = "";
-        if (starPatentVO.getApplicationNo().startsWith("CN")) {
-            patentZhuLuStr = patentStarApiService.getCnBibApi(starPatentVO.getRowApplicationNo());
+        if (starPatentVO.getAN().startsWith("CN")) {
+            patentZhuLuStr = patentStarApiService.getCnBibApi(starPatentVO.getANO());
         } else {
-            patentZhuLuStr = patentStarApiService.getENBibApi(starPatentVO.getPublicNo());
+            patentZhuLuStr = patentStarApiService.getENBibApi(starPatentVO.getPN());
         }
         UploadPatentWebDTO uploadPatentWebDTO = new UploadPatentWebDTO();
         uploadPatentWebDTO.setPatent(new Patent());
         uploadPatentWebDTO.setStarPatentVO(starPatentVO);
         this.loadPatent(uploadPatentWebDTO);
         if (patentZhuLuStr != null && !patentZhuLuStr.trim().equals("") && !patentZhuLuStr.equals("{}") && !patentZhuLuStr.contains("请求不合法")) {
-            if (starPatentVO.getApplicationNo().startsWith("CN")) {
+            if (starPatentVO.getAN().startsWith("CN")) {
                 this.loadCNPatent(patentZhuLuStr, uploadPatentWebDTO.getPatent(), starPatentVO);
                 //装载专利号
                 if (uploadPatentWebDTO.getPatent().getAppNo() != null) {
@@ -186,7 +186,7 @@ public class ImportSinglePatentService {
         StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
 
         //装载专利类型
-        Integer patentType = starPatentVO.getPatentType();
+        Integer patentType = starPatentVO.getPT();
         if (patentType != null) {
             if (patentType.equals(2) || patentType.equals(9)) {
                 patent.setPatentType("1");  //实用新型
@@ -198,16 +198,16 @@ public class ImportSinglePatentService {
         }
 
         //装载申请人地址
-        if (starPatentVO.getApplicationAddress() != null && !starPatentVO.getApplicationAddress().equals("")) {
-            String applicationAddress = starPatentVO.getApplicationAddress();
-            PersonAddress personAddress = AddressSplitter.splitAddress(applicationAddress, starPatentVO.getProvinceStr());
+        if (starPatentVO.getDZ() != null && !starPatentVO.getDZ().equals("")) {
+            String applicationAddress = starPatentVO.getDZ();
+            PersonAddress personAddress = AddressSplitter.splitAddress(applicationAddress, starPatentVO.getCO());
             patent.setApplicantAddr(personAddress);
         }
 
         //装载IPC分类号
-        if (starPatentVO.getIpcListStr() != null && !starPatentVO.getIpcListStr().equals("")) {
+        if (starPatentVO.getIC() != null && !starPatentVO.getIC().equals("")) {
             List<PatentClassify> patentClassifies = new ArrayList<>();
-            List<String> ipcArr = Arrays.asList(starPatentVO.getIpcListStr().split(";"));
+            List<String> ipcArr = Arrays.asList(starPatentVO.getIC().split(";"));
             for (int i = 0; i < ipcArr.size(); i++) {
                 PatentClassify patentClassify = PatentClassifySplitter.split(ipcArr.get(i));
                 patentClassifies.add(patentClassify);
@@ -219,32 +219,32 @@ public class ImportSinglePatentService {
         }
 
         //装载公告日
-        if (starPatentVO.getPublicAccreditDate() != null && !starPatentVO.getPublicAccreditDate().equals("")) {
+        if (starPatentVO.getGN() != null && !starPatentVO.getGN().equals("")) {
 //
 //            patent.setGrantDate();
-            Date date = DateUtils.strToDate(starPatentVO.getPublicAccreditDate());
+            Date date = DateUtils.strToDate(starPatentVO.getGN());
             patent.setGrantDate(date);
         }
 
         //装载摘要
-        if (starPatentVO.getAbstractStr() != null && !starPatentVO.getAbstractStr().equals("")) {
+        if (starPatentVO.getAB() != null && !starPatentVO.getAB().equals("")) {
             Text text = new Text();
             text.setLanguage(patent.getAppCountry());
             text.setIfOrigin(true);
-            text.setTextContent(starPatentVO.getAbstractStr());
+            text.setTextContent(starPatentVO.getAB());
             patent.setAbstractStr(Arrays.asList(text));
         }
 
         //装载申请日
-        if (starPatentVO.getApplicationDate() != null && !starPatentVO.getApplicationDate().equals("")) {
-            Date date = DateUtils.strToDate(starPatentVO.getApplicationDate());
+        if (starPatentVO.getAD() != null && !starPatentVO.getAD().equals("")) {
+            Date date = DateUtils.strToDate(starPatentVO.getAD());
             patent.setAppDate(date);
 
         }
 
         //装载发明人
-        if (starPatentVO.getInventorStr() != null && !starPatentVO.getInventorStr().equals("")) {
-            List<String> patentInventorNames = Arrays.asList(starPatentVO.getInventorStr().split(";"));
+        if (starPatentVO.getIV() != null && !starPatentVO.getIV().equals("")) {
+            List<String> patentInventorNames = Arrays.asList(starPatentVO.getIV().split(";"));
             List<PatentPerson> patentPeople = new ArrayList<>();
             for (int i = 0; i < patentInventorNames.size(); i++) {
                 PatentPerson patentPerson = new PatentPerson();
@@ -257,18 +257,18 @@ public class ImportSinglePatentService {
         }
 
         //装载申请号
-        if (starPatentVO.getApplicationNo() != null && !starPatentVO.getApplicationNo().equals("")) {
-            patent.setAppNo(starPatentVO.getApplicationNo());
-            country = starPatentVO.getApplicationNo().substring(0, 2);
+        if (starPatentVO.getAN() != null && !starPatentVO.getAN().equals("")) {
+            patent.setAppNo(starPatentVO.getAN());
+            country = starPatentVO.getAN().substring(0, 2);
         }
 
         //装载公开号
-        if (starPatentVO.getPublicNo() != null && !starPatentVO.getPublicNo().equals("")) {
-            patent.setPublicNo(starPatentVO.getPublicNo());
+        if (starPatentVO.getPN() != null && !starPatentVO.getPN().equals("")) {
+            patent.setPublicNo(starPatentVO.getPN());
         }
 
-        if (starPatentVO.getPublicAccreditNo() != null && !starPatentVO.getPublicAccreditNo().equals("")) {
-            patent.setGrantNo(starPatentVO.getPublicAccreditNo());
+        if (starPatentVO.getGN() != null && !starPatentVO.getGN().equals("")) {
+            patent.setGrantNo(starPatentVO.getGN());
         }
 
         if (patent.getAppNo().startsWith("CN")) {
@@ -281,8 +281,8 @@ public class ImportSinglePatentService {
             }
         }
         //装载申请人
-        if (starPatentVO.getApplicantStr() != null && !starPatentVO.getApplicantStr().equals("")) {
-            List<String> names = Arrays.asList(starPatentVO.getApplicantStr().split(";"));
+        if (starPatentVO.getPA() != null && !starPatentVO.getPA().equals("")) {
+            List<String> names = Arrays.asList(starPatentVO.getPA().split(";"));
             List<PatentPerson> patentPeople = new ArrayList<>();
             for (int i = 0; i < names.size(); i++) {
                 PatentPerson patentPerson = new PatentPerson();
@@ -295,35 +295,35 @@ public class ImportSinglePatentService {
         }
 
         //装载代理人
-        if (starPatentVO.getAgentStr() != null && !starPatentVO.getAgentStr().equals("")) {
-            List<String> patentAgents = Arrays.asList(starPatentVO.getAgentStr().split(";"));
+        if (starPatentVO.getAT() != null && !starPatentVO.getAT().equals("")) {
+            List<String> patentAgents = Arrays.asList(starPatentVO.getAT().split(";"));
             if (patentAgents != null && patentAgents.size() != 0) {
                 patent.setAgent(patentAgents);
             }
         }
 
-        if (starPatentVO.getAgencyStr() != null && !starPatentVO.getAgencyStr().equals("")) {
-            patent.setAgency(starPatentVO.getAgencyStr());
+        if (starPatentVO.getAGN() != null && !starPatentVO.getAGN().equals("")) {
+            patent.setAgency(starPatentVO.getAGN());
 
         }
         //装载公开日
-        if (starPatentVO.getPublicDate() != null && !starPatentVO.getPublicDate().equals("")) {
-            Date date = DateUtils.strToDate(starPatentVO.getPublicDate());
+        if (starPatentVO.getPD() != null && !starPatentVO.getPD().equals("")) {
+            Date date = DateUtils.strToDate(starPatentVO.getPD());
             patent.setPublicDate(date);
         }
 
         //装载标题
-        if (starPatentVO.getName() != null && !starPatentVO.getName().equals("")) {
+        if (starPatentVO.getTI() != null && !starPatentVO.getTI().equals("")) {
             Text text = new Text();
             text.setLanguage(country);
             text.setIfOrigin(true);
-            text.setTextContent(starPatentVO.getName());
+            text.setTextContent(starPatentVO.getTI());
             patent.setTitle(Arrays.asList(text));
         }
 
         //装载权利人
-        if (starPatentVO.getCurrentApplicantStr() != null && !starPatentVO.getCurrentApplicantStr().equals("")) {
-            List<String> names = Arrays.asList(starPatentVO.getCurrentApplicantStr().split(";"));
+        if (starPatentVO.getPE() != null && !starPatentVO.getPE().equals("")) {
+            List<String> names = Arrays.asList(starPatentVO.getPE().split(";"));
             List<PatentPerson> patentPeople = new ArrayList<>();
             for (int i = 0; i < names.size(); i++) {
                 PatentPerson patentPerson = new PatentPerson();
@@ -353,21 +353,21 @@ public class ImportSinglePatentService {
         }
 
         //装载优先权
-        if (starPatentVO.getPriorityNo() != null && !starPatentVO.getPriorityNo().equals("")) {
+        if (starPatentVO.getPR() != null && !starPatentVO.getPR().equals("")) {
             Priorities priorities = new Priorities();
-            priorities.setPriorityNo(starPatentVO.getPriorityNo());
-            String pCountry = starPatentVO.getApplicationNo().substring(0, 2);
+            priorities.setPriorityNo(starPatentVO.getPR());
+            String pCountry = starPatentVO.getAN().substring(0, 2);
             priorities.setPriorityCountry(pCountry);
             //装载优先权日
-            if (starPatentVO.getPriorityDate() != null && !starPatentVO.getPriorityDate().equals("")) {
-                DateUtils.str2Date(starPatentVO.getPriorityDate());
+            if (starPatentVO.getPRD() != null && !starPatentVO.getPRD().equals("")) {
+                DateUtils.str2Date(starPatentVO.getPRD());
             }
             patent.setPriorities(Arrays.asList(priorities));
         }
 
         //装载受理局
-        if (starPatentVO.getBureau() != null && !starPatentVO.getBureau().equals("")) {
-            patent.setAppCountry(starPatentVO.getBureau());
+        if (starPatentVO.getCO() != null && !starPatentVO.getCO().equals("")) {
+            patent.setAppCountry(starPatentVO.getCO());
         }
     }
 
@@ -381,7 +381,7 @@ public class ImportSinglePatentService {
             //装载申请人地址
             if (patent.getApplicantAddr() == null) {
                 if (chinaPatentZhuLu.getDZ() != null && !chinaPatentZhuLu.getDZ().equals("")) {
-                    PersonAddress personAddress = AddressSplitter.splitAddress(chinaPatentZhuLu.getDZ(), starPatentVO.getProvinceStr());
+                    PersonAddress personAddress = AddressSplitter.splitAddress(chinaPatentZhuLu.getDZ(), starPatentVO.getCO());
                     patent.setApplicantAddr(personAddress);
                     patent.setApplicantAddr(personAddress);
                 }
@@ -554,7 +554,7 @@ public class ImportSinglePatentService {
 
 
     public void getFullXmlStr(Patent patent, StarPatentVO starPatentVO, List<Integer> contents) throws Exception {
-        String cnFullXmlStr = patentStarApiService.getCnFullXmlApi(starPatentVO.getRowApplicationNo());
+        String cnFullXmlStr = patentStarApiService.getCnFullXmlApi(starPatentVO.getANO());
         if (contents.contains(3)) {
             this.loadClaim(patent, cnFullXmlStr);
 
@@ -583,7 +583,6 @@ public class ImportSinglePatentService {
                     String claim = item.getText();
                     claim = claim.replaceAll("\r\n|\r|\n|\t| ", "");
                     reClaims.add(claim);
-
                 });
                 String reClaim = "";
                 if (reClaims.size() != 0) {
@@ -661,21 +660,21 @@ public class ImportSinglePatentService {
     public void getPDFFromWeb(StarPatentVO starPatentVO) throws Exception {
 
         String usedPatentNo;
-        if (starPatentVO.getPublicNo() != null && !starPatentVO.getPublicNo().equals("")) {
-            usedPatentNo = starPatentVO.getPublicNo();
+        if (starPatentVO.getPN() != null && !starPatentVO.getPN().equals("")) {
+            usedPatentNo = starPatentVO.getPN();
         } else {
-            usedPatentNo = starPatentVO.getPublicAccreditNo();
+            usedPatentNo = starPatentVO.getGN();
         }
 
         String pdfUrl = "", pdfUrl1 = "", pdfUrl2 = "";
         //先根据公开号判断国家,若没有公开号再根据申请号判断,调用"获得中国专利pdf"接口,获得1个或2个pdf的url地址
-        if ((starPatentVO.getPublicNo() != null && starPatentVO.getPublicNo().contains("CN")) || (starPatentVO.getPublicNo() == null && starPatentVO.getPatentNo().contains("CN")) || (starPatentVO.getPublicAccreditNo() != null && starPatentVO.getPublicAccreditNo().contains("CN"))) {
+        if ((starPatentVO.getPN() != null && starPatentVO.getPN().contains("CN")) || (starPatentVO.getPN() == null && starPatentVO.getPatentNo().contains("CN")) || (starPatentVO.getGN() != null && starPatentVO.getGN().contains("CN"))) {
 
-            String pdfUrlStr = patentStarApiService.getCnPdfApi(starPatentVO.getRowApplicationNo());
+            String pdfUrlStr = patentStarApiService.getCnPdfApi(starPatentVO.getANO());
 
             //若没有取到说明书pdf,则将当前申请号和备注信息存入问题记录表,并返回空对象
             if (!pdfUrlStr.equals("")) {
-//                        recordQuestionPatent(starPatent.getApplicationNo(), task.getId(), 4);
+//                        recordQuestionPatent(starPatent.getAN(), task.getId(), 4);
 
 
                 if (pdfUrlStr.contains("|http")) {  //若包含公开和授权两个pdf
@@ -686,17 +685,17 @@ public class ImportSinglePatentService {
 
 
                     if (pdfUrl1.contains("0A_CN_0.pdf")) {
-                        String guid1 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 0);
+                        String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
                         File file1 = FileUtils.getFileByUrl(pdfUrl1);
                         fileManagerService.uploadFileWithGuid(file1, guid1);
-                        String guid2 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 1);
+                        String guid2 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
                         File file2 = FileUtils.getFileByUrl(pdfUrl2);
                         fileManagerService.uploadFileWithGuid(file2, guid2);
                     } else {
-                        String guid1 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 1);
+                        String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
                         File file1 = FileUtils.getFileByUrl(pdfUrl1);
                         fileManagerService.uploadFileWithGuid(file1, guid1);
-                        String guid2 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 0);
+                        String guid2 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
                         File file2 = FileUtils.getFileByUrl(pdfUrl2);
                         fileManagerService.uploadFileWithGuid(file2, guid2);
                     }
@@ -707,11 +706,11 @@ public class ImportSinglePatentService {
                         pdfUrl1 = pdfUrlStr.substring(pdfUrlStr.indexOf("http"));
                     }
                     if (pdfUrl1.contains("0A_CN_0.pdf")) {
-                        String guid1 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 0);
+                        String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
                         File file1 = FileUtils.getFileByUrl(pdfUrl1);
                         fileManagerService.uploadFileWithGuid(file1, guid1);
                     } else {
-                        String guid1 = FormatUtil.getPDFFormat(starPatentVO.getApplicationNo(), 1);
+                        String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
                         File file1 = FileUtils.getFileByUrl(pdfUrl1);
                         fileManagerService.uploadFileWithGuid(file1, guid1);
                     }
@@ -722,7 +721,7 @@ public class ImportSinglePatentService {
             pdfUrl = patentStarApiService.getEnPdfApi(usedPatentNo);
             //若没有取到说明书pdf,则将当前申请号和备注信息存入问题记录表,并返回空对象
 //                    if (pdfUrl.equals("") || pdfUrl.equals("{}")) {
-//                        recordQuestionPatent(starPatent.getApplicationNo(), task.getId(), 4);
+//                        recordQuestionPatent(starPatent.getAN(), task.getId(), 4);
 //                        return;
 //                    }
             if (!pdfUrl.equals("")) {
@@ -736,10 +735,10 @@ public class ImportSinglePatentService {
     public void getPictureFromWeb(StarPatentVO starPatentVO) throws Exception {
 
 
-        String pictureUrl = patentStarApiService.getPictureApi(starPatentVO.getRowApplicationNo());
+        String pictureUrl = patentStarApiService.getPictureApi(starPatentVO.getANO());
         if (pictureUrl != null && pictureUrl != "{}") {
             File file = FileUtils.getPictureFileByUrl(pictureUrl);
-            String guid = FormatUtil.getPictureFormat(starPatentVO.getApplicationNo());
+            String guid = FormatUtil.getPictureFormat(starPatentVO.getAN());
             fileManagerService.uploadFileWithGuid(file, guid);
         }
 

+ 10 - 0
src/main/java/cn/cslg/pas/service/importPatent/WebVOTransformService.java

@@ -711,14 +711,23 @@ public class WebVOTransformService {
                 reader.setEntityResolver(new IgnoreDTDEntityResolver());
                 Reader stringReader = new StringReader(cnFullXmlStr);
                 Document document = reader.read(stringReader);
+                XPath xpathRoot = document.createXPath("//business:Claim");
+                List<Element> claimElement = (List<Element>) xpathRoot.selectNodes(document);
+                 for(Element element:claimElement){
+
+                 }
+
                 XPath xpath = document.createXPath("//claim-text");
                 List<Element> element = (List<Element>) xpath.selectNodes(document);
+
+
                 if (element.size() == 0) {
                     xpath = document.createXPath("//business:ClaimText");
                     element = (List<Element>) xpath.selectNodes(document);
                 }
                 List<String> reClaims = new ArrayList<>();
                 element.forEach(item -> {
+                    item.createXPath("")
                     String claim = item.getText();
                     claim = claim.replaceAll("\r\n|\r|\n|\t| ", "");
                     reClaims.add(claim);
@@ -732,6 +741,7 @@ public class WebVOTransformService {
                 text.setLanguage("CN");
                 text.setTextContent(reClaim);
                 text.setIfOrigin(true);
+
                 patent.setClaim(Arrays.asList(text));
 
             }

+ 26 - 24
src/main/java/cn/cslg/pas/service/quartzService/JobService.java

@@ -2,6 +2,7 @@ package cn.cslg.pas.service.quartzService;
 
 import cn.cslg.pas.exception.ExceptionEnum;
 import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.service.exportProject.SavePatentToEsService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
@@ -13,17 +14,14 @@ import org.springframework.transaction.annotation.Transactional;
 @Slf4j
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class JobService {
-
     private final Scheduler scheduler;
-
-
+    private final  static  String PATENT_PROJECT="patent_project";
     /**
      * 删除job
      *
      * @throws SchedulerException
      */
-    public void deleteJob(Integer taskId) throws SchedulerException {
-        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+    public void deleteJob(QuartzVO quartzVO) throws SchedulerException {
         TriggerKey triggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
         scheduler.pauseTrigger(triggerKey);
         scheduler.unscheduleJob(triggerKey);
@@ -36,8 +34,7 @@ public class JobService {
      *
      * @throws SchedulerException
      */
-    public void pauseJob(Integer taskId) throws SchedulerException {
-        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+    public void pauseJob(QuartzVO quartzVO) throws SchedulerException {
         //更新任务条件状态
         JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
         scheduler.pauseJob(jobKey);
@@ -48,8 +45,7 @@ public class JobService {
      *
      * @throws SchedulerException
      */
-    public void resumeJob(Integer taskId) throws SchedulerException {
-        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+    public void resumeJob(QuartzVO quartzVO) throws SchedulerException {
         JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
         scheduler.resumeJob(jobKey);
     }
@@ -61,8 +57,7 @@ public class JobService {
      */
     public void updateJob(QrtzTaskDTO qrtzTask) {
         //更新任务
-
-        QuartzVO quartzVO = this.generateQuartzVO(qrtzTask.getId());
+        QuartzVO quartzVO = qrtzTask.getQuartzVO();
         JobDataMap jobDataMap = new JobDataMap();
         jobDataMap.put("qrtzTask", qrtzTask);
         TriggerKey oldTriggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
@@ -82,17 +77,15 @@ public class JobService {
      * @throws SchedulerException
      */
     @Transactional
-    public void addJob(QrtzTaskDTO qrtzTask) throws SchedulerException {
+    public void addJob (QrtzTaskDTO qrtzTask) throws SchedulerException {
         //添加一条任务记录
-        Class  jobClass= null;
+        Class jobClass = null;
         try {
-              jobClass  = Class.forName(qrtzTask.getJobClass());
-
-        }
-        catch (Exception e){
-            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR,"未找到类");
+            jobClass = Class.forName(qrtzTask.getJobClass());
+        } catch (Exception e) {
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "未找到类");
         }
-        QuartzVO quartzVO = this.generateQuartzVO(qrtzTask.getId());
+        QuartzVO quartzVO = qrtzTask.getQuartzVO();
         JobDataMap jobDataMap = new JobDataMap();
         jobDataMap.put("qrtzTask", qrtzTask);
         CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getCron());
@@ -107,7 +100,6 @@ public class JobService {
                 .usingJobData(jobDataMap)
                 .build();
         scheduler.scheduleJob(jobDetail, trigger);
-
     }
 
 
@@ -118,7 +110,6 @@ public class JobService {
         quartzVO.setTriggerName("Trigger_" + taskId);
         quartzVO.setTriggerGroupName("Default");
         return quartzVO;
-
     }
 
     /**
@@ -126,9 +117,20 @@ public class JobService {
      *
      * @throws SchedulerException
      */
-    public void interruptJob(Integer taskId) throws SchedulerException {
-        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+    public void interruptJob(QuartzVO quartzVO) throws SchedulerException {
         JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
         scheduler.interrupt(jobKey);
     }
-}
+
+    public QuartzVO getPatentProjectVO(Integer projectId) {
+        QuartzVO quartzVO = new QuartzVO();
+        quartzVO.setJobName("Job_" +PATENT_PROJECT+"_"+ projectId);
+        quartzVO.setJobGroupName("Default_"+PATENT_PROJECT);
+        quartzVO.setTriggerName("Trigger_" + PATENT_PROJECT+"_"+projectId);
+        quartzVO.setTriggerGroupName("Default_"+PATENT_PROJECT);
+        return quartzVO;
+    }
+
+
+
+    }

+ 3 - 0
src/main/java/cn/cslg/pas/service/quartzService/QrtzTaskDTO.java

@@ -28,6 +28,9 @@ public class QrtzTaskDTO  implements Serializable {
      */
     private Integer taskType;
 
+
+     private QuartzVO quartzVO;
+
     /**
      * 参数
      */

File diff suppressed because it is too large
+ 429 - 0
src/test/java/cn/cslg/pas/service/WebVoTransformServiceTests.java