浏览代码

7/30 外部检索逻辑更改

lwhhszx 1 年之前
父节点
当前提交
c3a650b98b
共有 29 个文件被更改,包括 775 次插入355 次删除
  1. 16 0
      src/main/java/cn/cslg/pas/common/importTask/QuartzConditionQueryDTO.java
  2. 23 61
      src/main/java/cn/cslg/pas/common/utils/ClaimUtils/ClaimSplitUtils.java
  3. 0 1
      src/main/java/cn/cslg/pas/common/utils/DateUtils.java
  4. 25 0
      src/main/java/cn/cslg/pas/common/utils/DateUtils2.java
  5. 3 3
      src/main/java/cn/cslg/pas/controller/ExportProjectController.java
  6. 53 0
      src/main/java/cn/cslg/pas/controller/ImportTaskConditionController.java
  7. 1 21
      src/main/java/cn/cslg/pas/controller/PatentProjectController.java
  8. 25 0
      src/main/java/cn/cslg/pas/controller/ProjectMonitorSetController.java
  9. 7 0
      src/main/java/cn/cslg/pas/domain/business/ImportTask.java
  10. 8 0
      src/main/java/cn/cslg/pas/domain/business/ImportTaskCondition.java
  11. 3 0
      src/main/java/cn/cslg/pas/domain/business/TreeNode.java
  12. 2 2
      src/main/java/cn/cslg/pas/service/business/CustomFieldService.java
  13. 241 0
      src/main/java/cn/cslg/pas/service/business/ImportTaskConditionService.java
  14. 113 84
      src/main/java/cn/cslg/pas/service/business/ImportTaskService.java
  15. 1 0
      src/main/java/cn/cslg/pas/service/business/PatentProjectService.java
  16. 4 3
      src/main/java/cn/cslg/pas/service/business/TreeNodeService.java
  17. 88 6
      src/main/java/cn/cslg/pas/service/business/es/EsLegalEventService.java
  18. 0 84
      src/main/java/cn/cslg/pas/service/business/es/EsService.java
  19. 8 2
      src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java
  20. 3 1
      src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java
  21. 1 1
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentFromExcelThread.java
  22. 0 1
      src/main/java/cn/cslg/pas/service/importPatent/ImportSinglePatentService.java
  23. 3 3
      src/main/java/cn/cslg/pas/service/importPatent/SavePatentToEsThread.java
  24. 90 18
      src/main/java/cn/cslg/pas/service/importPatent/WebVOTransformService.java
  25. 0 24
      src/main/java/cn/cslg/pas/service/quartzService/ImportJobService.java
  26. 35 0
      src/main/java/cn/cslg/pas/service/quartzService/ImportPatentJobService.java
  27. 1 1
      src/main/resources/application-testNetIn.yml
  28. 10 30
      src/test/java/cn/cslg/pas/service/EsServiceTests.java
  29. 11 9
      src/test/java/cn/cslg/pas/service/WebVoTransformServiceTests.java

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

@@ -0,0 +1,16 @@
+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 QuartzConditionQueryDTO {
+
+    private Integer projectId;
+    private long size;
+    private long current;
+
+}

+ 23 - 61
src/main/java/cn/cslg/pas/common/utils/ClaimUtils/ClaimSplitUtils.java

@@ -45,6 +45,10 @@ public class ClaimSplitUtils {
             if (content == null || content.equals("")) {
                 return patentRights;
             }
+            if(content.contains("@##"))
+            {
+                patentRights = getSplitedRePatentClaim(content);
+            }
             String regex = ClaimSplitUtils.getRegex(country, content);
             if (regex == null) {
                 reDefaultPatentClaim(patentRights, content);
@@ -74,62 +78,6 @@ public class ClaimSplitUtils {
 
     }
 
-//    private static final ArrayList<RePatentClaim> splitPatentRight(String regex, String content) {
-//        //获取拆分信息
-//        List<ClaimSplitVO> claimSplitVOS = ClaimSplitUtils.getClaimSpitVO(regex, content);
-//
-//        String regexNum = "[1-9][0-9]*";
-//        Integer num = 1;
-//        ArrayList<RePatentClaim> patentRights = new ArrayList<>();
-//        Boolean flag = true;
-//        Integer start =0;
-//        Integer end =0;
-//        for (int i = 0; i < claimSplitVOS.size(); i++) {
-////            Integer start = claimSplitVOS.get(i).getPosition();
-////            Integer end = content.length();
-//            String cont = claimSplitVOS.get(i).getContent();
-//            Matcher matcherNum = Pattern.compile(regexNum).matcher(cont);
-//
-//            //查询当前序号
-//            if (matcherNum.find()) {
-//                String a = matcherNum.group();
-//                Integer num2 = Integer.parseInt(a);
-//                if (num2 != num) {
-//                    if (i == 0 && num2.equals(2)) {
-//                        start =claimSplitVOS.get(i).getPosition();
-//                        String str = content.substring(0, start);
-//                        RePatentClaim rePatentClaim = new RePatentClaim();
-//                        rePatentClaim.setSort(num - 1);
-//                        rePatentClaim.setContent(str);
-//                        patentRights.add(rePatentClaim);
-//                        num++;
-//                    } else {
-//                        flag = false;
-//                        break;
-//                    }
-//                }
-//
-//                start =claimSplitVOS.get(i).getPosition();
-//                if (i + 1 < claimSplitVOS.size()) {
-//                    end = claimSplitVOS.get(i + 1).getPosition();
-//                }
-//
-//                String str = content.substring(start, end);
-//                RePatentClaim rePatentClaim = new RePatentClaim();
-//                rePatentClaim.setSort(num - 1);
-//                rePatentClaim.setContent(str);
-//                patentRights.add(rePatentClaim);
-//                num++;
-//            } else {
-//                flag = false;
-//                break;
-//            }
-//        }
-//        if (flag.equals(false) || patentRights.size() == 1) {
-//            reDefaultPatentClaim(patentRights, content);
-//        }
-//        return patentRights;
-//    }
 
 
     private static final ArrayList<RePatentClaim> splitPatentRight(String regex, String content) {
@@ -164,8 +112,8 @@ public class ClaimSplitUtils {
                         num++;
 
                         //最后一个的处理逻辑
-                        if(i+1==claimSplitVOS.size()){
-                            end=content.length();
+                        if (i + 1 == claimSplitVOS.size()) {
+                            end = content.length();
                             String str1 = content.substring(start, end);
                             RePatentClaim rePatentClaim1 = new RePatentClaim();
                             rePatentClaim1.setSort(num - 1);
@@ -177,14 +125,14 @@ public class ClaimSplitUtils {
 
                 } else {
                     if (i == 0 && num2.equals(2)) {
-                        end =claimSplitVOS.get(i).getPosition();
+                        end = claimSplitVOS.get(i).getPosition();
                         String str = content.substring(0, end);
                         RePatentClaim rePatentClaim = new RePatentClaim();
                         rePatentClaim.setSort(num - 1);
                         rePatentClaim.setContent(str);
                         patentRights.add(rePatentClaim);
-                        start =claimSplitVOS.get(i).getPosition();
-                        num+=2;
+                        start = claimSplitVOS.get(i).getPosition();
+                        num += 2;
                     }
                     continue;
                 }
@@ -473,4 +421,18 @@ public class ClaimSplitUtils {
         return nums;
     }
 
+
+    public static final ArrayList<RePatentClaim> getSplitedRePatentClaim(String content) {
+        ArrayList<RePatentClaim> arrayList = new ArrayList<>();
+
+        String[] contents = content.split("@##");
+        for (int i = 0; i < contents.length; i++) {
+            RePatentClaim rePatentClaim = new RePatentClaim();
+            rePatentClaim.setSort(i + 1);
+            rePatentClaim.setContent(contents[i]);
+            arrayList.add(rePatentClaim);
+        }
+        return arrayList;
+
+    }
 }

+ 0 - 1
src/main/java/cn/cslg/pas/common/utils/DateUtils.java

@@ -17,7 +17,6 @@ import java.util.*;
 import java.util.regex.Pattern;
 
 public class DateUtils {
-
     public static final String START_TIME = " 00:00:00";
     public static final String END_TIME = " 23:59:59";
     public final static String FORMAT_STRING = "yyyy-MM-dd HH:mm:ss";

+ 25 - 0
src/main/java/cn/cslg/pas/common/utils/DateUtils2.java

@@ -88,5 +88,30 @@ public class DateUtils2 {
         return dateTimes;
     }
 
+    public static String dateTimeToPatentStr(Date dateTime) {
+        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+        return format.format(dateTime);
+    }
+
+
+    public static Date formStrToDate(String dateString) {
+        try {
+            SimpleDateFormat formatter;
+            if (dateString.contains("-")) {
+                formatter = new SimpleDateFormat("yyyy-MM-dd");
+            } else if (dateString.contains("//")) {
+                formatter = new SimpleDateFormat("yyyy/MM/dd");
+            } else if (dateString.contains(":")) {
+                formatter = new SimpleDateFormat("yyyy:MM:dd");
+            } else if (dateString.contains(".")) {
+                formatter = new SimpleDateFormat("yyyy.MM.dd");
+            } else {
+                formatter = new SimpleDateFormat("yyyyMMdd");
+            }
 
+            return formatter.parse(dateString);
+        } catch (Exception e) {
+            throw new RuntimeException("时间转化格式错误" + "[dateString=" + dateString + "]" + "[FORMAT_STRING=" + FORMAT_STRING + "]");
+        }
+    }
 }

+ 3 - 3
src/main/java/cn/cslg/pas/controller/ExportProjectController.java

@@ -26,9 +26,9 @@ public class ExportProjectController {
     @Autowired
     private ImportProjectService importProjectService;
     @Operation(summary = "查询无效理由")
-    @PostMapping("/writeProjectToFile")
-    public Response writeProjectToFile() {
-        exportProjectService.exportProject(281);
+    @GetMapping("/writeProjectToFile")
+    public Response writeProjectToFile(Integer projectId) {
+        exportProjectService.exportProject(projectId);
         return Response.success("");
     }
 

+ 53 - 0
src/main/java/cn/cslg/pas/controller/ImportTaskConditionController.java

@@ -0,0 +1,53 @@
+package cn.cslg.pas.controller;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.importTask.QuartzConditionDTO;
+import cn.cslg.pas.common.importTask.QuartzConditionQueryDTO;
+import cn.cslg.pas.common.importTask.QuartzConditionRemoveDTO;
+import cn.cslg.pas.common.importTask.QuartzConditionUpdateDTO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.request.StringRequest;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.domain.business.ImportTaskCondition;
+import cn.cslg.pas.factorys.businessFactory.Business;
+import cn.cslg.pas.service.business.ImportTaskConditionService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/importTaskCondition")
+@RestController
+@RequiredArgsConstructor
+public class ImportTaskConditionController {
+private final ImportTaskConditionService importTaskConditionService;
+    @Operation(summary = "添加定时条件")
+    @PostMapping("/addQuartzCondition")
+    public Response addQuartzCondition(@RequestBody QuartzConditionDTO quartzConditionDTO) throws Exception {
+     ImportTaskCondition importTaskCondition = importTaskConditionService.addQuartzCondition(quartzConditionDTO);
+        return Response.success(importTaskCondition.getId());
+    }
+
+    @Operation(summary = "查询定时条件")
+    @PostMapping("/queryQuartzCondition")
+    public Response queryQuartzCondition(@RequestBody QuartzConditionQueryDTO quartzConditionQueryDTO) throws Exception {
+    Records records=importTaskConditionService.queryQuartzCondition(quartzConditionQueryDTO);
+        return Response.success(records);
+    }
+    @Operation(summary = "更新定时条件")
+    @PostMapping("/updateQuartzCondition")
+    public Response updateQuartzCondition(@RequestBody QuartzConditionUpdateDTO quartzConditionUpdateDTO) throws Exception {
+        importTaskConditionService.updateQuartzCondition(quartzConditionUpdateDTO);
+        return Response.success(true);
+    }
+
+    @Operation(summary = "删除定时条件")
+    @PostMapping("/removeQuartzCondition")
+    public Response removeQuartzCondition(@RequestBody QuartzConditionRemoveDTO quartzConditionRemoveDTO) throws Exception {
+        importTaskConditionService.removeQuartzCondition(quartzConditionRemoveDTO);
+        return Response.success(true);
+    }
+}

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

@@ -4,21 +4,16 @@ 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;
@@ -45,8 +40,7 @@ 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 {
@@ -132,18 +126,4 @@ 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);
-    }
 }

+ 25 - 0
src/main/java/cn/cslg/pas/controller/ProjectMonitorSetController.java

@@ -0,0 +1,25 @@
+package cn.cslg.pas.controller;
+
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.request.StringRequest;
+import cn.cslg.pas.common.utils.Response;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/projectMonitorSet")
+@RestController
+public class ProjectMonitorSetController {
+    @Operation(summary = "")
+    @PostMapping("/addQuartzCondition")
+    public Response addQuartzCondition(@RequestBody StringRequest stringRequest) throws Exception {
+
+        return null;
+    }
+}

+ 7 - 0
src/main/java/cn/cslg/pas/domain/business/ImportTask.java

@@ -4,6 +4,7 @@ import cn.cslg.pas.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
+import org.joda.time.DateTime;
 
 import java.util.Date;
 
@@ -94,4 +95,10 @@ public class ImportTask extends BaseEntity<ImportTask> {
     @TableField(value = "picture_done_num")
     private Integer pictureDoneNum;
     private String remark;
+
+    @TableField(value = "update_to_date")
+    private Date updateToDate;
+
+    @TableField(value = "last_update_to_date")
+    private Date lastUpdateToDate;
 }

+ 8 - 0
src/main/java/cn/cslg/pas/domain/business/ImportTaskCondition.java

@@ -37,6 +37,8 @@ public class ImportTaskCondition extends BaseEntity<ImportTaskCondition> {
      */
     private String crons;
 
+    private String updateCycle;
+
     /**
      * 上次更新时间
      */
@@ -105,4 +107,10 @@ public class ImportTaskCondition extends BaseEntity<ImportTaskCondition> {
     @TableField(value = "pdf_type")
     private Integer pdfType;
 
+
+    private String searchSetting;
+
+    private Boolean ifDelete;
+    private Boolean ifCycle;
+
 }

+ 3 - 0
src/main/java/cn/cslg/pas/domain/business/TreeNode.java

@@ -76,4 +76,7 @@ public class TreeNode extends BaseEntity<TreeNode> {
     @TableField(value = "description")
     private String description;
 
+    @TableField(value = "condition_id")
+    private Integer conditionId;
+
 }

+ 2 - 2
src/main/java/cn/cslg/pas/service/business/CustomFieldService.java

@@ -780,7 +780,7 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
     /**
      * @param customerFieldList
      */
-    public  List<EsCustomFieldDTO> getFieldDTOByStrings(List<UploadParamsVO.Field> customerFieldList, Integer projectId) {
+    public  List<EsCustomFieldDTO> getFieldDTOByStrings(List<UploadParamsVO.Field> customerFieldList, Integer projectId,Integer contionId) {
       List<EsCustomFieldDTO>  esCustomFieldDTOs =new ArrayList<>();
         if (customerFieldList != null && customerFieldList.size() != 0) {
 
@@ -812,7 +812,7 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
                         break;
                     case "6":
                         esCustomFieldDTO.setFieldType(Integer.parseInt(type));
-                       values =treeNodeService.getIdByNames(fieldList,fieldId);
+                       values =treeNodeService.getIdByNames(fieldList,fieldId,contionId);
                         break;
                 }
                 esCustomFieldDTO.setFieldValue(values);

+ 241 - 0
src/main/java/cn/cslg/pas/service/business/ImportTaskConditionService.java

@@ -1,10 +1,29 @@
 package cn.cslg.pas.service.business;
 
+import cn.cslg.pas.common.dto.ImportTaskDTO;
+import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
+import cn.cslg.pas.common.importTask.*;
+import cn.cslg.pas.common.model.cronModel.Personnel;
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.domain.business.ImportTaskCondition;
+import cn.cslg.pas.exception.ExceptionEnum;
+import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.ImportTaskConditionMapper;
+import cn.cslg.pas.service.permissions.PermissionService;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 导入任务条件表业务层
@@ -15,4 +34,226 @@ import org.springframework.stereotype.Service;
 @Service
 @RequiredArgsConstructor
 public class ImportTaskConditionService extends ServiceImpl<ImportTaskConditionMapper, ImportTaskCondition> {
+    private final PermissionService permissionService;
+    private final PatentProjectService patentProjectService;
+    private final CacheUtils cacheUtils;
+    private final LoginUtils loginUtils;
+    /**
+     * 添加定时周期
+     *
+     * @param quartzConditionDTO
+     * @return
+     */
+    public ImportTaskCondition addQuartzCondition(QuartzConditionDTO quartzConditionDTO) {
+        PersonnelVO personnelVO = new PersonnelVO();
+        personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        Integer projectId =quartzConditionDTO.getImportToId();
+        Boolean ifUpdate =quartzConditionDTO.getIfUpdate();
+        String updateCycle=quartzConditionDTO.getUpdateCycle();
+        ImportTaskCondition importTaskCondition = new ImportTaskCondition();
+        importTaskCondition.setSearchCondition(quartzConditionDTO.getSearchCondition());
+        importTaskCondition.setProjectId(projectId);
+        importTaskCondition.setDbType(quartzConditionDTO.getDBType());
+        importTaskCondition.setIfUpdate(true);
+        importTaskCondition.setIfCycle(true);
+        importTaskCondition.setOrderByType(quartzConditionDTO.getOrderByType());
+        importTaskCondition.setOrderBy(quartzConditionDTO.getOrderBy());
+        importTaskCondition.setImportContent(MathUtils.BinaryToDecimal(quartzConditionDTO.getImportContent()));
+        importTaskCondition.setSearchSetting(quartzConditionDTO.getSearchSetting());
+        importTaskCondition.setUpdateCycle(quartzConditionDTO.getUpdateCycle());
+        importTaskCondition.setCreateId(personnelVO.getId());
+        //保存标引信息
+        if (quartzConditionDTO.getFieldDTOS() != null && quartzConditionDTO.getFieldDTOS().size() > 0) {
+            String fieldJson = JsonUtils.objectToJson(quartzConditionDTO.getFieldDTOS());
+            importTaskCondition.setCustomFields(fieldJson);
+        }
+        //保存周期
+        String crons = CronUtil.getCron(quartzConditionDTO.getUpdateCycle());
+        importTaskCondition.setCrons(crons);
+        importTaskCondition.insert();
+        if(ifUpdate!=null&&ifUpdate){
+            Boolean flag= patentProjectService.checkIfHaveQuartz(projectId);
+            if(flag==null||!flag){
+                ProjectQuartzSetDTO projectQuartzSetDTO =new ProjectQuartzSetDTO();
+                projectQuartzSetDTO.setProjectId(projectId);
+                projectQuartzSetDTO.setIfUpdate(ifUpdate);
+                projectQuartzSetDTO.setUpdateCycle(updateCycle);
+                patentProjectService.setProjectQuartz(projectQuartzSetDTO);
+            }
+        }
+        return importTaskCondition;
+    }
+
+
+    public ImportTaskCondition addQuartzCondition(ImportTaskDTO importTaskDTO){
+        PersonnelVO personnelVO = new PersonnelVO();
+        personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        Boolean ifUpdate =importTaskDTO.getIfUpdate();
+        ImportTaskCondition importTaskCondition = new ImportTaskCondition();
+        importTaskCondition.setImportContent(importTaskDTO.getImportContent());
+        importTaskCondition.setCrons(importTaskDTO.getCrons());
+        importTaskCondition.setSearchCondition(importTaskDTO.getSearchCondition());
+        importTaskCondition.setType(importTaskDTO.getType());
+        importTaskCondition.setFileGuid(importTaskDTO.getFileGuid());
+        importTaskCondition.setSourceId(importTaskDTO.getSourceId());
+        importTaskCondition.setDbType(importTaskDTO.getDBType());
+        importTaskCondition.setOrderBy(importTaskDTO.getOrderBy());
+        importTaskCondition.setOrderByType(importTaskDTO.getOrderByType());
+        importTaskCondition.setIfCycle(importTaskDTO.getIfUpdate());
+        if(ifUpdate!=null&&ifUpdate){
+            importTaskCondition.setIfUpdate(true);
+        }
+        importTaskCondition.setCreateId(personnelVO.getId());
+
+        if (importTaskDTO.getPatentNos() != null && importTaskDTO.getPatentNos().size() > 0) {
+            String jsons = JSONObject.toJSON(importTaskDTO.getPatentNos()).toString();
+            importTaskCondition.setPatentNos(jsons);
+        }
+
+        //保存标引信息
+        if (importTaskDTO.getFieldDTOS() != null && importTaskDTO.getFieldDTOS().size() > 0) {
+            String fieldJson = JsonUtils.objectToJson(importTaskDTO.getFieldDTOS());
+            importTaskCondition.setCustomFields(fieldJson);
+        }
+        importTaskCondition.insert();
+return  importTaskCondition;
+
+    }
+    /**
+     * 查询定时任务条件
+     *
+     * @param quartzConditionQueryDTO
+     * @return
+     */
+    public Records queryQuartzCondition(QuartzConditionQueryDTO quartzConditionQueryDTO) {
+        Long size = quartzConditionQueryDTO.getSize();
+        Long current = quartzConditionQueryDTO.getCurrent();
+        Integer projectId = quartzConditionQueryDTO.getProjectId();
+
+        LambdaQueryWrapper<ImportTaskCondition> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ImportTaskCondition::getProjectId, projectId)
+                .eq(ImportTaskCondition::getIfDelete, false)
+                .eq(ImportTaskCondition::getIfCycle,true);
+
+        Records records = new Records();
+        records.setSize(size);
+        records.setCurrent(current);
+        List<ImportTaskCondition> importTaskConditions = new ArrayList<>();
+        if (size != null && current != null) {
+            Page<ImportTaskCondition> page = this.page(new Page<>(current, size), queryWrapper);
+            importTaskConditions = page.getRecords();
+            records.setTotal(page.getTotal());
+        } else {
+            importTaskConditions = this.list(queryWrapper);
+            Long total = this.count(queryWrapper);
+            records.setTotal(total);
+        }
+        try {
+            List<ImportTaskConditionVO> importTaskConditionVOS = this.loadImportVos(importTaskConditions);
+            records.setData(importTaskConditionVOS);
+        } catch (Exception e) {
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "装载信息错误");
+        }
+
+        return records;
+    }
+
+    public List<ImportTaskConditionVO> loadImportVos(List<ImportTaskCondition> importTaskConditions) throws Exception {
+        List<ImportTaskConditionVO> importTaskConditionVOS = new ArrayList<>();
+        List<String> createIds = new ArrayList<>();
+        List<Personnel> personnels = new ArrayList<>();
+        importTaskConditions.forEach(
+                item -> {
+                    if (item.getCreateId() != null) {
+                        createIds.add(item.getCreateId());
+                    }
+                }
+        );
+
+        if (createIds.size() != 0) {
+            String res = permissionService.getPersonnelByIdsFromPCS(createIds);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
+        }
+        for (ImportTaskCondition importTaskCondition : importTaskConditions) {
+            ImportTaskConditionVO importTaskConditionVO =new ImportTaskConditionVO();
+            BeanUtils.copyProperties(importTaskCondition,importTaskConditionVO);
+
+            String customFields =importTaskCondition.getCustomFields();
+            if(customFields!=null&&!customFields.equals(""))
+            {
+                List<EsCustomFieldDTO> esCustomFieldDTOList = JSONArray.parseArray(customFields,EsCustomFieldDTO.class);
+                importTaskConditionVO.setFieldDTOS(esCustomFieldDTOList);
+            }
+         Personnel personnel =personnels.stream().filter(item->item.getId().equals(importTaskCondition.getCreateId())).findFirst().orElse(null);
+            if(personnel!=null){
+                importTaskConditionVO.setCreateName(personnel.getPersonnelName());
+            }
+  importTaskConditionVOS.add(importTaskConditionVO);
+
+        }
+        return importTaskConditionVOS;
+    }
+
+
+
+    /**
+     * 添加定时周期
+     *
+     * @param quartzConditionDTO
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public ImportTaskCondition updateQuartzCondition(QuartzConditionUpdateDTO quartzConditionDTO) {
+         Integer id =quartzConditionDTO.getId();
+        ImportTaskCondition importTaskCondition =this.getById(id);
+        if(importTaskCondition==null){
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR,"未查询到条件");
+        }
+        Boolean ifUpdate =quartzConditionDTO.getIfUpdate();
+        String updateCycle=quartzConditionDTO.getUpdateCycle();
+        importTaskCondition.setSearchCondition(quartzConditionDTO.getSearchCondition());
+        importTaskCondition.setDbType(quartzConditionDTO.getDbType());
+        importTaskCondition.setIfUpdate(ifUpdate);
+        importTaskCondition.setOrderByType(quartzConditionDTO.getOrderByType());
+        importTaskCondition.setOrderBy(quartzConditionDTO.getOrderBy());
+        importTaskCondition.setImportContent(MathUtils.BinaryToDecimal(quartzConditionDTO.getImportContent()));
+        importTaskCondition.setSearchSetting(quartzConditionDTO.getSearchSetting());
+        importTaskCondition.setUpdateCycle(quartzConditionDTO.getUpdateCycle());
+        //保存标引信息
+        if (quartzConditionDTO.getFieldDTOS() != null && quartzConditionDTO.getFieldDTOS().size() > 0) {
+            String fieldJson = JsonUtils.objectToJson(quartzConditionDTO.getFieldDTOS());
+            importTaskCondition.setCustomFields(fieldJson);
+        }
+        //保存周期
+        String crons = CronUtil.getCron(quartzConditionDTO.getUpdateCycle());
+        importTaskCondition.setCrons(crons);
+        importTaskCondition.updateById();
+
+                ProjectQuartzSetDTO projectQuartzSetDTO =new ProjectQuartzSetDTO();
+                projectQuartzSetDTO.setProjectId(importTaskCondition.getProjectId());
+                projectQuartzSetDTO.setIfUpdate(ifUpdate);
+                projectQuartzSetDTO.setUpdateCycle(updateCycle);
+                patentProjectService.setProjectQuartz(projectQuartzSetDTO);
+
+        return importTaskCondition;
+    }
+
+
+
+    /**
+     * 删除定时周期条件
+     *
+     * @param quartzConditionRemoveDTO
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean removeQuartzCondition(QuartzConditionRemoveDTO quartzConditionRemoveDTO) {
+        List<Integer> ids =quartzConditionRemoveDTO.getIds();
+        if(ids==null||ids.size()==0){
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_CHECK,"请选择至少一个条件");
+        }
+        this.removeBatchByIds(ids);
+        return  true;
+    }
 }

+ 113 - 84
src/main/java/cn/cslg/pas/service/business/ImportTaskService.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.service.business;
 import cn.cslg.pas.common.dto.ExportTaskDTO;
 import cn.cslg.pas.common.dto.ImportTaskDTO;
 import cn.cslg.pas.common.dto.PatentStarListDTO;
+import cn.cslg.pas.common.importTask.QuartzConditionDTO;
 import cn.cslg.pas.common.model.cronModel.Personnel;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
@@ -12,6 +13,7 @@ import cn.cslg.pas.common.model.request.GroupRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.vo.ImportTaskAMVO;
+import cn.cslg.pas.common.vo.StarPatentVO;
 import cn.cslg.pas.common.vo.business.ImportTaskVO;
 import cn.cslg.pas.domain.business.*;
 import cn.cslg.pas.exception.UnLoginException;
@@ -30,6 +32,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.compress.utils.IOUtils;
 import org.apache.poi.ss.usermodel.Sheet;
+import org.joda.time.DateTime;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -37,10 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 导入任务表业务层
@@ -88,7 +89,6 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         List<ImportTaskVO> importTaskVOS = importTaskMapper.getImportTask(sqls.get(0), sqls.get(1), sqls.get(2));
         //查询总数
         Long total = importTaskMapper.getImportTaskCount(sqls.get(0));
-
         //装载事件信息
         this.loadImportTask(importTaskVOS);
         Records records = new Records();
@@ -122,22 +122,35 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Object addMessage(Object object) {
+
         if (object == null) {
             throw new XiaoShiException("参数不能为空");
         }
+
         //TODO 校验参数
         ImportTaskDTO importTaskDTO = (ImportTaskDTO) object;
-
+        Boolean ifUpdate = importTaskDTO.getIfUpdate();
         PersonnelVO personnelVO = new PersonnelVO();
-
-            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-
+        personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
 
         if (importTaskDTO.getType() == null) {
             importTaskDTO.setType(4);
         }
         List<String> addPatentNos = importTaskDTO.getPatentNos();
-        ImportTaskCondition importTaskCondition = new ImportTaskCondition();
+
+        if (!importTaskDTO.getType().equals(1)) {
+            importTaskDTO.setImportContent(MathUtils.BinaryToDecimal(importTaskDTO.getImportContent()));
+        }
+        ImportTaskCondition importTaskCondition = null;
+
+        if (ifUpdate != null && ifUpdate) {
+            QuartzConditionDTO quartzConditionDTO = new QuartzConditionDTO();
+            BeanUtils.copyProperties(importTaskDTO, quartzConditionDTO);
+            importTaskCondition = importTaskConditionService.addQuartzCondition(quartzConditionDTO);
+        } else {
+            importTaskCondition = importTaskConditionService.addQuartzCondition(importTaskDTO);
+        }
+
         if (importTaskDTO.getImportToId() != null) {
             if (importTaskDTO.getImportToType().equals(0)) {
                 importTaskCondition.setProjectType(0);
@@ -149,32 +162,6 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                 importTaskCondition.setProductId(importTaskDTO.getImportToId());
             }
         }
-        if (!importTaskDTO.getType().equals(1)) {
-            importTaskDTO.setImportContent(MathUtils.BinaryToDecimal(importTaskDTO.getImportContent()));
-        }
-        importTaskCondition.setImportContent(importTaskDTO.getImportContent());
-        importTaskCondition.setCrons(importTaskDTO.getCrons());
-        importTaskCondition.setIfUpdate(importTaskDTO.getIfUpdate());
-        importTaskCondition.setSearchCondition(importTaskDTO.getSearchCondition());
-        importTaskCondition.setType(importTaskDTO.getType());
-        importTaskCondition.setFileGuid(importTaskDTO.getFileGuid());
-        importTaskCondition.setSourceId(importTaskDTO.getSourceId());
-        importTaskCondition.setDbType(importTaskDTO.getDBType());
-        importTaskCondition.setOrderBy(importTaskDTO.getOrderBy());
-        importTaskCondition.setOrderByType(importTaskDTO.getOrderByType());
-        importTaskCondition.setCreateId(personnelVO.getId());
-
-        if (importTaskDTO.getPatentNos() != null && importTaskDTO.getPatentNos().size() > 0) {
-            String jsons = JSONObject.toJSON(importTaskDTO.getPatentNos()).toString();
-            importTaskCondition.setPatentNos(jsons);
-        }
-
-        //保存标引信息
-        if (importTaskDTO.getFieldDTOS() != null && importTaskDTO.getFieldDTOS().size() > 0) {
-            String fieldJson = JsonUtils.objectToJson(importTaskDTO.getFieldDTOS());
-            importTaskCondition.setCustomFields(fieldJson);
-        }
-        importTaskCondition.insert();
 
         //装载任务
         ImportTask importTask = new ImportTask();
@@ -194,7 +181,7 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                 File tempFile = File.createTempFile(systemFile.getFileName() + "temp", suffix);
                 try (
                         InputStream inputStream = new ByteArrayInputStream(bytes);
-                        FileOutputStream outputStream = new FileOutputStream(tempFile)
+                        FileOutputStream outputStream = new FileOutputStream(tempFile);
                 ) {
                     IOUtils.copy(inputStream, outputStream); // 将输入流复制到临时文件
                 }
@@ -203,7 +190,7 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                 //删除临时文件tempFile
                 new File(tempFile.getPath()).delete();
             } catch (Exception e) {
-//                e.printStackTrace();
+                e.printStackTrace();
                 throw new XiaoShiException(e.getMessage());
             }
         } else if (importTaskCondition.getType().equals(4)) {
@@ -216,12 +203,16 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                             .setPageNum(1)
                             .setRowCount(50)
                             .setDBType(importTaskCondition.getDbType());
-
                     //调用一般接口返回一批专利著录相关数据
                     Map<String, Object> resultMap = patentStarApiService.patentStarSearchApi(patentStarListDto);
                     if (resultMap == null || (Integer) resultMap.get("total") == 0) {
                         ThrowException.throwXiaoShiException("未检索到相关专利");
                     } else {
+                        List<StarPatentVO> starPatentVOS =(List<StarPatentVO>)resultMap.get("records");
+                        StarPatentVO starPatentVO =starPatentVOS.get(0);
+                      String pDStr =  starPatentVO.getPD();
+                        Date publicDate =  DateUtils2.formStrToDate(pDStr);
+                        importTask.setUpdateToDate(publicDate);
                         importTask.setAllNum((Integer) resultMap.get("total"));
                     }
                 } else {
@@ -252,10 +243,8 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                     }
                     Sheet sheet = ReadExcelUtils.readExcel(tempFile);
                     patentNos = ReadExcelUtils.getPatentNoFromExcel(sheet);
-
                 } catch (Exception e) {
                 }
-
             }
             importTask.setAllNum(patentNos.size());
         }
@@ -263,10 +252,8 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         String taskName = this.setImportTaskName(importTaskCondition, personnelVO.getName());
         importTask.setName(taskName);
         importTask.insert();
-
         schedulingTaskService.startTask();
         return importTask.getId();
-
     }
 
     @Override
@@ -282,15 +269,15 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         List<String> createIds = new ArrayList<>();
 
         List<Integer> projectIds = new ArrayList<>();
-        List<Integer> productIds =new ArrayList<>();
+        List<Integer> productIds = new ArrayList<>();
         importTaskVOS.forEach(item -> {
             if (item.getCreateId() != null) {
                 createIds.add(item.getCreateId());
             }
-            if(item.getProductId()!=null){
+            if (item.getProductId() != null) {
                 productIds.add(item.getProductId());
             }
-            if(item.getProjectId()!=null){
+            if (item.getProjectId() != null) {
                 projectIds.add(item.getProjectId());
             }
         });
@@ -306,16 +293,16 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
 
         //查询项目名称
         if (projectIds.size() != 0) {
-            LambdaQueryWrapper<Project> queryWrapper =new LambdaQueryWrapper<>();
-            queryWrapper.in(Project::getId,projectIds);
-            projects =projectService.list(queryWrapper);
+            LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.in(Project::getId, projectIds);
+            projects = projectService.list(queryWrapper);
         }
 
         //查询产品名称
         if (productIds.size() != 0) {
-            LambdaQueryWrapper<Product> queryWrapper =new LambdaQueryWrapper<>();
-            queryWrapper.in(Product::getId,productIds);
-            products =productService.list(queryWrapper);
+            LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.in(Product::getId, productIds);
+            products = productService.list(queryWrapper);
         }
 
         LambdaQueryWrapper<SystemDict> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -352,28 +339,23 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
             long percentage = (long) Math.floor((importTaskVO.getDoneNum() + 0D) / importTaskVO.getAllNum() * 100D);
             importTaskVO.setPercentage(percentage);
 
-
             //装载目标名称
-          if(projects.size()>0&&importTaskVO.getProjectId()!=null){
-          Project project =projects.stream().filter(item->item.getId().equals(importTaskVO.getProjectId())).findFirst().orElse(null);
-          if(project!=null){
-              importTaskVO.setImportToId(project.getId());
-              importTaskVO.setImportToType(project.getType()-1);
-              importTaskVO.setImportToName(project.getName());
-          }
-          }
-          else if(products.size()>0&&importTaskVO.getProductId()!=null){
-           Product product =products.stream().filter(item->item.getId().equals(importTaskVO.getProductId())).findFirst().orElse(null);
-           if(product!=null){
-               importTaskVO.setImportToId(product.getId());
-               importTaskVO.setImportToType(2);
-               importTaskVO.setImportToName(product.getName());
-           }
-
-          }
-
+            if (projects.size() > 0 && importTaskVO.getProjectId() != null) {
+                Project project = projects.stream().filter(item -> item.getId().equals(importTaskVO.getProjectId())).findFirst().orElse(null);
+                if (project != null) {
+                    importTaskVO.setImportToId(project.getId());
+                    importTaskVO.setImportToType(project.getType() - 1);
+                    importTaskVO.setImportToName(project.getName());
+                }
+            } else if (products.size() > 0 && importTaskVO.getProductId() != null) {
+                Product product = products.stream().filter(item -> item.getId().equals(importTaskVO.getProductId())).findFirst().orElse(null);
+                if (product != null) {
+                    importTaskVO.setImportToId(product.getId());
+                    importTaskVO.setImportToType(2);
+                    importTaskVO.setImportToName(product.getName());
+                }
+            }
         }
-
     }
 
 
@@ -435,6 +417,7 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
 
     }
 
+
     public Integer addExportTask(ExportTaskDTO exportTaskDTO) {
         if (exportTaskDTO == null) {
             throw new XiaoShiException("入参不能为空");
@@ -529,24 +512,70 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
     }
 
 
-
-    public  Integer addPdfTask(AddImportPDFTaskDTO addImportPDFTaskDTO){
-        String fileGuid =addImportPDFTaskDTO.getFileGuid();
-        Integer pdfType =addImportPDFTaskDTO.getPdfType();
-        String remark =addImportPDFTaskDTO.getRemark();
-        ImportTaskCondition importTaskCondition =new ImportTaskCondition();
+    public Integer addPdfTask(AddImportPDFTaskDTO addImportPDFTaskDTO) {
+        String fileGuid = addImportPDFTaskDTO.getFileGuid();
+        Integer pdfType = addImportPDFTaskDTO.getPdfType();
+        String remark = addImportPDFTaskDTO.getRemark();
+        ImportTaskCondition importTaskCondition = new ImportTaskCondition();
         importTaskCondition.setFileGuid(fileGuid);
         importTaskCondition.setType(5);
         importTaskCondition.setPdfType(pdfType);
         importTaskCondition.setCreateId("1");
         importTaskCondition.insert();
-        ImportTask importTask =new ImportTask();
+        ImportTask importTask = new ImportTask();
         importTask.setImportTaskConditionId(importTaskCondition.getId());
-         importTask.setRemark(remark);
-         importTask.setCreateId("1");
-         importTask.setType(5);
-         importTask.insert();
+        importTask.setRemark(remark);
+        importTask.setCreateId("1");
+        importTask.setType(5);
+        importTask.insert();
         schedulingTaskService.startTask();
-        return  importTask.getId();
+        return importTask.getId();
+    }
+    public void addImportTaskByCondition(ImportTaskCondition importTaskCondition){
+         //根据id查询最近更新的任务
+        LambdaQueryWrapper<ImportTask> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(ImportTask::getImportTaskConditionId,importTaskCondition.getId())
+                .orderByDesc(ImportTask::getUpdateToDate);
+        ImportTask lastImportTask =this.getOne(queryWrapper);
+
+        String condition =importTaskCondition.getSearchCondition();
+        if(lastImportTask !=null&&lastImportTask.getUpdateToDate()!=null)
+        {
+           String dateStr= DateUtils2.dateTimeToPatentStr(lastImportTask.getUpdateToDate());
+            condition =condition+"and PD="+dateStr;
+        }
+        PatentStarListDTO patentStarListDto = new PatentStarListDTO()
+                .setCurrentQuery(condition )
+                .setPageNum(1)
+                .setRowCount(10)
+                .setDBType(importTaskCondition.getDbType());
+        //调用一般接口返回一批专利著录相关数据
+        ImportTask importTask = new ImportTask();
+        try {
+            Map<String, Object> resultMap = patentStarApiService.patentStarSearchApi(patentStarListDto);
+            if (resultMap == null || (Integer) resultMap.get("total") == 0) {
+                return;
+            }
+            else {
+                List<StarPatentVO> starPatentVOS =(List<StarPatentVO>)resultMap.get("records");
+                StarPatentVO starPatentVO =starPatentVOS.get(0);
+                String pDStr =  starPatentVO.getPD();
+                Date publicDate =   DateUtils2.formStrToDate(pDStr);
+                importTask.setUpdateToDate(publicDate);
+                importTask.setAllNum((Integer) resultMap.get("total"));
+            }
+        }
+
+        catch (Exception e){
+            e.printStackTrace();
+
+        }
+
+        importTask.setImportTaskConditionId(importTaskCondition.getId());
+        importTask.setType(importTaskCondition.getType());
+        importTask.setSearchCondition(condition);
+        importTask.setCreateId(importTaskCondition.getCreateId());
+        importTask.insert();
+
     }
 }

+ 1 - 0
src/main/java/cn/cslg/pas/service/business/PatentProjectService.java

@@ -1003,6 +1003,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
             QuartzVO quartzVO = jobService.getPatentProjectVO(projectId);
             QrtzTaskDTO qrtzTaskDTO = new QrtzTaskDTO();
             qrtzTaskDTO.setCron(crons);
+            qrtzTaskDTO.setId(projectId);
             qrtzTaskDTO.setQuartzVO(quartzVO);
             try {
                 jobService.addJob(qrtzTaskDTO);

+ 4 - 3
src/main/java/cn/cslg/pas/service/business/TreeNodeService.java

@@ -768,7 +768,7 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
     }
 
     //
-    public List<String> getIdByNames(List<String> values, Integer fieldId) {
+    public List<String> getIdByNames2(List<String> values, Integer fieldId,Integer conditionId) {
 
         List<String> valuesIds = new ArrayList<>();
         for (String value : values) {
@@ -776,7 +776,7 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
             TreeNode treeNode = null;
             for (int i = 0; i < valueQs.length; i++) {
                 String valueQ = valueQs[i];
-                treeNode = this.getTreeNodeByName(valueQ, i, fieldId, treeNode);
+                treeNode = this.getTreeNodeByName(valueQ, i, fieldId, treeNode,conditionId);
                 if (i == valueQs.length - 1) {
                     if (!valuesIds.contains(treeNode.getId())) {
                         valuesIds.add(treeNode.getId().toString());
@@ -788,7 +788,7 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
     }
 
 
-    public TreeNode getTreeNodeByName(String value, Integer level, Integer fieldId, TreeNode parentTreeNode) {
+    public TreeNode getTreeNodeByName(String value, Integer level, Integer fieldId, TreeNode parentTreeNode,Integer conditionId) {
         Integer parentId = 0;
         if (parentTreeNode != null) {
             parentId = parentTreeNode.getId();
@@ -806,6 +806,7 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
              treeNode =new TreeNode();
             treeNode.setName(value);
             treeNode.setType(4);
+            treeNode.setConditionId(conditionId);
             treeNode.setParentId(parentId);
             treeNode.setLevel(level);
             treeNode.setTypeId(fieldId);

+ 88 - 6
src/main/java/cn/cslg/pas/service/business/es/EsLegalEventService.java

@@ -1,20 +1,27 @@
 package cn.cslg.pas.service.business.es;
 
-import cn.cslg.pas.domain.es.LegalEvent;
-import cn.cslg.pas.domain.es.PatentQuoteMessage;
-import cn.cslg.pas.domain.es.QuotePatent;
+import cn.cslg.pas.common.vo.ChinaLeagalStatus;
+import cn.cslg.pas.common.vo.StarPatentVO;
+import cn.cslg.pas.domain.es.*;
 import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.service.common.PatentStarApiService;
+import cn.cslg.pas.service.importPatent.WebVOTransformService;
 import co.elastic.clients.elasticsearch.ElasticsearchClient;
+import co.elastic.clients.elasticsearch._types.InlineScript;
+import co.elastic.clients.elasticsearch._types.Refresh;
+import co.elastic.clients.elasticsearch._types.Script;
+import co.elastic.clients.elasticsearch._types.WaitForActiveShards;
 import co.elastic.clients.elasticsearch._types.query_dsl.Query;
 import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
-import co.elastic.clients.elasticsearch.core.SearchRequest;
-import co.elastic.clients.elasticsearch.core.SearchResponse;
+import co.elastic.clients.elasticsearch.core.*;
 import co.elastic.clients.elasticsearch.core.search.Hit;
+import com.alibaba.fastjson.JSON;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -22,7 +29,8 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class EsLegalEventService {
     private final ElasticsearchClient client;
-
+    private final PatentStarApiService patentStarApiService;
+   private final WebVOTransformService webVOTransformService;
     //根据专利号查询同族专利号
     public List<LegalEvent> getEsQutePatentByNos(String patentNo) throws Exception {
         SearchRequest.Builder builder = new SearchRequest.Builder();
@@ -64,4 +72,78 @@ public class EsLegalEventService {
         }
         return stringList;
     }
+
+
+    /**
+     * 添加法律事务
+     *
+     * @param
+     * @return
+     * @throws Exception
+     */
+    public String addLegalEvent(LegalEvent legalEvent) throws Exception {
+        IndexResponse indexResponse = client.index(i -> i
+                .index("legal_event")
+                .document(legalEvent).refresh(Refresh.True).waitForActiveShards(WaitForActiveShards.of(t -> t.count(1)))
+        );
+        return indexResponse.id();
+
+    }
+
+    public String addEsLegalEvent(Patent patent, String ANO) {
+        //根据专利号查询
+        if (patent == null) {
+            return null;
+        }
+        String cnLegalApiStr = patentStarApiService.getCnLegalApi(ANO);
+        if (cnLegalApiStr != null && !cnLegalApiStr.equals("")) {
+            try {
+                this.deleteByPatentNo(patent.getPatentNo());
+
+            } catch (Exception e) {
+            }
+            List<LegalEvent> legalEvents = new ArrayList<>();
+            //根据专利号查询是否有引用信息
+
+                List<ChinaLeagalStatus> chinaLeagalStatuses = JSON.parseArray(cnLegalApiStr, ChinaLeagalStatus.class);
+                chinaLeagalStatuses.forEach(item -> {
+                    LegalEvent legalEvent1 = new LegalEvent();
+                    legalEvent1.setEventDate(item.getLegalDate());
+                    legalEvent1.setCode(item.getLegalCode());
+                    legalEvent1.setAppNo(patent.getAppNo());
+                    legalEvent1.setGrantNo(patent.getGrantNo());
+                    legalEvent1.setPublicNo(patent.getPublicNo());
+                    legalEvent1.setDescription(item.getLegalStatusInfo());
+                    legalEvent1.setName(item.getLegalStatus());
+                    legalEvents.add(legalEvent1);
+                    try {
+                        String reId = this.addLegalEvent(legalEvent1);
+                    } catch (Exception e) {
+                        throw new XiaoShiException(e.getMessage());
+                    }
+                });
+            webVOTransformService.transLegalEvent(patent,legalEvents);
+        }
+        return "";
+    }
+
+    public Integer deleteByPatentNo(String patentNo) throws IOException {
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("legal_event");
+
+        Query q1 = QueryBuilders.term(t -> t.field("app_no").value(patentNo));
+        //公开号
+        Query q2 = QueryBuilders.term(t -> t.field("public_no").value(patentNo));
+        //授权号
+        Query q3 = QueryBuilders.term(t -> t.field("grant_no").value(patentNo));
+        Query query = QueryBuilders.bool(i -> i.should(q1, q2, q3));
+        DeleteByQueryRequest request = DeleteByQueryRequest.of(i -> i.index("patent").refresh(true).query(query));
+        try {
+            client.deleteByQuery(request);
+            return 1;
+        } catch (IOException e) {
+            return -1;
+        }
+    }
 }

+ 0 - 84
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -1061,21 +1061,7 @@ public class EsService {
         }
     }
 
-    /**
-     * 添加法律事务
-     *
-     * @param
-     * @return
-     * @throws Exception
-     */
-    public String addLegalEvent(LegalEvent legalEvent) throws Exception {
-        IndexResponse indexResponse = client.index(i -> i
-                .index("legal_event")
-                .document(legalEvent).refresh(Refresh.True).waitForActiveShards(WaitForActiveShards.of(t -> t.count(1)))
-        );
-        return indexResponse.id();
 
-    }
 
     /**
      * 更新专利事务
@@ -1209,76 +1195,6 @@ public class EsService {
         return quotePatent;
     }
 
-    public String addEsLegalEvent(StarPatentVO starPatentVO) {
-        LegalEvent legalEvent = null;
-        String id = "";
-
-        //根据专利号查询
-        if (starPatentVO == null) {
-            return null;
-        }
-        String cnLegalApiStr = patentStarApiService.getCnLegalApi(starPatentVO.getANO());
-        if (cnLegalApiStr != null && !cnLegalApiStr.equals("")) {
-            List<LegalEvent> legalEvents = new ArrayList<>();
-            //根据专利号查询是否有引用信息
-            SearchRequest.Builder builder = new SearchRequest.Builder();
-            //设置查询索引
-            builder.index("legal_event");
-            //申请号
-            List<Query> queries = new ArrayList<>();
-            if (starPatentVO.getAN() != null) {
-                Query q1 = QueryBuilders.term(t -> t.field("app_no").value(starPatentVO.getAN()));
-                queries.add(q1);
-            }
-            if (starPatentVO.getGN() != null) {
-                Query q2 = QueryBuilders.term((t -> t.field("grant_no").value(starPatentVO.getGN())));
-                queries.add(q2);
-            }
-            if (starPatentVO.getPN() != null) {
-                Query q3 = QueryBuilders.term((t -> t.field("public_no").value(starPatentVO.getPN())));
-                queries.add(q3);
-            }
-
-            Query bool = QueryBuilders.bool(i -> i.should(queries));
-            builder.query(bool);
-            SearchResponse<LegalEvent> response = null;
-            try {
-                response = client.search(builder.build(), LegalEvent.class);
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-            long total = response.hits().total().value();
-            if (total > 0) {
-                response.hits().hits().forEach(item -> {
-                    legalEvents.add(item.source());
-                });
-            }
-            if (!cnLegalApiStr.contains("408")) {
-                List<ChinaLeagalStatus> chinaLeagalStatuses = JSON.parseArray(cnLegalApiStr, ChinaLeagalStatus.class);
-                chinaLeagalStatuses.forEach(item -> {
-                    LegalEvent tem = legalEvents.stream().filter(em -> em.getEventDate() != null && em.getEventDate().compareTo(item.getLegalDate()) == 0).findFirst().orElse(null);
-                    if (tem == null) {
-                        LegalEvent legalEvent1 = new LegalEvent();
-                        legalEvent1.setEventDate(item.getLegalDate());
-                        legalEvent1.setCode(item.getLegalCode());
-                        legalEvent1.setAppNo(starPatentVO.getAN());
-                        legalEvent1.setGrantNo(starPatentVO.getGN());
-                        legalEvent1.setPublicNo(starPatentVO.getPN());
-                        legalEvent1.setDescription(item.getLegalStatusInfo());
-                        legalEvent1.setName(item.getLegalStatus());
-                        try {
-                            String reId = this.addLegalEvent(legalEvent1);
-                        } catch (Exception e) {
-                            throw new XiaoShiException(e.getMessage());
-                        }
-                    }
-
-                });
-            }
-
-        }
-        return "";
-    }
 
     /**
      * 查询权利要求

+ 8 - 2
src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java

@@ -100,6 +100,7 @@ System.out.println("search time:"+(end-start));
         retrieveRecord.setRetrieveTime(new Date());
         retrieveRecord.setTotalNum(Integer.parseInt(map.get("total").toString()));
         retrieveRecord.setDbType(patentStarListDTO.getDBType());
+
         if (patentStarListDTO.getRetrieveRecordId() == null) {
             //获取创建人信息
             PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
@@ -132,7 +133,6 @@ System.out.println("search time:"+(end-start));
                     StringBuilder stringBuilder = new StringBuilder(PatentStarListDTO.getCurrentQuery());
                     stringBuilder.insert(PatentStarListDTO.getCurrentQuery().length() - 1, "-CN/GJ");
                     PatentStarListDTO.setCurrentQuery(stringBuilder.toString());
-
                 }
                 PatentStarListDTO.setFormed(true);
             }
@@ -145,6 +145,12 @@ System.out.println("search time:"+(end-start));
         String appKey = configObject.getString("appKey");
         PatentStarDTO patentStarDto = new PatentStarDTO();
         BeanUtils.copyProperties(PatentStarListDTO, patentStarDto);
+
+        if(patentStarDto.getOrderBy()==null){
+            patentStarDto.setOrderBy("");
+            patentStarDto.setDBType("DESC");
+        }
+
         String json = JSONObject.toJSONString(patentStarDto);
         String url = "http://s.patentstar.com.cn/SearchAPI/PatentSearch/ResultGet";
         Long currentTimeMillis = System.currentTimeMillis() / 1000;
@@ -322,6 +328,7 @@ System.out.println("search time:"+(end-start));
      * 从专利之星获取中国专利摘要附图
      */
     public String getPictureApi(String appNo) {
+
         String url = "https://api.patentstar.com.cn/api/Patent/CnMainImage/" + appNo;
         JSONObject configObject = this.getConfigObject(4, 2);
         String appId = configObject.getString("appId");
@@ -365,7 +372,6 @@ System.out.println("search time:"+(end-start));
      * 从专利之星获取中国专利外观图
      */
     public String getWGPictureApi(String appNo) throws IOException {
-
         String url = "https://api.patentstar.com.cn/api/Patent/CnWGImage/" + appNo;
         JSONObject configObject = this.getConfigObject(4, 2);
         String appId = configObject.getString("appId");

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

@@ -9,6 +9,7 @@ import cn.cslg.pas.common.utils.esDataForm.AddressSplitter;
 import cn.cslg.pas.common.utils.esDataForm.PatentClassifySplitter;
 import cn.cslg.pas.common.vo.*;
 import cn.cslg.pas.domain.es.*;
+import cn.cslg.pas.service.business.es.EsLegalEventService;
 import cn.cslg.pas.service.business.es.EsQuotePatentService;
 import cn.cslg.pas.service.business.es.EsService;
 import cn.cslg.pas.service.common.ExcuteDataToVOService;
@@ -103,8 +104,9 @@ public class GetCataloguingFromWebThread extends Thread {
                     uploadPatentWebDTO.getPatent().setInpadocFamilyId(esPatentFamilyDTO.getPatentFamilyId());
                 }
                 if (uploadPatentWebDTO.getStarPatentVO().getAN().contains("CN")) {
+                    EsLegalEventService esLegalEventService =applicationContext.getBean(EsLegalEventService.class);
                     //添加法律事务
-                    esService.addEsLegalEvent(uploadPatentWebDTO.getStarPatentVO());
+                    esLegalEventService.addEsLegalEvent(uploadPatentWebDTO.getPatent(), starPatentVO.getANO());
                 }
                 //添加引用专利
                 Patent patent = uploadPatentWebDTO.getPatent();

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

@@ -85,7 +85,7 @@ public class GetPatentFromExcelThread extends Thread {
                 uploadPatentWebDTO.setPatent(uploadParamsVO.getPatent());
                 if (uploadParamsVO.getCustomerFieldList() != null && uploadParamsVO.getCustomerFieldList().size() != 0) {
                     CustomFieldService customFieldService = applicationContext.getBean(CustomFieldService.class);
-                    List<EsCustomFieldDTO> esCustomFieldDTOList = customFieldService.getFieldDTOByStrings(uploadParamsVO.getCustomerFieldList(), importTaskAMVO.getProjectId());
+                    List<EsCustomFieldDTO> esCustomFieldDTOList = customFieldService.getFieldDTOByStrings(uploadParamsVO.getCustomerFieldList(), importTaskAMVO.getProjectId(),null);
                     uploadPatentWebDTO.setEsCustomFieldDTOList(esCustomFieldDTOList);
                 }
                 //专利丢入消费者队列,并唤醒消费者线程

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

@@ -785,7 +785,6 @@ public class ImportSinglePatentService {
         }
         //添加法律事务
         if (contents.contains(6)) {
-            esService.addEsLegalEvent(starPatentVO);
         }
 
         //装载权利要求

+ 3 - 3
src/main/java/cn/cslg/pas/service/importPatent/SavePatentToEsThread.java

@@ -161,7 +161,6 @@ public class SavePatentToEsThread extends Thread {
                         EsCustomFieldService esCustomFieldService = applicationContext.getBean(EsCustomFieldService.class);
                         esCustomFieldService.addCustomField(esCustomFieldDTO);
                     }
-
                 }
 
                 //导入完成,通知前台
@@ -207,6 +206,7 @@ public class SavePatentToEsThread extends Thread {
     }
 
 
+
     public Patent formPatent(Patent patent, Patent orgPatent) {
         String publicNo = patent.getPublicNo();
         String grantNo = patent.getGrantNo();
@@ -221,7 +221,6 @@ public class SavePatentToEsThread extends Thread {
                     publicNo = patent.getGrantNo();
                 }
             }
-
             patent.setPublicNo(publicNo);
             patent.setGrantNo(grantNo);
 
@@ -233,8 +232,9 @@ public class SavePatentToEsThread extends Thread {
                 patent.setPublicFullText(null);
             }
         }
-
 return  patent;
     }
 
+
+    p
 }

+ 90 - 18
src/main/java/cn/cslg/pas/service/importPatent/WebVOTransformService.java

@@ -2,12 +2,18 @@ package cn.cslg.pas.service.importPatent;
 
 import cn.cslg.pas.common.core.IgnoreDTDEntityResolver;
 import cn.cslg.pas.common.dto.UploadPatentWebDTO;
+import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
 import cn.cslg.pas.common.utils.DateUtils;
 import cn.cslg.pas.common.utils.esDataForm.AddressSplitter;
 import cn.cslg.pas.common.utils.esDataForm.PatentClassifySplitter;
+import cn.cslg.pas.common.vo.ImportTaskAMVO;
 import cn.cslg.pas.common.vo.StarPatentVO;
+import cn.cslg.pas.common.vo.UploadParamsVO;
 import cn.cslg.pas.domain.es.*;
+import cn.cslg.pas.service.business.CustomFieldService;
 import com.alibaba.fastjson.JSON;
+import lombok.RequiredArgsConstructor;
+import org.apache.xml.utils.QName;
 import org.dom4j.Document;
 import org.dom4j.Element;
 import org.dom4j.XPath;
@@ -25,7 +31,9 @@ import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 @Service
+@RequiredArgsConstructor
 public class WebVOTransformService {
+    private final CustomFieldService customFieldService;
     private static List<String> SCHOOL = new ArrayList<String>() {{
         add("大学");
         add("学院");
@@ -524,6 +532,7 @@ public class WebVOTransformService {
 
     /**
      * 装载代理机构
+     *
      * @param patent
      * @param agency
      */
@@ -674,8 +683,11 @@ public class WebVOTransformService {
             text.setIfOrigin(true);
             text.setTextContent(fullText);
             text.setLanguage(patent.getAppCountry());
-            patent.setPublicFullText(Arrays.asList(text));
-
+            if (patent.getGrantNo() != null) {
+                patent.setGrantFullText(Arrays.asList(text));
+            } else {
+                patent.setPublicFullText(Arrays.asList(text));
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -712,26 +724,27 @@ public class WebVOTransformService {
                 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){
+                List<Element> claimElements = (List<Element>) xpathRoot.selectNodes(document);
+
+                List<String> reClaims = new ArrayList<>();
+                for (Element element : claimElements) {
+                    List<Element> elements = element.elements("claim-text");
 
-                 }
+                    if (elements.size() == 0) {
+                        elements = element.elements("ClaimText");
+                    }
 
-                XPath xpath = document.createXPath("//claim-text");
-                List<Element> element = (List<Element>) xpath.selectNodes(document);
+//                     elements = (List<Element>) xpath.selectNodes(element);
+                    StringBuilder stringBuilder = new StringBuilder();
 
+                    elements.forEach(item -> {
+                        String claim = item.getText();
+                        stringBuilder.append(claim);
+                    });
+                    reClaims.add(stringBuilder.toString());
 
-                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);
-                });
+
                 String reClaim = "";
                 if (reClaims.size() != 0) {
                     reClaim = cn.cslg.pas.common.utils.StringUtils.join(reClaims, "@##");
@@ -775,7 +788,66 @@ public class WebVOTransformService {
             return "1";
         }
     }
-    public void addLegalEvent(Patent patent){
 
+    public void transLegalEvent(Patent patent, List<LegalEvent> legalEvents) {
+        if (legalEvents == null || legalEvents.size() == 0) {
+            return;
+        }
+        LegalEvent legalEvent = legalEvents.get(0);
+        if (legalEvent.getEventDate() != null) {
+            for (LegalEvent item : legalEvents) {
+                if (item.getEventDate() != null && (legalEvent.getEventDate().compareTo(item.getEventDate()) < 0)) {
+                    legalEvent = item;
+                }
+            }
+        }
+        if (legalEvent.getCode() == null) {
+            return;
+        }
+        switch (legalEvent.getName().trim()) {
+            //授权
+            case "审定":
+            case "授权":
+            case "专利权的部分撤销":
+            case "专利权的部分无效":
+            case "专利申请或专利权的恢复":
+                //有效
+                patent.setSimpleStatus("1");
+                if (patent.getPublicFullText() != null && patent.getGrantFullText() == null) {
+                    patent.setGrantFullText(patent.getPublicFullText());
+                    patent.setPublicFullText(null);
+                }
+                break;
+            case "发明专利申请公布后的驳回":
+            case "发明专利申请公布后的撤回":
+            case "发明专利申请公布后的视为撤回":
+            case "专利权的全部撤销":
+            case "专利权的视为放弃":
+            case "专利权的全部无效":
+            case "专利权的主动放弃":
+            case "专利权终止":
+                patent.setSimpleStatus("2");
+                break;
+            //审中
+            case "公开":
+            case "实质审查的生效":
+            case "专利申请的恢复":
+
+                patent.setSimpleStatus("2");
+                break;
+
+        }
     }
+
+
+    public  List<EsCustomFieldDTO> getEsCustomFieldDTOList(ImportTaskAMVO importTaskAMVO){
+        UploadParamsVO.Field field =new UploadParamsVO.Field();
+        field.setKey("定时跟新:6");
+        String value ="";
+        List<EsCustomFieldDTO> esCustomFieldDTOList = customFieldService.getFieldDTOByStrings(uploadParamsVO.getCustomerFieldList(), importTaskAMVO.getProjectId(),null);
+
+
+    }
+
+
 }

+ 0 - 24
src/main/java/cn/cslg/pas/service/quartzService/ImportJobService.java

@@ -1,24 +0,0 @@
-package cn.cslg.pas.service.quartzService;
-
-import lombok.RequiredArgsConstructor;
-import org.quartz.DisallowConcurrentExecution;
-import org.quartz.JobDataMap;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-import org.springframework.scheduling.quartz.QuartzJobBean;
-
-
-@DisallowConcurrentExecution
-@RequiredArgsConstructor
-public class ImportJobService extends QuartzJobBean {
-
-
-    @Override
-    public void executeInternal(JobExecutionContext context) throws JobExecutionException {
-        JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
-        QrtzTaskDTO qrtzTask = (QrtzTaskDTO) jobDataMap.get("qrtzTask");
-        String parameter = qrtzTask.getParameter();
-
-
-    }
-}

+ 35 - 0
src/main/java/cn/cslg/pas/service/quartzService/ImportPatentJobService.java

@@ -0,0 +1,35 @@
+package cn.cslg.pas.service.quartzService;
+
+import cn.cslg.pas.domain.business.ImportTaskCondition;
+import cn.cslg.pas.service.business.ImportTaskConditionService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.RequiredArgsConstructor;
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.scheduling.quartz.QuartzJobBean;
+
+import java.util.List;
+
+
+@DisallowConcurrentExecution
+@RequiredArgsConstructor
+public class ImportPatentJobService extends QuartzJobBean {
+private final ImportTaskConditionService  importTaskConditionService;
+
+    @Override
+    public void executeInternal(JobExecutionContext context) throws JobExecutionException {
+        JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
+        QrtzTaskDTO qrtzTask = (QrtzTaskDTO) jobDataMap.get("qrtzTask");
+             Integer projectId =qrtzTask.getId();
+             //根据id查询检索条件
+        LambdaQueryWrapper<ImportTaskCondition> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(ImportTaskCondition::getProjectId,projectId);
+        queryWrapper.eq(ImportTaskCondition::getIfCycle,true)
+                    .eq(ImportTaskCondition::getIfUpdate,true);
+        List<ImportTaskCondition> importTaskConditions =importTaskConditionService.list(queryWrapper);
+
+
+    }
+}

+ 1 - 1
src/main/resources/application-testNetIn.yml

@@ -58,7 +58,7 @@ spring:
 
     #数据库方式
     job-store-type: jdbc
-    #初始化表结构
+    #初始化表结构`
     jdbc:
       initialize-schema: always
 authorUrl: http://localhost:8880

+ 10 - 30
src/test/java/cn/cslg/pas/service/EsServiceTests.java

@@ -9,6 +9,7 @@ import cn.cslg.pas.common.vo.PatentWithIdVO;
 import cn.cslg.pas.common.vo.StarPatentVO;
 import cn.cslg.pas.domain.es.Patent;
 import cn.cslg.pas.service.business.PatentService;
+import cn.cslg.pas.service.business.es.EsLegalEventService;
 import cn.cslg.pas.service.business.es.EsService;
 
 import cn.cslg.pas.service.importPatent.SchedulingTaskService;
@@ -37,8 +38,8 @@ public class EsServiceTests {
 
     @Autowired
     private EsService esService;
-
-
+ @Autowired
+ private EsLegalEventService esLegalEventService;
     @Test
     public void addPatent() throws Exception {
         Patent patent = new Patent();
@@ -63,27 +64,7 @@ public class EsServiceTests {
        esService.updatePatent(patent,"oYVFzowBmzIo81_4q-kr");
     }
 
-    @Test
-    public void search() throws Exception {
-        StringRequest stringRequest = new StringRequest();
-        stringRequest.setSearchQuery("patentNo=CN201199922Y and (simpleFamilyNum>1 or simpleFamilyNum=0)");
-        stringRequest.setCurrent(0L);
-        stringRequest.setSize(50L);
-        stringRequest.setProjectId(1);
-        PatentDTO patentDTO = esService.esSearch(stringRequest);
-        System.out.println(patentDTO);
-//        Object o = patentService.queryMessage(stringRequest);
-//        System.out.println(o);
-//        List<PatentDTO> list = esService.esSearch("patentNo=CN201199922Y and simpleFamilyNum>1 or simpleFamilyNum=0", 0, 50,null);
-//        List<Patent> list = esService.Search("titleTextContent=电子 or projectId=1", 0, 50,null);
-//        List<Patent> list = esService.Search("patentNo=CN201199922Y and simpleFamilyNum>1", 0, 50,null);
-//        List<Patent> list = esService.Search("publicDate=2009-03", 0, 50,null);
-//        List<Patent> list = esService.Search("simpleFamilyNum>1", 0, 50,null);
-//        List<Patent> list = esService.Search("titleTextContent=电子", 0, 50,null);
-//        List<Patent> list = esService.Search("projectId=1", 0, 50,null);
-//        List<Patent> list = esService.search("patentNo=CN201199922Y", 0, 50);
-//        System.out.println(list);
-    }
+
 
     @Test
     public void addQuotePatent() throws Exception {
@@ -126,18 +107,17 @@ public class EsServiceTests {
         List<String> nos = new ArrayList<>();
         nos.add("CN201920033236.3");
         nos.add("CN202010306989.4");
-        esService.addEsLegalEvent(new StarPatentVO());
         System.out.println("aa");
     }
 
     @Test
     public void addNet() throws Exception {
-        List<String> patents = new ArrayList<>();
-        patents.add("aa");
-        patents.add("vbb");
-        String aa = JSONObject.toJSON(patents).toString();
-        List<String> abv =JSONArray.parseArray(aa);
-        System.out.println(abv);
+        Patent patent =new Patent();
+        patent.setPatentNo("CN201680059185.0");
+        patent.setPublicNo("CN108135256A");
+        patent.setAppNo("CN201680059185.0");
+        patent.setGrantNo("CN108135256B");
+        esLegalEventService.addEsLegalEvent(patent,"202410929065");
 
     }
 

文件差异内容过多而无法显示
+ 11 - 9
src/test/java/cn/cslg/pas/service/WebVoTransformServiceTests.java