Просмотр исходного кода

2/19 专利号导入记录未检测到的专利号

lwhhszx 1 год назад
Родитель
Сommit
941acb886d

+ 4 - 0
src/main/java/cn/cslg/pas/common/dto/PatentStarListDTO.java

@@ -5,6 +5,8 @@ import lombok.Data;
 import lombok.experimental.Accessors;
 import org.joda.time.DateTime;
 
+import java.util.List;
+
 /**
  * 专利之星检索dto类
  *
@@ -56,4 +58,6 @@ public class PatentStarListDTO {
 
     private Boolean formed;
 
+    private List<String> nos;
+
 }

+ 38 - 0
src/main/java/cn/cslg/pas/domain/business/PatentImportErrorLog.java

@@ -0,0 +1,38 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * 专利导入错误记录
+ * @Author lrj
+ * @Date 2023/2/20
+ */
+@Data
+@TableName("patent_import_error_log")
+public class PatentImportErrorLog extends BaseEntity<PatentImportErrorLog> {
+    /**
+     * 专利号
+     */
+    @TableField(value = "patent_no")
+    private String patentNo;
+
+    /**
+     * 错误类型
+     */
+    @TableField(value = "error_type")
+    private Integer errorType;
+    /**
+     * 错误信息
+     */
+    @TableField(value = "error_message")
+    private String errorMessage;
+
+    /**
+     * 任务id
+     */
+    @TableField(value = "task_id")
+    private Integer taskId;
+}

+ 14 - 0
src/main/java/cn/cslg/pas/mapper/PatentImportErrorLogMapper.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.AdminProceed;
+import cn.cslg.pas.domain.business.PatentImportErrorLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author lrj
+ * @Date 2023/2/20
+ */
+@Repository
+public interface PatentImportErrorLogMapper extends BaseMapper<PatentImportErrorLog> {
+}

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

@@ -0,0 +1,14 @@
+package cn.cslg.pas.service.business;
+
+
+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.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PatentImportErrorLogService extends ServiceImpl<PatentImportErrorLogMapper, PatentImportErrorLog> {
+
+}

+ 1 - 0
src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java

@@ -792,6 +792,7 @@ public class PatentStarApiService {
                 patentStarListDTO1.setCurrentQuery(conditions);
                 patentStarListDTO1.setRowCount(50);
                 patentStarListDTO1.setTotal(item.size());
+                patentStarListDTO1.setNos(item);
                 patentStarListDTOS.add(patentStarListDTO1);
             }
         });

+ 37 - 12
src/main/java/cn/cslg/pas/service/importPatent/ImportFromWebToEsService.java

@@ -4,12 +4,15 @@ import cn.cslg.pas.common.dto.PatentStarListDTO;
 import cn.cslg.pas.common.dto.UploadPatentWebDTO;
 import cn.cslg.pas.common.model.cronModel.Calculate;
 import cn.cslg.pas.common.model.cronModel.SystemFile;
-import cn.cslg.pas.common.utils.*;
+import cn.cslg.pas.common.utils.DateUtils;
+import cn.cslg.pas.common.utils.FormatUtil;
+import cn.cslg.pas.common.utils.ReadExcelUtils;
 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.business.PatentImportErrorLog;
 import cn.cslg.pas.domain.es.Patent;
 import cn.cslg.pas.factorys.PatentImportFactory.PatentImportImp;
+import cn.cslg.pas.service.business.PatentImportErrorLogService;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.common.PatentStarApiService;
 import com.alibaba.fastjson.JSONArray;
@@ -93,8 +96,8 @@ public class ImportFromWebToEsService implements PatentImportImp {
             String dbType = importTaskAMVO.getDbType();  //检索数据库类型
             Integer taskStartNum = importTaskAMVO.getDoneNum();
             List<String> addPatentNos = new ArrayList<>();
-            String patentNoStr =importTaskAMVO.getPatentNoStr();
-            if(patentNoStr!=null){
+            String patentNoStr = importTaskAMVO.getPatentNoStr();
+            if (patentNoStr != null) {
                 addPatentNos = JSONArray.parseArray(patentNoStr);
             }
             int patentNum = 10000;
@@ -185,8 +188,16 @@ public class ImportFromWebToEsService implements PatentImportImp {
                     continue;
                 }
 
-                Integer trueStartNum = taskStartNum > lastOverNum ? taskStartNum : lastOverNum;
-                Integer startNum = trueStartNum - lastOverNum;
+                Integer startNum = 0;
+                if (taskStartNum > lastOverNum) {
+                    startNum = taskStartNum - lastOverNum;
+                }
+
+                List<String> nos = patentStarListDto.getNos();
+                if (nos != null) {
+                    nos = nos.subList(startNum, nos.size());
+                }
+
                 Calculate calculate = DateUtils.calculateFromStartAndEndNumber(startNum, total, 50);
                 Integer startPage = calculate.getStartPage();
                 Integer endPage = calculate.getEndPage();
@@ -205,17 +216,19 @@ public class ImportFromWebToEsService implements PatentImportImp {
                     }
                     List<StarPatentVO> starPatents = (List<StarPatentVO>) resultMap.get("records");
 
-                    if ((i * 50 + starPatents.size()) < startNum) {
-                        continue;
-                    }
+
                     Integer pageStartNum = (i * 50) >= startNum ? 0 : startNum - (i * 50);
                     Integer pageEndNum = starPatents.size();
                     //遍历这一页的专利
                     for (int j = pageStartNum; j < pageEndNum; j++) {
+                        StarPatentVO starPatentVO =starPatents.get(j);
+                      nos.removeIf(item->item.equals(starPatentVO.getApplicationNo())
+                              ||item.equals(starPatentVO.getPublicNo())
+                              ||item.equals(starPatentVO.getPublicAccreditNo()));
                         UploadPatentWebDTO uploadPatentWebDTO = new UploadPatentWebDTO();
                         Patent patent = new Patent();
                         //装载start
-                        uploadPatentWebDTO.setStarPatentVO(starPatents.get(j));
+                        uploadPatentWebDTO.setStarPatentVO(starPatentVO);
                         uploadPatentWebDTO.setPatent(patent);
                         uploadPatentWebDTO.setCounter(0);
                         uploadPatentWebDTO.setIndex(index);
@@ -241,8 +254,20 @@ public class ImportFromWebToEsService implements PatentImportImp {
                     }
 
                 }
-
-                taskStartNum = overNum;
+           List<PatentImportErrorLog> patentImportErrorLogs =new ArrayList<>();
+                if(nos!=null&&nos.size()>0){
+                    nos.forEach(item->{
+                        PatentImportErrorLog patentImportErrorLog =new PatentImportErrorLog();
+                        patentImportErrorLog.setPatentNo(item);
+                        patentImportErrorLog.setErrorType(-1);
+                        patentImportErrorLog.setTaskId(importTaskAMVO.getId());
+                        patentImportErrorLogs.add(patentImportErrorLog);
+                    });
+                }
+                if(patentImportErrorLogs.size()>0){
+                    PatentImportErrorLogService patentImportErrorLogService = applicationContext.getBean(PatentImportErrorLogService.class);
+                        patentImportErrorLogService.saveBatch(patentImportErrorLogs);
+                }
             }
 
             if (ifCataloguing == '1') {

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

@@ -178,6 +178,7 @@ public class TaskThread extends Thread {
                     patentProcess.setPatentMessageDoneNum(patentProcess.getPatentMessageDoneNum() + 1);
                     if (ifDefault) {
                         patentProcess.setPatentMessageDefaultNum(patentProcess.getPatentMessageDefaultNum() + 1);
+
                     }
 
                     break;