Ver código fonte

8/27 定时更新修改

lwhhszx 1 ano atrás
pai
commit
f533a63386
27 arquivos alterados com 432 adições e 158 exclusões
  1. 12 0
      src/main/java/cn/cslg/pas/common/PatentImportErrorLog/ImportErrorLogQueryDTO.java
  2. 29 0
      src/main/java/cn/cslg/pas/common/PatentImportErrorLog/ImportErrorLogQueryVO.java
  3. 1 0
      src/main/java/cn/cslg/pas/common/dto/ImportTaskDTO.java
  4. 4 3
      src/main/java/cn/cslg/pas/common/utils/CronUtil.java
  5. 5 2
      src/main/java/cn/cslg/pas/common/utils/DateUtils2.java
  6. 4 0
      src/main/java/cn/cslg/pas/common/vo/business/ImportTaskVO.java
  7. 3 0
      src/main/java/cn/cslg/pas/common/vo/business/PatentProjectVO.java
  8. 12 0
      src/main/java/cn/cslg/pas/controller/ImportTaskController.java
  9. 0 2
      src/main/java/cn/cslg/pas/domain/business/TreeNode.java
  10. 1 1
      src/main/java/cn/cslg/pas/domain/es/Patent.java
  11. 3 1
      src/main/java/cn/cslg/pas/service/business/ImportTaskConditionService.java
  12. 88 23
      src/main/java/cn/cslg/pas/service/business/ImportTaskService.java
  13. 69 0
      src/main/java/cn/cslg/pas/service/business/PatentImportErrorLogService.java
  14. 7 4
      src/main/java/cn/cslg/pas/service/business/PatentProjectService.java
  15. 0 1
      src/main/java/cn/cslg/pas/service/business/TreeNodeService.java
  16. 22 3
      src/main/java/cn/cslg/pas/service/common/PersonFieldService.java
  17. 49 82
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentPDFFromWebThread.java
  18. 1 4
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentPictureFromWebThread.java
  19. 13 9
      src/main/java/cn/cslg/pas/service/importPatent/GetRightAndFullTextFromWebThread.java
  20. 9 6
      src/main/java/cn/cslg/pas/service/importPatent/ImportFromWebToEsService.java
  21. 11 4
      src/main/java/cn/cslg/pas/service/importPatent/SchedulingTaskService.java
  22. 4 1
      src/main/java/cn/cslg/pas/service/importPatent/TaskThread.java
  23. 74 6
      src/main/java/cn/cslg/pas/service/importPatent/WebVOTransformService.java
  24. 5 2
      src/main/java/cn/cslg/pas/service/quartzService/ImportPatentJobService.java
  25. 3 1
      src/main/java/cn/cslg/pas/service/quartzService/QuartzVO.java
  26. 1 1
      src/main/resources/mapper/ImportTaskMapper.xml
  27. 2 2
      src/main/resources/mapper/PatentProjectMapper.xml

+ 12 - 0
src/main/java/cn/cslg/pas/common/PatentImportErrorLog/ImportErrorLogQueryDTO.java

@@ -0,0 +1,12 @@
+package cn.cslg.pas.common.PatentImportErrorLog;
+
+import lombok.Data;
+
+@Data
+public class ImportErrorLogQueryDTO {
+
+    private Integer taskId;
+    private long size;
+    private long current;
+
+}

+ 29 - 0
src/main/java/cn/cslg/pas/common/PatentImportErrorLog/ImportErrorLogQueryVO.java

@@ -0,0 +1,29 @@
+package cn.cslg.pas.common.PatentImportErrorLog;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+@Data
+public class ImportErrorLogQueryVO {
+
+    /**
+     * 专利号
+     */
+    private String patentNo;
+
+    /**
+     * 错误类型
+     */
+    private Integer errorType;
+    /**
+     * 错误信息
+     */
+    private String errorMessage;
+
+
+    /**
+     * 错误类型名称
+     */
+    private String errorName;
+
+}

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

@@ -87,4 +87,5 @@ public class ImportTaskDTO {
     private List<EsCustomFieldDTO> fieldDTOS;
     private List<String> patentNos;
     private Integer productId;
+    private String updateCycle;
 }

+ 4 - 3
src/main/java/cn/cslg/pas/common/utils/CronUtil.java

@@ -20,16 +20,17 @@ public class CronUtil {
         }
         switch (cron) {
             case "week":
-                cron = "0 0 * * 0";
+//                cron = "0 0 0 ? * 1 *";
+                cron="30 * * * * ?";
                 break;
             case "month":
-                cron = "0 0 1 * *";
+                cron = "0 0 0 1 * ?";
                 break;
             case "quarter":
                 cron = "0 0 0 1 1,4,7,10 ?";
                 break;
             case "year":
-                cron = "0 0 1 1 *";
+                cron = "0 0 0 1 1 ? *";
                 break;
             default:
                 throw new XiaoShiException(ExceptionEnum.BUSINESS_CHECK,"周期非法输入");

+ 5 - 2
src/main/java/cn/cslg/pas/common/utils/DateUtils2.java

@@ -96,6 +96,9 @@ public class DateUtils2 {
 
     public static Date formStrToDate(String dateString) {
         try {
+            if(dateString==null||dateString.trim().equals("")){
+                return null;
+            }
             SimpleDateFormat formatter;
             if (dateString.contains("-")) {
                 formatter = new SimpleDateFormat("yyyy-MM-dd");
@@ -182,7 +185,7 @@ public class DateUtils2 {
     public static String getDateIndexStr(Date date, String type) {
         StringBuilder dateStr = new StringBuilder();
         int year = DateUtils2.getDateYear(date);
-        dateStr.append(year);
+        dateStr.append(year+"年");
         switch (type) {
             case "week":
                 int week = DateUtils2.getDateWeekIndex(date);
@@ -190,7 +193,7 @@ public class DateUtils2 {
                 break;
             case "month":
                 int month = DateUtils2.getDateMonthIndex(date);
-                dateStr.append("第" + month + "月");
+                dateStr.append( month + "月");
                 break;
             case "quarter":
                 int quarter = DateUtils2.getDateQuarterIndex(date);

+ 4 - 0
src/main/java/cn/cslg/pas/common/vo/business/ImportTaskVO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.vo.business;
 
+import cn.cslg.pas.common.model.cronModel.SystemFile;
 import cn.cslg.pas.common.vo.ProgressVO;
 import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -76,4 +77,7 @@ public class ImportTaskVO {
     private Integer importToType;
     private String importToName;
     private Integer importToId;
+    private SystemFile systemFile;
+    private Integer importContent;
+    private String importContentName;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/vo/business/PatentProjectVO.java

@@ -166,4 +166,7 @@ public class PatentProjectVO {
 
     @Schema(description = "状态")
     private Integer status;
+
+    @Schema(description = "状态")
+    private String updateCycle;
 }

+ 12 - 0
src/main/java/cn/cslg/pas/controller/ImportTaskController.java

@@ -1,6 +1,8 @@
 package cn.cslg.pas.controller;
 
 
+import cn.cslg.pas.common.PatentImportErrorLog.ImportErrorLogQueryDTO;
+import cn.cslg.pas.common.PatentImportErrorLog.ImportErrorLogQueryVO;
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.dto.ImportTaskDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
@@ -27,6 +29,8 @@ public class ImportTaskController {
     @Autowired
     private BusinessFactory businessFactory;
 
+    @Autowired
+    private PatentImportErrorLogService patentImportErrorLogService;
     @Operation(summary = "查询导入任务")
     @PostMapping("/queryImportTask")
     public Response queryImportTask(@RequestBody StringRequest stringRequest) throws Exception {
@@ -64,4 +68,12 @@ public Response addPdfTask(@RequestBody AddImportPDFTaskDTO addImportPDFTaskDTO)
   Integer id=  importTaskService.addPdfTask(addImportPDFTaskDTO);
     return Response.success(id);
 }
+
+
+    @Operation(summary = "查询任务报错信息")
+    @PostMapping("/getPatentImportLog")
+    public Response getPatentImportLog(@RequestBody ImportErrorLogQueryDTO importErrorLogQueryDTO) throws Exception {
+        Records records=  patentImportErrorLogService.getPatentImportLog(importErrorLogQueryDTO);
+        return Response.success(records);
+    }
 }

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

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

+ 1 - 1
src/main/java/cn/cslg/pas/domain/es/Patent.java

@@ -429,7 +429,7 @@ public class Patent {
 
 
     /**
-     * 专题库或报告id
+     * 主权要数量
      */
     @JsonProperty("main_right_num")
     private Integer mainRightNum;

+ 3 - 1
src/main/java/cn/cslg/pas/service/business/ImportTaskConditionService.java

@@ -55,11 +55,13 @@ public class ImportTaskConditionService extends ServiceImpl<ImportTaskConditionM
         importTaskCondition.setSearchCondition(quartzConditionDTO.getSearchCondition());
         importTaskCondition.setProjectId(projectId);
         importTaskCondition.setDbType(quartzConditionDTO.getDBType());
+        importTaskCondition.setType(4);
+        importTaskCondition.setUpdateCycle(quartzConditionDTO.getUpdateCycle());
         importTaskCondition.setIfUpdate(true);
         importTaskCondition.setIfCycle(true);
         importTaskCondition.setOrderByType(quartzConditionDTO.getOrderByType());
         importTaskCondition.setOrderBy(quartzConditionDTO.getOrderBy());
-        importTaskCondition.setImportContent(MathUtils.BinaryToDecimal(quartzConditionDTO.getImportContent()));
+        importTaskCondition.setImportContent(quartzConditionDTO.getImportContent());
         importTaskCondition.setSearchSetting(quartzConditionDTO.getSearchSetting());
         importTaskCondition.setUpdateCycle(quartzConditionDTO.getUpdateCycle());
         importTaskCondition.setCreateId(personnelVO.getId());

+ 88 - 23
src/main/java/cn/cslg/pas/service/business/ImportTaskService.java

@@ -42,6 +42,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 导入任务表业务层
@@ -147,11 +148,8 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         if (ifUpdate != null && ifUpdate) {
             QuartzConditionDTO quartzConditionDTO = new QuartzConditionDTO();
             BeanUtils.copyProperties(importTaskDTO, quartzConditionDTO);
-
             importTaskCondition = importTaskConditionService.addQuartzCondition(quartzConditionDTO);
         } else {
-
-
             importTaskCondition = importTaskConditionService.addQuartzCondition(importTaskDTO);
         }
 
@@ -194,18 +192,13 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                             .setOrderBy(importTaskCondition.getOrderBy())
                             .setOrderByType(importTaskCondition.getOrderByType())
                             .setPageNum(1)
-                            .setRowCount(50)
+                            .setRowCount(10)
                             .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 {
@@ -263,6 +256,7 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
 
         List<Integer> projectIds = new ArrayList<>();
         List<Integer> productIds = new ArrayList<>();
+        List<String> guids = new ArrayList<>();
         importTaskVOS.forEach(item -> {
             if (item.getCreateId() != null) {
                 createIds.add(item.getCreateId());
@@ -273,10 +267,15 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
             if (item.getProjectId() != null) {
                 projectIds.add(item.getProjectId());
             }
+            if (item.getFileGuid() != null) {
+                guids.add(item.getFileGuid());
+            }
         });
         List<Personnel> personnels = new ArrayList<>();
         List<Product> products = new ArrayList<>();
         List<Project> projects = new ArrayList<>();
+        List<SystemFile> systemFiles = new ArrayList<>();
+
         //查询创建人名称
         if (createIds.size() != 0) {
             String res = permissionService.getPersonnelByIdsFromPCS(createIds);
@@ -298,6 +297,15 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
             products = productService.list(queryWrapper);
         }
 
+        //查询文件
+        if (guids.size() != 0) {
+            String res = fileManagerService.getSystemFileFromFMS(guids);
+            systemFiles = JSONObject.parseArray(res, SystemFile.class);
+            if (systemFiles == null) {
+                systemFiles = new ArrayList<>();
+            }
+        }
+
         LambdaQueryWrapper<SystemDict> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(SystemDict::getGroupType, "IMPORT_TASK");
         List<SystemDict> systemDictList = systemDictService.list(lambdaQueryWrapper);
@@ -307,12 +315,10 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
             if (personnel != null) {
                 importTaskVO.setCreateName(personnel.getPersonnelName());
             }
-
             //装载状态
             SystemDict systemDict1 = systemDictList.stream()
                     .filter(item -> item.getType().equals("IMPORT_TASK_TYPE") && item.getType()
                             .equals(importTaskVO.getType().toString())).findFirst().orElse(null);
-
             SystemDict systemDict2 = systemDictList.stream()
                     .filter(item -> item.getType().equals("IMPORT_TASk_STATE") && item.getType()
                             .equals(importTaskVO.getState().toString())).findFirst().orElse(null);
@@ -338,7 +344,11 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                 if (project != null) {
                     importTaskVO.setImportToId(project.getId());
                     importTaskVO.setImportToType(project.getType() - 1);
-                    importTaskVO.setImportToName(project.getName());
+                    if (project.getType().equals(1)) {
+                        importTaskVO.setImportToName(project.getName() + "-专利数据库");
+                    } else {
+                        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);
@@ -348,6 +358,16 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                     importTaskVO.setImportToName(product.getName());
                 }
             }
+
+            if (importTaskVO.getFileGuid() != null) {
+                SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(importTaskVO.getFileGuid())).findFirst().orElse(null);
+                importTaskVO.setSystemFile(systemFile);
+            }
+           if(importTaskVO.getImportContent()!=null){
+               String icn=this.getImportContentStr(importTaskVO.getImportContent(),importTaskVO.getType());
+               importTaskVO.setImportContentName(icn);
+           }
+
         }
     }
 
@@ -527,11 +547,23 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         LambdaQueryWrapper<ImportTask> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ImportTask::getImportTaskConditionId, importTaskCondition.getId())
                 .orderByDesc(ImportTask::getUpdateToDate);
-        ImportTask lastImportTask = this.getOne(queryWrapper);
+        ImportTask lastImportTask = this.getOne(queryWrapper, false);
         String condition = importTaskCondition.getSearchCondition();
-        if (lastImportTask != null && lastImportTask.getUpdateToDate() != null) {
-            String dateStr = DateUtils2.dateTimeToPatentStr(lastImportTask.getUpdateToDate());
-            condition = condition + "and PD>" + dateStr;
+        Date date = new Date();
+        Date toDate = DateUtils.getDate(date, -7);
+        if (lastImportTask == null) {
+            String toDateStr = DateUtils2.dateTimeToPatentStr(toDate);
+            condition = condition + " and PD<" + toDateStr;
+        } else if (lastImportTask != null && lastImportTask.getUpdateToDate() != null) {
+            Date fromDate = DateUtils.getDate(lastImportTask.getUpdateToDate(), 1);
+            String fromDateStr = DateUtils2.dateTimeToPatentStr(fromDate);
+            String todateStr = DateUtils2.dateTimeToPatentStr(toDate);
+            condition = condition + " and (PD=" + fromDateStr + "~" + todateStr + " or GD=" + fromDateStr + "~" + todateStr + ")";
+        } else if (lastImportTask != null && lastImportTask.getUpdateToDate() == null) {
+            Date fromDate = DateUtils.getDate(lastImportTask.getCreateTime(), -7);
+            String fromDateStr = DateUtils2.dateTimeToPatentStr(fromDate);
+            String todateStr = DateUtils2.dateTimeToPatentStr(toDate);
+            condition = condition + " and (PD=" + fromDateStr + "~" + todateStr + " or GD=" + fromDateStr + "~" + todateStr + ")";
         }
         PatentStarListDTO patentStarListDto = new PatentStarListDTO()
                 .setCurrentQuery(condition)
@@ -545,11 +577,6 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
             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) {
@@ -561,10 +588,48 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         importTask.setType(importTaskCondition.getType());
         importTask.setSearchCondition(condition);
         importTask.setCreateId(importTaskCondition.getCreateId());
-        Date date = new Date();
-        Date toDate = DateUtils.getDate(date, -7);
         importTask.setUpdateToDate(toDate);
         importTask.insert();
+        schedulingTaskService.startTask();
+    }
 
+    public String getImportContentStr(Integer importContent, Integer taskType) {
+        List<String> contents = new ArrayList<>();
+        String imContents = "0000";
+        //当任务为excel导入
+        if (taskType.equals(1)) {
+            imContents = "1100";
+        }
+        //当任务为pdf导入
+        else if (taskType.equals(5)) {
+            imContents = "0001";
+        } else if (!importContent.equals(0)) {
+            imContents = MathUtils.fun(2, importContent);
+        }
+        //下载字段
+        char[] importCells = imContents.toCharArray();
+        char ifCataloguing = importCells[0];
+        char ifAddPicture = importCells[1];
+        char ifFullText = importCells[2];
+        char ifPdf = importCells[3];
+        if (ifCataloguing == '1') {
+            contents.add("著录信息");
+        }
+        if (ifAddPicture == '1') {
+            contents.add("摘要附图");
+
+        }
+        if (ifFullText == '1') {
+            contents.add("权要或说明书");
+
+        }
+        if (ifPdf == '1') {
+            contents.add("pdf或外观附图");
+        }
+        String contentStr = "";
+        if (contents.size() > 0) {
+            contentStr = StringUtils.join(contents, " ");
+        }
+        return contentStr;
     }
 }

+ 69 - 0
src/main/java/cn/cslg/pas/service/business/PatentImportErrorLogService.java

@@ -1,14 +1,83 @@
 package cn.cslg.pas.service.business;
 
 
+import cn.cslg.pas.common.PatentImportErrorLog.ImportErrorLogQueryDTO;
+import cn.cslg.pas.common.PatentImportErrorLog.ImportErrorLogQueryVO;
+import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.domain.business.AssoEventFile;
 import cn.cslg.pas.domain.business.PatentImportErrorLog;
 import cn.cslg.pas.mapper.AssoEventFileMapper;
 import cn.cslg.pas.mapper.PatentImportErrorLogMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Service
 public class PatentImportErrorLogService extends ServiceImpl<PatentImportErrorLogMapper, PatentImportErrorLog> {
 
+    public Records getPatentImportLog(ImportErrorLogQueryDTO importErrorLogQueryDTO) {
+        Records records = new Records();
+        Long size = importErrorLogQueryDTO.getSize();
+        Long current = importErrorLogQueryDTO.getCurrent();
+        records.setSize(size);
+        records.setCurrent(current);
+        Integer taskId = importErrorLogQueryDTO.getTaskId();
+        LambdaQueryWrapper<PatentImportErrorLog> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PatentImportErrorLog::getTaskId, taskId);
+        List<PatentImportErrorLog> logList = new ArrayList<>();
+        if (size != null && current != null) {
+            IPage<PatentImportErrorLog> page = this.page(new Page<>(current, size), queryWrapper);
+            logList = page.getRecords();
+            List<ImportErrorLogQueryVO> importErrorLogQueryVOS = this.loadRecord(logList);
+            records.setData(importErrorLogQueryVOS);
+            records.setTotal(page.getTotal());
+        } else {
+            logList = this.list(queryWrapper);
+            List<ImportErrorLogQueryVO> importErrorLogQueryVOS = this.loadRecord(logList);
+            records.setData(importErrorLogQueryVOS);
+        }
+        return records;
+
+    }
+
+    public List<ImportErrorLogQueryVO> loadRecord(List<PatentImportErrorLog> errorLogs) {
+        List<ImportErrorLogQueryVO> importErrorLogQueryVOS = new ArrayList<>();
+        for (PatentImportErrorLog log : errorLogs) {
+            ImportErrorLogQueryVO importErrorLogQueryVO = new ImportErrorLogQueryVO();
+            BeanUtils.copyProperties(log, importErrorLogQueryVO);
+
+            if (importErrorLogQueryVO.getErrorType() != null) {
+                switch (importErrorLogQueryVO.getErrorType()) {
+                    case -1:
+                        importErrorLogQueryVO.setErrorName("未查询到专利");
+                        break;
+                    case 1:
+                        importErrorLogQueryVO.setErrorName("未查询到说明书");
+                        break;
+
+                    case 2:
+                        importErrorLogQueryVO.setErrorName("未查询到权要");
+                        break;
+
+                    case 3:
+                        importErrorLogQueryVO.setErrorName("未查询到摘要附图");
+                        break;
+
+                    case 4:
+                        importErrorLogQueryVO.setErrorName("未查询到pdf或外观附图");
+                        break;
+
+                }
+
+            }
+            importErrorLogQueryVOS.add(importErrorLogQueryVO);
+        }
+        return importErrorLogQueryVOS;
+    }
 }

+ 7 - 4
src/main/java/cn/cslg/pas/service/business/PatentProjectService.java

@@ -1005,12 +1005,13 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
             qrtzTaskDTO.setCron(crons);
             qrtzTaskDTO.setId(projectId);
             qrtzTaskDTO.setQuartzVO(quartzVO);
+            qrtzTaskDTO.setJobClass("cn.cslg.pas.service.quartzService.ImportPatentJobService");
             try {
                 jobService.addJob(qrtzTaskDTO);
             } catch (Exception e) {
                 throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "新建定时任务错误");
             }
-            project.updateById();
+            project.insert();
         }
         return project;
     }
@@ -1021,8 +1022,6 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         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);
@@ -1035,7 +1034,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
             } catch (Exception e) {
                 throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "新建定时任务错误");
             }
-        } else if (project.getIfUpdate() != null && project.getIfUpdate() && ifUpdate != null && ifUpdate == false) {
+        } else if (project.getIfUpdate() != null && project.getIfUpdate() && ifUpdate != null && ifUpdate == true) {
             if (project.getUpdateCycle().equals(updateCycle)) {
                 return project;
             }
@@ -1043,18 +1042,22 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
             QrtzTaskDTO qrtzTaskDTO = new QrtzTaskDTO();
             qrtzTaskDTO.setCron(crons);
             qrtzTaskDTO.setQuartzVO(quartzVO);
+            qrtzTaskDTO.setId(projectId);
             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);
+            qrtzTaskDTO.setJobClass("cn.cslg.pas.service.quartzService.ImportPatentJobService");
             try {
                 jobService.addJob(qrtzTaskDTO);
             } catch (Exception e) {
                 throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "新建定时任务错误");
             }
         }
+        project.setUpdateCycle(updateCycle);
+        project.setIfUpdate(ifUpdate);
         project.updateById();
         return project;
     }

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

@@ -806,7 +806,6 @@ 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);

+ 22 - 3
src/main/java/cn/cslg/pas/service/common/PersonFieldService.java

@@ -15,6 +15,7 @@ import cn.cslg.pas.common.vo.QueryFieldsVO;
 import cn.cslg.pas.common.vo.PersonSelfFieldVO;
 import cn.cslg.pas.common.vo.business.AllCustomFieldVO;
 import cn.cslg.pas.common.vo.patentCount.GetAllPatentCountVO;
+import cn.cslg.pas.domain.business.CustomField;
 import cn.cslg.pas.domain.business.ReportProject;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
@@ -477,9 +478,27 @@ public class PersonFieldService {
             throw new XiaoShiException("不存在此表");
         }
         Boolean flag = true;
-        List<GetAllPatentCountVO> fieldVOS = JSON.parseArray(fieldJson, GetAllPatentCountVO.class);
-        fieldVOS = fieldVOS.stream().filter(item -> flag.equals(item.getIfStats()) && flag.equals(item.getDefaultShowStats())).collect(Collectors.toList());
-        fieldVOS.forEach(item -> item.setFiledKind(-1));
+
+        //查询栏位
+        LambdaQueryWrapper<CustomField> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(CustomField::getProjectId,projectId)
+                     .eq(CustomField::getName,"监控周期")
+                     .eq(CustomField::getType,4);
+CustomField customField =customFieldService.getOne(queryWrapper,false);
+        List<GetAllPatentCountVO> fieldVOS =new ArrayList<>();
+if(customField!=null){
+    GetAllPatentCountVO getAllPatentCountVO =new GetAllPatentCountVO();
+    getAllPatentCountVO.setType("Array");
+    getAllPatentCountVO.setValue(customField.getId().toString());
+    getAllPatentCountVO.setName(customField.getName());
+    getAllPatentCountVO.setFiledKind(0);
+    fieldVOS.add(getAllPatentCountVO);
+}
+        List<GetAllPatentCountVO> fieldVOS2 = JSON.parseArray(fieldJson, GetAllPatentCountVO.class);
+
+        fieldVOS2 = fieldVOS2.stream().filter(item -> flag.equals(item.getIfStats()) && flag.equals(item.getDefaultShowStats())).collect(Collectors.toList());
+        fieldVOS2.forEach(item -> item.setFiledKind(-1));
+        fieldVOS.addAll(fieldVOS2);
         redisUtil.set(RedisConf.FIELD_COUNT + RedisConf.SYMBOL_COLON + key, JsonUtils.objectToJson(fieldVOS));
         return fieldVOS;
     }

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

@@ -52,92 +52,25 @@ public class GetPatentPDFFromWebThread extends Thread {
                     taskCondition.await();
                 }
             } catch (Exception e) {
-            e.printStackTrace();
+                e.printStackTrace();
             }
             if (uploadPatentWebDTOs.size() == 0) {
                 break;
             }
             UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOs.remove(0);
             try {
-
-
-                String usedPatentNo;
-                StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
-                if (starPatentVO.getPN() != null && !starPatentVO.getPN().equals("")) {
-                    usedPatentNo = starPatentVO.getPN();
-                } else {
-                    usedPatentNo = starPatentVO.getGN();
-                }
-
-                String pdfUrl = "", pdfUrl1 = "", pdfUrl2 = "";
-                //先根据公开号判断国家,若没有公开号再根据申请号判断,调用"获得中国专利pdf"接口,获得1个或2个pdf的url地址
-                if ((starPatentVO.getPN() != null && starPatentVO.getPN().contains("CN")) || (starPatentVO.getPN() == null && starPatentVO.getPatentNo().contains("CN"))) {
-
-                    String pdfUrlStr = patentStarApiService.getCnPdfApi(starPatentVO.getANO());
-
-                    //若没有取到说明书pdf,则将当前申请号和备注信息存入问题记录表,并返回空对象
-                    if (!pdfUrlStr.equals("")) {
-                    if (pdfUrlStr.contains("|http")) {  //若包含公开和授权两个pdf
-                        String[] pdfUrlArr = pdfUrlStr.split("\\|http");
-                        pdfUrl1 = pdfUrlArr[0].substring(pdfUrlArr[0].indexOf("http"), pdfUrlArr[0].indexOf("?"));
-                        pdfUrlArr[1] = "http" + pdfUrlArr[1];
-                        pdfUrl2 = pdfUrlArr[1].substring(pdfUrlArr[1].indexOf("http"), pdfUrlArr[1].indexOf("?"));
-
-                        if (pdfUrl1.contains("0A_CN_0.pdf")) {
-                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
-                            File file1 = FileUtils.getFileByUrl(pdfUrl1);
-                            fileManagerService.uploadFileWithGuid(file1, guid1);
-                            String guid2 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
-                            File file2 = FileUtils.getFileByUrl(pdfUrl2);
-                            fileManagerService.uploadFileWithGuid(file2, guid2);
-                        } else {
-                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
-                            File file1 = FileUtils.getFileByUrl(pdfUrl1);
-                            fileManagerService.uploadFileWithGuid(file1, guid1);
-                            String guid2 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
-                            File file2 = FileUtils.getFileByUrl(pdfUrl2);
-                            fileManagerService.uploadFileWithGuid(file2, guid2);
-                        }
-                    } else {  //若只有一个
-                        if(pdfUrlStr.contains("?")) {
-                            pdfUrl1 = pdfUrlStr.substring(pdfUrlStr.indexOf("http"), pdfUrlStr.indexOf("?"));
-                        }
-                        else {
-                            pdfUrl1 = pdfUrlStr.substring(pdfUrlStr.indexOf("http"));
-                        }
-                        if (pdfUrl1.contains("0A_CN_0.pdf")) {
-                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
-                            File file1 = FileUtils.getFileByUrl(pdfUrl1);
-                            fileManagerService.uploadFileWithGuid(file1, guid1);
-                        } else {
-                            String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
-                            File file1 = FileUtils.getFileByUrl(pdfUrl1);
-                            fileManagerService.uploadFileWithGuid(file1, guid1);
-                        }
-                    }
-                    //根据专利号调用"获得世界专利pdf"接口,获得pdf的url地址
-                } else {
-
-                        recordQuestionPatent(starPatentVO.getAN());
-                    }
-                }
-                else {
-                    pdfUrl = patentStarApiService.getEnPdfApi(usedPatentNo);
-                    //若没有取到说明书pdf,则将当前申请号和备注信息存入问题记录表,并返回空对象
-
-                    if (!pdfUrl.equals("")) {
-                        String guid1 = FormatUtil.getPDFFormat(usedPatentNo, 0);
-                        File file1 = FileUtils.getFileByUrl(pdfUrl);
-                        fileManagerService.uploadFileWithGuid(file1, guid1);
-                    }
-                    else{
-                        recordQuestionPatent(starPatentVO.getAN());
-
-                    }
-                }
-                taskThread.updateProcess(false,4,"");
+               StarPatentVO starPatentVO =uploadPatentWebDTO.getStarPatentVO();
+            Integer patentType =   starPatentVO.getPT();
+               if(patentType.equals(3)){
+                   WebVOTransformService webVOTransformService =applicationContext.getBean(WebVOTransformService.class);
+                   webVOTransformService.getCNPatentPicture(uploadPatentWebDTO,importTaskAMVO.getId());
+               }
+               else {
+                   this.addPDF(uploadPatentWebDTO);
+               }
+                taskThread.updateProcess(false, 4, "");
             } catch (Exception e) {
-                taskThread.updateProcess(true,4,"");
+                taskThread.updateProcess(true, 4, "");
                 e.printStackTrace();
             }
         }
@@ -155,8 +88,8 @@ public class GetPatentPDFFromWebThread extends Thread {
     }
 
     public void awakeTask(UploadPatentWebDTO uploadPatentWebDTO) {
-        UploadPatentWebDTO uploadPatentWebDTO1=new UploadPatentWebDTO();
-        BeanUtils.copyProperties(uploadPatentWebDTO,uploadPatentWebDTO1);
+        UploadPatentWebDTO uploadPatentWebDTO1 = new UploadPatentWebDTO();
+        BeanUtils.copyProperties(uploadPatentWebDTO, uploadPatentWebDTO1);
         uploadPatentWebDTOs.add(uploadPatentWebDTO1);
         if (taskLock.tryLock()) {
             taskCondition.signalAll();
@@ -174,11 +107,45 @@ public class GetPatentPDFFromWebThread extends Thread {
 
     }
 
-    public void recordQuestionPatent(String appNo){
+    public void recordQuestionPatent(String appNo) {
         PatentImportErrorLog patentImportErrorLog = new PatentImportErrorLog();
         patentImportErrorLog.setPatentNo(appNo);
         patentImportErrorLog.setErrorType(4);
         patentImportErrorLog.setTaskId(importTaskAMVO.getId());
         patentImportErrorLog.insert();
     }
+
+    public void addPDF(UploadPatentWebDTO uploadPatentWebDTO) throws Exception{
+        StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
+
+        WebVOTransformService webVOTransformService = applicationContext.getBean(WebVOTransformService.class);
+        String pdfUrl = "", pdfUrl1 = "", pdfUrl2 = "";
+        //先根据公开号判断国家,若没有公开号再根据申请号判断,调用"获得中国专利pdf"接口,获得1个或2个pdf的url地址
+        if ((starPatentVO.getPN() != null && starPatentVO.getPN().contains("CN")) || (starPatentVO.getPN() == null && starPatentVO.getPatentNo().contains("CN"))) {
+
+            String pdfUrlStr = patentStarApiService.getCnPdfApi(starPatentVO.getANO());
+            //若没有取到说明书pdf,则将当前申请号和备注信息存入问题记录表,并返回空对象
+            if (!pdfUrlStr.equals("")) {
+                webVOTransformService.getCnPatentPDF(pdfUrlStr, starPatentVO);
+                //根据专利号调用"获得世界专利pdf"接口,获得pdf的url地址
+            } else {
+                recordQuestionPatent(starPatentVO.getAN());
+            }
+        } else {
+            String usedPatentNo;
+            if (starPatentVO.getPN() != null && !starPatentVO.getPN().equals("")) {
+                usedPatentNo = starPatentVO.getPN();
+            } else {
+                usedPatentNo = starPatentVO.getGN();
+            }
+            pdfUrl = patentStarApiService.getEnPdfApi(usedPatentNo);
+            //若没有取到说明书pdf,则将当前申请号和备注信息存入问题记录表,并返回空对象
+            if (!pdfUrl.equals("")) {
+                webVOTransformService.getWdPatentPDF(pdfUrl, usedPatentNo);
+            } else {
+                recordQuestionPatent(starPatentVO.getAN());
+            }
+        }
+
+    }
 }

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

@@ -77,10 +77,7 @@ public class GetPatentPictureFromWebThread extends Thread {
                     } else {
                         recordQuestionPatent(uploadPatentWebDTO.getStarPatentVO().getANO());
                     }
-                    //添加iguan、】饿附图
-                    
-                    WebVOTransformService webVOTransformService =applicationContext.getBean(WebVOTransformService.class);
-                    webVOTransformService.getCNPatentPicture(uploadPatentWebDTO);
+
                 } else {
                     ImportSinglePatentService importSinglePatentService = applicationContext.getBean(ImportSinglePatentService.class);
                     byte[] bytes = importSinglePatentService.getImages(usedNo);

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

@@ -59,15 +59,18 @@ public class GetRightAndFullTextFromWebThread extends Thread {
             try {
                 StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
                 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.getANO());
-                    WebVOTransformService webVOTransformService = applicationContext.getBean(WebVOTransformService.class);
-                    webVOTransformService.loadClaim(patent, cnFullXmlStr);
-                    webVOTransformService.loadFullText(patent, cnFullXmlStr);
+                if (!patent.getPatentType().equals("3")) {
+                    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.getANO());
+                        WebVOTransformService webVOTransformService = applicationContext.getBean(WebVOTransformService.class);
+                        webVOTransformService.loadClaim(patent, cnFullXmlStr,importTaskAMVO.getId());
+                        webVOTransformService.loadFullText(patent, cnFullXmlStr,importTaskAMVO.getId());
+                    }
                 }
-                //加入es保存队列
-                this.addPatent(uploadPatentWebDTO);
+                    //加入es保存队列
+                    this.addPatent(uploadPatentWebDTO);
+
             } catch (Exception e) {
                 this.addPatent(uploadPatentWebDTO);
                 e.printStackTrace();
@@ -111,8 +114,9 @@ public class GetRightAndFullTextFromWebThread extends Thread {
         SavePatentToEsThread savePatentToEsThread = importFromWebToEsService.getSavePatentToEsThreadObject();
         savePatentToEsThread.awakeTask(uploadPatentWebDTO);
     }
+
     public void sendDone() {
         SavePatentToEsThread savePatentToEsThread = importFromWebToEsService.getSavePatentToEsThreadObject();
-            savePatentToEsThread.setIfProductAll(true);
+        savePatentToEsThread.setIfProductAll(true);
     }
 }

+ 9 - 6
src/main/java/cn/cslg/pas/service/importPatent/ImportFromWebToEsService.java

@@ -53,9 +53,10 @@ public class ImportFromWebToEsService implements PatentImportImp {
     private List<UploadPatentWebDTO> uploadPatentWebDTOS = new ArrayList<>();
 
 
-    public GetCataloguingFromWebThread getCataloguingFromWebThreadObject(){
-        return  getCataloguingFromWebThread;
+    public GetCataloguingFromWebThread getCataloguingFromWebThreadObject() {
+        return getCataloguingFromWebThread;
     }
+
     public GetPatentPDFFromWebThread getPatentPDFFromWebThreadObject() {
         return getPatentPDFFromWebThread;
     }
@@ -71,6 +72,7 @@ public class ImportFromWebToEsService implements PatentImportImp {
     public SavePatentToEsThread getSavePatentToEsThreadObject() {
         return savePatentToEsThread;
     }
+
     @Override
     public Boolean startPatentThread() {
         //装载专利信息的计数器
@@ -245,10 +247,13 @@ public class ImportFromWebToEsService implements PatentImportImp {
                         StarPatentVO starPatentVO = starPatents.get(j);
 
                         if (nos != null) {
-                            nos.removeIf(item -> item.equals(starPatentVO.getAN())
+                            String no = nos.stream().filter(item -> item.equals(starPatentVO.getAN())
                                     || item.equals(starPatentVO.getPN())
                                     || item.equals(starPatentVO.getGN())
-                                    || item.equals(starPatentVO.getANO()));
+                                    || item.equals(starPatentVO.getANO())).findFirst().orElse(null);
+                            if (no != null) {
+                                nos.remove(no);
+                            }
                         }
 
                         UploadPatentWebDTO uploadPatentWebDTO = new UploadPatentWebDTO();
@@ -318,7 +323,6 @@ public class ImportFromWebToEsService implements PatentImportImp {
     }
 
 
-
     public void setPatentToEsProductAll(String message) {
         synchronized ("装载专利信息") {
             System.out.println(message);
@@ -330,5 +334,4 @@ public class ImportFromWebToEsService implements PatentImportImp {
     }
 
 
-
 }

+ 11 - 4
src/main/java/cn/cslg/pas/service/importPatent/SchedulingTaskService.java

@@ -6,9 +6,11 @@ import cn.cslg.pas.common.vo.ImportTaskAMVO;
 import cn.cslg.pas.common.vo.ProgressVO;
 import cn.cslg.pas.domain.business.ImportTask;
 import cn.cslg.pas.domain.business.ImportTaskCondition;
+import cn.cslg.pas.domain.business.PatentProject;
 import cn.cslg.pas.domain.business.ReportProject;
 import cn.cslg.pas.service.business.ImportTaskConditionService;
 import cn.cslg.pas.service.business.ImportTaskService;
+import cn.cslg.pas.service.business.PatentProjectService;
 import cn.cslg.pas.service.business.ReportProjectService;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -42,7 +44,8 @@ public class SchedulingTaskService {
     private List<ImportTaskAMVO> importTaskAMVOS;
     @Autowired
     private WebVOTransformService webVOTransformService;
-
+   @Autowired
+   private PatentProjectService patentProjectService;
     public void startTask() {
         Integer freeCount = Constants.MAX_IMPORT_TASK_COUNT - threadPoolTaskExecutor.getActiveCount();
         if (importTaskAMVOS == null) {
@@ -91,16 +94,20 @@ public class SchedulingTaskService {
         List<Integer> taskConditionIds = new ArrayList<>();
         List<ImportTaskCondition> importTaskConditions = new ArrayList<>();
         taskConditionIds = importTaskList.stream().map(ImportTask::getImportTaskConditionId).collect(Collectors.toList());
+
         //根据taskid查询taskCondition
         if (taskConditionIds.size() != 0) {
             LambdaQueryWrapper<ImportTaskCondition> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.in(ImportTaskCondition::getId, taskConditionIds);
             importTaskConditions = importTaskConditionService.list(queryWrapper);
-
         }
+
         for (ImportTask importTask : importTaskList) {
 
             ImportTaskCondition importTaskCondition = importTaskConditions.stream().filter(item -> item.getId().equals(importTask.getImportTaskConditionId())).findFirst().orElse(null);
+            LambdaQueryWrapper<PatentProject> queryWrapper =new LambdaQueryWrapper<>();
+            queryWrapper.eq(PatentProject::getProjectId,importTaskCondition.getProjectId());
+            PatentProject project = patentProjectService.getOne(queryWrapper);
             ImportTaskAMVO importTaskAMVO = new ImportTaskAMVO();
             BeanUtils.copyProperties(importTask, importTaskAMVO);
             if (importTaskCondition != null) {
@@ -115,6 +122,7 @@ public class SchedulingTaskService {
                 importTaskAMVO.setProjectType(importTaskCondition.getProjectType());
                 importTaskAMVO.setPatentNoStr(importTaskCondition.getPatentNos());
                 importTaskAMVO.setPdfType(importTaskCondition.getPdfType());
+                importTaskAMVO.setUpdateCycle(project.getUpdateCycle());
                 if (importTaskCondition.getCustomFields() != null) {
                     JSONArray jsonArray = JSONArray.parseArray(importTaskCondition.getCustomFields());
                     List<EsCustomFieldDTO> dtos = jsonArray.toJavaList(EsCustomFieldDTO.class);
@@ -122,7 +130,7 @@ public class SchedulingTaskService {
                 }
 
                 //定时任务
-                if (importTaskCondition.getIfCycle() != null && importTaskCondition.getIfCycle()) {
+                if (importTaskCondition.getIfCycle()!= null && importTaskCondition.getIfCycle()&&importTask.getUpdateToDate()!=null) {
                     List<EsCustomFieldDTO> dtoList = webVOTransformService.getEsCustomFieldDTOList(importTaskAMVO);
                     if (importTaskAMVO.getFieldDTOS() == null) {
                         importTaskAMVO.setFieldDTOS(dtoList);
@@ -143,7 +151,6 @@ public class SchedulingTaskService {
             importTaskAMVO.setProgressVO(progressVO);
             importTaskAMVOS.add(importTaskAMVO);
 
-
         }
         return importTaskAMVOS;
 

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

@@ -136,12 +136,15 @@ public class TaskThread extends Thread {
             task.setState(2);
             importTaskAMVO.setState(2);
             MailSendService mailSendService = applicationContext.getBean(MailSendService.class);
+            task.setDoneNum(task.getAllNum());
             mailSendService.sendImportTaskDoneEmail("导入任务",task.getName(),task.getCreateId());
 
         } else {
             task.setState(importTaskAMVO.getState());
+            task.setDoneNum(this.patentProcess.getPatentDoneNum());
         }
-        task.setDoneNum(this.patentProcess.getPatentDoneNum());
+
+
         importTaskAMVO.setDoneNum(this.patentProcess.getPatentDoneNum());
         task.updateById();
         MessageService messageService = applicationContext.getBean(MessageService.class);

+ 74 - 6
src/main/java/cn/cslg/pas/service/importPatent/WebVOTransformService.java

@@ -8,6 +8,7 @@ import cn.cslg.pas.common.utils.ClaimUtils.ClaimSplitUtils;
 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.business.PatentImportErrorLog;
 import cn.cslg.pas.domain.es.*;
 import cn.cslg.pas.exception.ExceptionEnum;
 import cn.cslg.pas.exception.XiaoShiException;
@@ -729,10 +730,11 @@ public class WebVOTransformService {
      * @param patent
      * @param cnFullXmlStr
      */
-    public void loadFullText(Patent patent, String cnFullXmlStr) {
+    public void loadFullText(Patent patent, String cnFullXmlStr,Integer taskId) {
         try {
             //若没有取到全文文本,即取不到说明书文本,则将当前申请号或专利号和备注信息记录到问题记录表
             if (cnFullXmlStr.equals("")) {
+                recordQuestionPatent(patent.getAppNo(),taskId,1);
                 return;
             }
 
@@ -802,7 +804,7 @@ public class WebVOTransformService {
      * @param patent
      * @param cnFullXmlStr
      */
-    public void loadClaim(Patent patent, String cnFullXmlStr) {
+    public void loadClaim(Patent patent, String cnFullXmlStr,Integer taskId) {
         try {
             if (cnFullXmlStr != null && cnFullXmlStr != "") {
                 SAXReader reader = new SAXReader();
@@ -833,6 +835,7 @@ public class WebVOTransformService {
                 if (reClaims.size() != 0) {
                     reClaim = cn.cslg.pas.common.utils.StringUtils.join(reClaims, "@##");
                 }
+                System.out.println(reClaim);
                 //装载权利要求原文
                 Text text = new Text();
                 text.setLanguage("CN");
@@ -852,11 +855,21 @@ public class WebVOTransformService {
                     patent.setMainRightNum(mainClaims.size());
                 }
             }
+            else {
+                this.recordQuestionPatent(patent.getAppNo(),taskId,2);
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
+    public void recordQuestionPatent(String appNo,Integer taskId,Integer type) {
+        PatentImportErrorLog patentImportErrorLog = new PatentImportErrorLog();
+        patentImportErrorLog.setPatentNo(appNo);
+        patentImportErrorLog.setErrorType(type);
+        patentImportErrorLog.setTaskId(taskId);
+        patentImportErrorLog.insert();
+    }
     public String getPersonType(String name, List<PatentPerson> personList) {
         List<String> names = new ArrayList<>();
         if (personList != null) {
@@ -927,7 +940,7 @@ public class WebVOTransformService {
             case "实质审查的生效":
             case "专利申请的恢复":
 
-                patent.setSimpleStatus("2");
+                patent.setSimpleStatus("3");
                 break;
 
         }
@@ -936,9 +949,9 @@ public class WebVOTransformService {
 
     public List<EsCustomFieldDTO> getEsCustomFieldDTOList(ImportTaskAMVO importTaskAMVO) {
         UploadParamsVO.Field field = new UploadParamsVO.Field();
-        field.setKey("定时跟新:6");
+        field.setKey("监控周期:4");
         Date date = new Date();
-        String cycle = DateUtils2.getDateIndexStr(date, importTaskAMVO.getUpdateCycle());
+        String cycle = DateUtils2.getDateIndexStr(date,importTaskAMVO.getUpdateCycle());
 
         field.setFieldList(Arrays.asList(cycle));
 
@@ -967,7 +980,7 @@ public class WebVOTransformService {
         return list;
     }
 
-    public void getCNPatentPicture(UploadPatentWebDTO uploadPatentWebDTO) {
+    public void getCNPatentPicture(UploadPatentWebDTO uploadPatentWebDTO,Integer taskId) {
         try {
             Long startMillis = System.currentTimeMillis();
             List<String> pictureUrls = patentStarApiService.getExternalFigure(uploadPatentWebDTO.getStarPatentVO().getANO());
@@ -988,6 +1001,9 @@ public class WebVOTransformService {
                 }
 
             }
+            else {
+                this.recordQuestionPatent(patent.getAppNo(),taskId,4);
+            }
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -995,4 +1011,56 @@ public class WebVOTransformService {
         }
     }
 
+
+    public  void getCnPatentPDF(String pdfUrlStr,StarPatentVO starPatentVO) throws Exception {
+        String  pdfUrl1 = "", pdfUrl2 = "";
+        if (pdfUrlStr.contains("|http")) {  //若包含公开和授权两个pdf
+            String[] pdfUrlArr = pdfUrlStr.split("\\|http");
+            pdfUrl1 = pdfUrlArr[0].substring(pdfUrlArr[0].indexOf("http"), pdfUrlArr[0].indexOf("?"));
+            pdfUrlArr[1] = "http" + pdfUrlArr[1];
+            pdfUrl2 = pdfUrlArr[1].substring(pdfUrlArr[1].indexOf("http"), pdfUrlArr[1].indexOf("?"));
+
+            if (pdfUrl1.contains("0A_CN_0.pdf")) {
+                String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
+                File file1 = FileUtils.getFileByUrl(pdfUrl1);
+                fileManagerService.uploadFileWithGuid(file1, guid1);
+                String guid2 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
+                File file2 = FileUtils.getFileByUrl(pdfUrl2);
+                fileManagerService.uploadFileWithGuid(file2, guid2);
+            } else {
+                String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
+                File file1 = FileUtils.getFileByUrl(pdfUrl1);
+                fileManagerService.uploadFileWithGuid(file1, guid1);
+                String guid2 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
+                File file2 = FileUtils.getFileByUrl(pdfUrl2);
+                fileManagerService.uploadFileWithGuid(file2, guid2);
+            }
+        } else {  //若只有一个
+            if(pdfUrlStr.contains("?")) {
+                pdfUrl1 = pdfUrlStr.substring(pdfUrlStr.indexOf("http"), pdfUrlStr.indexOf("?"));
+            }
+            else {
+                pdfUrl1 = pdfUrlStr.substring(pdfUrlStr.indexOf("http"));
+            }
+            if (pdfUrl1.contains("0A_CN_0.pdf")) {
+                String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 0);
+                File file1 = FileUtils.getFileByUrl(pdfUrl1);
+                fileManagerService.uploadFileWithGuid(file1, guid1);
+            } else {
+                String guid1 = FormatUtil.getPDFFormat(starPatentVO.getAN(), 1);
+                File file1 = FileUtils.getFileByUrl(pdfUrl1);
+                fileManagerService.uploadFileWithGuid(file1, guid1);
+            }
+        }
+    }
+
+    public void getWdPatentPDF(String pdfUrl,String usedPatentNo) throws Exception{
+
+        if (!pdfUrl.equals("")) {
+            String guid1 = FormatUtil.getPDFFormat(usedPatentNo, 0);
+            File file1 = FileUtils.getFileByUrl(pdfUrl);
+            fileManagerService.uploadFileWithGuid(file1, guid1);
+        }
+    }
+
 }

+ 5 - 2
src/main/java/cn/cslg/pas/service/quartzService/ImportPatentJobService.java

@@ -2,6 +2,7 @@ package cn.cslg.pas.service.quartzService;
 
 import cn.cslg.pas.domain.business.ImportTaskCondition;
 import cn.cslg.pas.service.business.ImportTaskConditionService;
+import cn.cslg.pas.service.business.ImportTaskService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
 import org.quartz.DisallowConcurrentExecution;
@@ -17,7 +18,7 @@ import java.util.List;
 @RequiredArgsConstructor
 public class ImportPatentJobService extends QuartzJobBean {
 private final ImportTaskConditionService  importTaskConditionService;
-
+private final ImportTaskService importTaskService;
     @Override
     public void executeInternal(JobExecutionContext context) throws JobExecutionException {
         JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
@@ -29,7 +30,9 @@ private final ImportTaskConditionService  importTaskConditionService;
         queryWrapper.eq(ImportTaskCondition::getIfCycle,true)
                     .eq(ImportTaskCondition::getIfUpdate,true);
         List<ImportTaskCondition> importTaskConditions =importTaskConditionService.list(queryWrapper);
-
+            importTaskConditions.forEach(item->{
+                importTaskService.addImportTaskByCondition(item);
+            });
 
     }
 }

+ 3 - 1
src/main/java/cn/cslg/pas/service/quartzService/QuartzVO.java

@@ -2,8 +2,10 @@ package cn.cslg.pas.service.quartzService;
 
 import lombok.Data;
 
+import java.io.Serializable;
+
 @Data
-public class QuartzVO {
+public class QuartzVO   implements Serializable {
     /**
      * 任务名称
      */

+ 1 - 1
src/main/resources/mapper/ImportTaskMapper.xml

@@ -4,7 +4,7 @@
     <select id="getImportTask" resultType="cn.cslg.pas.common.vo.business.ImportTaskVO">
         select it.name as name, it.id,it.search_condition as searchCondition,it.all_num as allNum,
                it.default_num as defaultNum,it.type as type,it.create_id as
-        createId,it.create_time as createTime ,it.state as  state,it.done_num as doneNum ,itc.file_guid as fileGuid,itc.project_type as projectType ,itc.project_id as projectId from import_task it left join import_task_condition itc on
+        createId,it.create_time as createTime ,it.state as  state,it.done_num as doneNum ,itc.file_guid as fileGuid,itc.project_type as projectType ,itc.project_id as projectId,itc.import_content as importContent from import_task it left join import_task_condition itc on
         it.import_task_condition_id=itc.id
         <if test="sql1!=''">
 

+ 2 - 2
src/main/resources/mapper/PatentProjectMapper.xml

@@ -4,7 +4,7 @@
     <select id="getPatentProject" resultType="cn.cslg.pas.common.vo.business.PatentProjectVO">
         select * from ( select p.id as id,p.name as name ,p.contract_no as contract_no,p.volume_number as
         volumeNumber,p.tenant_id as tenantId,p.commission_case_day as commissionCaseDay,p.description as description,p.create_id as
-        createId,p.create_time as createTime,pp.if_update as ifUpdate,pp.crons as crons,pp.status as status,
+        createId,p.create_time as createTime,pp.if_update as ifUpdate,pp.crons as crons,pp.status as status,pp.update_cycle as updateCycle,
         p.entrust_type as entrustType,p.entrust_id as entrustId,p.head_id as headId,p.department_id as departmentId,
         asps.scenario_id as scenarioId,aspe.event_id as eventId,aspt.tree_type as treeType,aspt.field_id as fieldId,
         aspm.matter_id as matterId from patent_project as pp
@@ -24,7 +24,7 @@
     <select id="getPatentProjectCount" resultType="java.lang.Long">
         select count(*) from (select p.id as id,p.name as name ,p.contract_no as contract_no,p.volume_number as
         volumeNumber,p.tenant_id as tenantId,p.commission_case_day as commissionCaseDay,p.description as description,p.create_id as
-        createId,p.create_time as createTime,pp.if_update as ifUpdate,pp.crons as crons,pp.status as status,
+        createId,p.create_time as createTime,pp.if_update as ifUpdate,pp.crons as crons,pp.status as status,pp.update_cycle as updateCycle,
         p.entrust_type as entrustType,p.entrust_id as entrustId,p.head_id as headId,p.department_id as departmentId,
         asps.scenario_id as scenarioId,aspe.event_id as eventId,aspt.tree_type as treeType,aspt.field_id as fieldId,
         aspm.matter_id as matterId from patent_project as pp left join project as p