ソースを参照

检索导入/取消删除特征取消删除权要、删除无效法条

lwhhszx 1 年間 前
コミット
8de11eb412

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

@@ -84,5 +84,5 @@ public class ImportTaskDTO {
     private String orderByType;
 
     private List<EsCustomFieldDTO> fieldDTOS;
-
+    private List<String> patentNos;
 }

+ 5 - 6
src/main/java/cn/cslg/pas/common/vo/ImportTaskAMVO.java

@@ -84,14 +84,13 @@ public class ImportTaskAMVO {
     private char ifAddPDF;
     private char  ifAddCatalogue;
 
-    private Integer shouldSaveCounter;
+    private Integer threadCounter;
 
-    private Integer haveSaveCounter;
+    private Integer threadDoneCounter;
 
+    private Integer messageThreadDoneCounter;
 
-    private Integer shouldSaveMessageCounter;
-    private Integer haveSaveMessageCounter;
 
-
-    private Integer patentMessageShouldSaveCounter;
+    private Integer messageThreadCounter;
+    private String patentNoStr;
 }

+ 13 - 0
src/main/java/cn/cslg/pas/controller/AssoGroupFeatureController.java

@@ -104,4 +104,17 @@ public class AssoGroupFeatureController {
         }
         return Response.success("添加成功");
     }
+
+
+    @Operation(summary = "取消删除特征")
+    @GetMapping("/cancelRemoveFeature")
+    public Response cancelRemoveFeature( Integer featureId ) {
+        try {
+            assoGroupFeatureService.cancelRemoveFeature(featureId);
+        }
+        catch (Exception e){
+            return  Response.error(e.getMessage());
+        }
+        return Response.success("删除成功");
+    }
 }

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

@@ -19,19 +19,25 @@ import org.springframework.web.bind.annotation.*;
 @RequestMapping(Constants.API_XiaoSHI + "/importTask")
 @RestController
 public class ImportTaskController {
+
     @Autowired
     private SystemDictService systemDictService;
+
     @Autowired
     private CommonService commonService;
+
     @Autowired
     private ScenarioService scenarioService;
+
     @Autowired
     private AssoScenarioMatterService assoScenarioMatterService;
 
     @Autowired
     private PersonFieldService personFieldService;
+
     @Autowired
     private BusinessFactory businessFactory;
+
     @Operation(summary = "查询导入任务")
     @PostMapping("/queryImportTask")
     public Response queryImportTask(@RequestBody StringRequest stringRequest) throws Exception {

+ 15 - 4
src/main/java/cn/cslg/pas/controller/InvalidStatutesController.java

@@ -11,10 +11,7 @@ import cn.cslg.pas.service.business.InvalidStatutesService;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-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;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -61,4 +58,18 @@ public class InvalidStatutesController {
         }
         return Response.success("更新成功");
     }
+
+    @Operation(summary = "更新信息")
+    @GetMapping("/updateMessage")
+    public Response removeInvalidStatutes(Integer id) {
+        Records records =new Records();
+        try {
+          Integer reId=  invalidStatutesService.removeInvalidStatutes(id);
+          records.setData(reId);
+        }
+        catch (Exception e){
+            return  Response.error(e.getMessage());
+        }
+        return Response.success(records);
+    }
 }

+ 21 - 8
src/main/java/cn/cslg/pas/controller/PatentClaimHistoryContorller.java

@@ -12,13 +12,13 @@ import cn.cslg.pas.service.business.invalidReport.PatentClaimHistoryService;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-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;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * 权利要求历史
+ *
  * @Author xiexiang
  * @Date 2023/12/26
  */
@@ -31,7 +31,7 @@ public class PatentClaimHistoryContorller {
 
     @Operation(summary = "修改权利要求")
     @PostMapping("/alterPatentClaim")
-    public Response alterPatentClaim(@RequestBody AlterPatentClaimDTO alterPatentClaimDTO){
+    public Response alterPatentClaim(@RequestBody AlterPatentClaimDTO alterPatentClaimDTO) {
         Integer id = patentClaimHistoryService.alterPatentClaim(alterPatentClaimDTO);
         Records records = new Records();
         records.setData(id);
@@ -40,7 +40,7 @@ public class PatentClaimHistoryContorller {
 
     @Operation(summary = "编辑权利要求历史")
     @PostMapping("/editPatentClaimHistory")
-    public Response editPatentClaimHistory(@RequestBody EditPatentClaimHistoryDTO editPatentClaimHistoryDTO){
+    public Response editPatentClaimHistory(@RequestBody EditPatentClaimHistoryDTO editPatentClaimHistoryDTO) {
         Integer id = patentClaimHistoryService.editPatentClaimHistory(editPatentClaimHistoryDTO);
         Records records = new Records();
         records.setData(id);
@@ -50,18 +50,31 @@ public class PatentClaimHistoryContorller {
 
     @Operation(summary = "删除权利要求")
     @PostMapping("/deletePatentClaim")
-    public Response deletePatentClaim(@RequestBody PatentClaimDTO patentClaimDTO){
+    public Response deletePatentClaim(@RequestBody PatentClaimDTO patentClaimDTO) {
         patentClaimHistoryService.deletePatentClaim(patentClaimDTO);
         return Response.success("");
     }
 
     @Operation(summary = "查看权利要求修改历史")
     @PostMapping("/queryPatentClaimHistory")
-    public Response queryPatentClaimHistory(@RequestBody PatentClaimDTO patentClaimDTO){
+    public Response queryPatentClaimHistory(@RequestBody PatentClaimDTO patentClaimDTO) {
         PatentClaimHistoryVO patentClaimHistoryVO = patentClaimHistoryService.queryPatentClaimHistory(patentClaimDTO);
         Records records = new Records();
         records.setData(patentClaimHistoryVO);
         return Response.success(records);
     }
 
+
+    @Operation(summary = "取消删除权要")
+    @GetMapping("/cancelRemoveClaims")
+    public Response cancelRemoveClaims(Integer claimId) {
+        Records records = new Records();
+        try {
+            List<Integer> ids = patentClaimHistoryService.cancelRemoveClaims(claimId);
+            records.setData(ids);
+        } catch (Exception e) {
+            return  Response.error(e.getMessage());
+        }
+        return Response.success(records);
+    }
 }

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

@@ -19,8 +19,8 @@ public class ImportTaskCondition extends BaseEntity<ImportTaskCondition> {
      * 项目id
      */
     private Integer projectId;
-@TableField(exist = false)
-    private List<String> patentNos;
+    @TableField(value = "patent_nos")
+    private String patentNos;
     /**
      * 项目类型
      * 0专题库 1报告

+ 10 - 4
src/main/java/cn/cslg/pas/service/business/ImportTaskService.java

@@ -81,7 +81,6 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         List<String> sqls = formatQueryService.reSqls(queryRequest, "importTask");
         //根据sql查询事件信息
         List<ImportTaskVO> importTaskVOS = importTaskMapper.getImportTask(sqls.get(0), sqls.get(1), sqls.get(2));
-
         //查询总数
         Long total = importTaskMapper.getImportTaskCount(sqls.get(0));
 
@@ -134,7 +133,7 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         if (importTaskDTO.getType() == null) {
             importTaskDTO.setType(4);
         }
-
+ List<String> addPatentNos =importTaskDTO.getPatentNos();
         ImportTaskCondition importTaskCondition = new ImportTaskCondition();
         if (importTaskDTO.getImportToId() != null) {
             if (importTaskDTO.getImportToType().equals(0)) {
@@ -161,7 +160,10 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         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);
+        }
         String fieldJson = JsonUtils.objectToJson(importTaskCondition);
         importTaskCondition.setCustomFields(fieldJson);
         importTaskCondition.insert();
@@ -196,7 +198,7 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                 throw new XiaoShiException("文件错误");
             }
         } else if (importTaskCondition.getType().equals(4)) {
-            try {
+            try {if(addPatentNos==null||addPatentNos.size()==0) {
                 PatentStarListDTO patentStarListDto = new PatentStarListDTO()
                         .setCurrentQuery(importTaskCondition.getSearchCondition())
                         .setOrderBy(importTaskCondition.getOrderBy())
@@ -212,6 +214,10 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
                 } else {
                     importTask.setAllNum((Integer) resultMap.get("total"));
                 }
+            }
+            else {
+                importTask.setAllNum(addPatentNos.size());
+            }
             } catch (Exception e) {
                 throw new XiaoShiException("文件错误");
             }

+ 29 - 4
src/main/java/cn/cslg/pas/service/business/InvalidStatutesService.java

@@ -5,10 +5,7 @@ import cn.cslg.pas.common.dto.business.InvalidStatutesDTO;
 import cn.cslg.pas.common.dto.invalidDTO.UpdateMessageDTO;
 import cn.cslg.pas.common.utils.GenerateObjectUtil;
 import cn.cslg.pas.common.vo.invalidVO.InvalidStatutesVO;
-import cn.cslg.pas.domain.business.AssoGroupFeature;
-import cn.cslg.pas.domain.business.InvalidStatutes;
-import cn.cslg.pas.domain.business.PatentClaim;
-import cn.cslg.pas.domain.business.SystemDict;
+import cn.cslg.pas.domain.business.*;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.InvalidStatutesMapper;
 import cn.cslg.pas.service.business.invalidReport.PatentClaimService;
@@ -18,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.ArrayList;
@@ -38,6 +36,8 @@ public class InvalidStatutesService extends ServiceImpl<InvalidStatutesMapper, I
 
     @Autowired
     private PatentClaimService patentClaimService;
+    @Autowired
+    private ProofGroupService proofGroupService;
 
     /**
      * 添加无效法条
@@ -210,4 +210,29 @@ public class InvalidStatutesService extends ServiceImpl<InvalidStatutesMapper, I
         }
         return true;
     }
+
+    /**
+     *
+     * @param id
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Integer removeInvalidStatutes(Integer id){
+        if(id==null){
+            throw new XiaoShiException("请输入无效法条");
+        }
+        InvalidStatutes invalidStatutes =this.getById(id);
+        if(invalidStatutes==null){
+            throw new XiaoShiException("无效法条不存在");
+        }
+    //根据无效法条id 查询是否有证据组合
+        LambdaQueryWrapper<ProofGroup> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(ProofGroup::getInvalidStatutesId,id);
+        List<ProofGroup> proofGroups =proofGroupService.list(queryWrapper);
+          if(proofGroups.size()>0){
+              throw new XiaoShiException("请先删除该法条的证据组合");
+          }
+          this.removeById(id);
+          return id;
+    }
 }

+ 23 - 1
src/main/java/cn/cslg/pas/service/business/invalidReport/AssoGroupFeatureService.java

@@ -428,7 +428,7 @@ public class AssoGroupFeatureService extends ServiceImpl<AssoGroupFeatureMapper,
         //根据权要id 查询 无效法条
         LambdaQueryWrapper<InvalidStatutes> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(InvalidStatutes::getClaimId, claimId)
-                .and(wrapper->wrapper.eq(InvalidStatutes::getStatutesId, 2).or().eq(InvalidStatutes::getStatutesId,3));
+                .and(wrapper -> wrapper.eq(InvalidStatutes::getStatutesId, 2).or().eq(InvalidStatutes::getStatutesId, 3));
         List<InvalidStatutes> invalidStatutes = invalidStatutesService.list(queryWrapper);
         if (invalidStatutes != null && invalidStatutes.size() != 0) {
             List<Integer> statutesIds = invalidStatutes.stream().map(InvalidStatutes::getId).collect(Collectors.toList());
@@ -463,4 +463,26 @@ public class AssoGroupFeatureService extends ServiceImpl<AssoGroupFeatureMapper,
         }
         return true;
     }
+
+    /**
+     * 取消删除特征
+     * @param featureId
+     * @return
+     */
+    public List<Integer> cancelRemoveFeature(Integer featureId) {
+        List<Integer> ids =new ArrayList<>();
+        if(featureId==null){
+            throw  new XiaoShiException("请输入");
+        }
+        //根据特征id查询特征和证据组合关联
+        LambdaQueryWrapper<AssoGroupFeature> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(AssoGroupFeature::getFeatureId,featureId)
+                     .eq(AssoGroupFeature::getOperateMode,1);
+         List<AssoGroupFeature> assoGroupFeatures =this.list(queryWrapper);
+         if(assoGroupFeatures.size()>0) {
+           ids = assoGroupFeatures.stream().map(AssoGroupFeature::getId).collect(Collectors.toList());
+           this.removeByIds(ids);
+         }
+        return ids;
+    }
 }

+ 24 - 0
src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimHistoryService.java

@@ -8,6 +8,7 @@ import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.invalidVO.PatentClaimHistoryVO;
 import cn.cslg.pas.common.vo.invalidVO.QueryPatentClaimHistoryVO;
+import cn.cslg.pas.domain.business.AssoGroupFeature;
 import cn.cslg.pas.domain.business.PatentClaim;
 import cn.cslg.pas.domain.business.PatentClaimHistory;
 import cn.cslg.pas.exception.UnLoginException;
@@ -391,4 +392,27 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
         List<PatentClaim> patentClaims = patentClaimService.list(queryWrapper1);
         return patentClaims;
     }
+
+    /**
+     * 取消删除权要
+     * lrj
+     * @return
+     */
+    public List<Integer> cancelRemoveClaims(Integer claimId){
+        List<Integer> ids =new ArrayList<>();
+        if(claimId==null){
+            throw  new XiaoShiException("请输入权要");
+        }
+        //根据特征id查询特征和证据组合关联
+        LambdaQueryWrapper<PatentClaimHistory> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(PatentClaimHistory::getClaimId,claimId)
+                .eq(PatentClaimHistory::getOperateType,1);
+        List<PatentClaimHistory> patentClaimHistories =this.list(queryWrapper);
+        if(patentClaimHistories.size()>0) {
+            ids = patentClaimHistories.stream().map(PatentClaimHistory::getId).collect(Collectors.toList());
+            this.removeByIds(ids);
+        }
+        return ids;
+
+    }
 }

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

@@ -75,7 +75,7 @@ public class GetCataloguingFromWebThread extends Thread {
                     if (starPatentVO.getApplicationNo().startsWith("CN")) {
                         this.loadCNPatent(patentZhuLuStr, uploadPatentWebDTO.getPatent(), starPatentVO);
 
-                         //装载专利号
+                        //装载专利号
                         if (uploadPatentWebDTO.getPatent().getAppNo() != null) {
                             uploadPatentWebDTO.getPatent().setPatentNo(uploadPatentWebDTO.getPatent().getAppNo());
                         } else if (uploadPatentWebDTO.getPatent().getGrantNo() != null) {
@@ -100,28 +100,30 @@ public class GetCataloguingFromWebThread extends Thread {
 
 //                添加同族专利
                 String familyPatentNoStr = patentStarApiService.getFamilyByPubNoApi(uploadPatentWebDTO.getPatent().getPublicNo());
+                List<String> familyPatentNos = new ArrayList<>();
                 if (!familyPatentNoStr.equals("no data")) {
                     FamilyPatentNo familyPatentNo = JSON.parseObject(familyPatentNoStr, FamilyPatentNo.class);
-                    List<String> familyPatentNos = new ArrayList<>();
                     if (familyPatentNo != null && familyPatentNo.getFamilyinfo() != null) {
                         familyPatentNos = Arrays.asList(familyPatentNo.getFamilyinfo().split(";"));
                     }
-                    if (familyPatentNos.size() != 0) {
-                        EsPatentFamilyDTO esPatentFamilyDTO = esService.addEsPatentFamily(familyPatentNos, "inpadoc");
-                        uploadPatentWebDTO.getPatent().setInpadocFamilyNum(esPatentFamilyDTO.getFamilyNum());
-                        uploadPatentWebDTO.getPatent().setInpadocFamilyId(esPatentFamilyDTO.getPatentFamilyId());
-                    }
                 }
-//
-//                //添加法律事务
-//                esService.addEsLegalEvent(uploadPatentWebDTO.getStarPatentVO().getPublicNo());
-
-//                //添加引用专利
-//                String nos = starPatentVO.getQuoteNos();
-//                if (nos != null) {
-//                    List<String> quotedNos = this.reQuotedNos(nos);
-//                    esService.addEsQuotePatent(uploadPatentWebDTO.getPatent().getPublicNo(), quotedNos);
-//                }
+                familyPatentNos.add(uploadPatentWebDTO.getPatent().getAppNo());
+
+                if (familyPatentNos.size() != 0) {
+                    EsPatentFamilyDTO esPatentFamilyDTO = esService.addEsPatentFamily(familyPatentNos, "inpadoc");
+                    uploadPatentWebDTO.getPatent().setInpadocFamilyNum(esPatentFamilyDTO.getFamilyNum());
+                    uploadPatentWebDTO.getPatent().setInpadocFamilyId(esPatentFamilyDTO.getPatentFamilyId());
+                }
+
+                //添加法律事务
+                esService.addEsLegalEvent(uploadPatentWebDTO.getStarPatentVO().getPublicNo());
+
+                //添加引用专利
+                String nos = starPatentVO.getQuoteNos();
+                if (nos != null) {
+                    List<String> quotedNos = this.reQuotedNos(nos);
+                    esService.addEsQuotePatent(uploadPatentWebDTO.getPatent().getPublicNo(), quotedNos);
+                }
                 //加入es保存队列
                 importFromWebToEsService.loadPatentMessageDone(uploadPatentWebDTO);
             } catch (Exception e) {
@@ -300,8 +302,7 @@ public class GetCataloguingFromWebThread extends Thread {
                 patentPeople.add(patentPerson);
             }
             patent.setRightHolder(patentPeople);
-        }
-        else if(patent.getApplicant()!=null){
+        } else if (patent.getApplicant() != null) {
             patent.setRightHolder(patent.getApplicant());
         }
 
@@ -335,7 +336,7 @@ public class GetCataloguingFromWebThread extends Thread {
 
         //装载受理局
         if (starPatentVO.getBureau() != null && !starPatentVO.getBureau().equals("")) {
-            patent.setAppCountry(starPatentVO.getBureau());
+            patent.setAppCountry(starPatentVO.getBureau().substring(0, starPatentVO.getBureau().indexOf("(")));
         }
     }
 
@@ -457,7 +458,7 @@ public class GetCataloguingFromWebThread extends Thread {
                 patentPeople.add(patentPerson);
             }
             patent.setApplicant(patentPeople);
-            if(patent.getRightHolder()==null||patent.getRightHolder().size()==0){
+            if (patent.getRightHolder() == null || patent.getRightHolder().size() == 0) {
                 patent.setRightHolder(patent.getApplicant());
             }
         }

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

@@ -75,7 +75,7 @@ public class GetPatentFromExcelThread extends Thread {
 
                 UploadPatentWebDTO uploadPatentWebDTO = new UploadPatentWebDTO();
                 uploadPatentWebDTO.setHaveSaveCounter(0);
-                uploadPatentWebDTO.setTotalCounter(importTaskAMVO.getShouldSaveCounter());
+                uploadPatentWebDTO.setTotalCounter(importTaskAMVO.getThreadCounter());
                 uploadPatentWebDTO.setPictureData(uploadParamsVO.getPictureData());
                 uploadPatentWebDTO.setPatent(uploadParamsVO.getPatent());
                 //专利丢入消费者队列,并唤醒消费者线程

+ 6 - 2
src/main/java/cn/cslg/pas/service/importPatent/ImportFromExcelToEsService.java

@@ -9,14 +9,18 @@ import org.springframework.stereotype.Service;
 @Service
 public class ImportFromExcelToEsService implements PatentImportImp {
 private TaskThread taskThread;
+
     @Override
     public void startPatentThread() {
-        taskThread.getImportTaskAMVO().setShouldSaveCounter(2);
-        taskThread.getImportTaskAMVO().setHaveSaveCounter(0);
+
+        taskThread.getImportTaskAMVO().setThreadCounter(2);
+        taskThread.getImportTaskAMVO().setThreadDoneCounter(0);
 
         GetPatentPictureFromExcelThread getPatentPictureFromExcelThread =new GetPatentPictureFromExcelThread(taskThread);
         SavePatentToEsThread savePatentToEsThread = new SavePatentToEsThread(taskThread,taskThread.getApplicationContext());
+
         GetPatentFromExcelThread getPatentFromExcelThread = new GetPatentFromExcelThread(taskThread, savePatentToEsThread,getPatentPictureFromExcelThread);
+
         savePatentToEsThread.start();
         getPatentFromExcelThread.start();
         getPatentPictureFromExcelThread.start();

+ 59 - 36
src/main/java/cn/cslg/pas/service/importPatent/ImportFromWebToEsService.java

@@ -91,7 +91,12 @@ public class ImportFromWebToEsService implements PatentImportImp {
             String orderBy = importTaskAMVO.getOrderBy();  //排序字段
             String orderByType = importTaskAMVO.getOrderByType();  //排序类型
             String dbType = importTaskAMVO.getDbType();  //检索数据库类型
-            Integer doneNum = importTaskAMVO.getDoneNum();
+            Integer taskStartNum = importTaskAMVO.getDoneNum();
+            List<String> addPatentNos = new ArrayList<>();
+            String patentNoStr =importTaskAMVO.getPatentNoStr();
+            if(patentNoStr!=null){
+                addPatentNos = JSONArray.parseArray(patentNoStr);
+            }
             int patentNum = 10000;
 
             //检索式
@@ -101,14 +106,24 @@ public class ImportFromWebToEsService implements PatentImportImp {
 
             //获得返回的的多个检索式 patentStarListDtos
             if (importTaskAMVO.getType().equals(4)) {
-                patentStarListDtos = patentStarApiService.getSplitedConditions(new PatentStarListDTO()
-                        .setCurrentQuery(conditions)
-                        .setOrderBy(orderBy)
-                        .setOrderByType(orderByType)
-                        .setDBType(dbType), patentNum);
+                if (addPatentNos != null && addPatentNos.size() != 0) {
+                    PatentStarListDTO patentStarListDTO = new PatentStarListDTO();
+                    patentStarListDTO.setCurrentQuery(conditions)
+                            .setOrderBy(orderBy)
+                            .setOrderByType(orderByType)
+                            .setDBType(dbType);
+                    patentStarListDtos = patentStarApiService.splitPatentNoByType(addPatentNos, patentStarListDTO);
+                } else {
+                    patentStarListDtos = patentStarApiService.getSplitedConditions(new PatentStarListDTO()
+                            .setCurrentQuery(conditions)
+                            .setOrderBy(orderBy)
+                            .setOrderByType(orderByType)
+                            .setDBType(dbType), patentNum);
+                }
             }
+
             //当专利为专利号导入时
-            if (importTaskAMVO.getType().equals(2)) {
+            else if (importTaskAMVO.getType().equals(2)) {
                 PatentStarListDTO patentStarListDTO = new PatentStarListDTO();
                 patentStarListDTO.setCurrentQuery(conditions)
                         .setOrderBy(orderBy)
@@ -119,7 +134,7 @@ public class ImportFromWebToEsService implements PatentImportImp {
             }
 
             //当专利为专利号文件导入时
-            if (importTaskAMVO.getType().equals(3)) {
+            else if (importTaskAMVO.getType().equals(3)) {
                 FileManagerService fileManagerService = applicationContext.getBean(FileManagerService.class);
 
                 String res = fileManagerService.getSystemFileFromFMS(Arrays.asList(importTaskAMVO.getFileGuid()));
@@ -150,19 +165,28 @@ public class ImportFromWebToEsService implements PatentImportImp {
             char ifAddPicture = importTaskAMVO.getIfAddPicture();
             char ifAddFullText = importTaskAMVO.getIfAddFullText();
             char ifPdf = importTaskAMVO.getIfAddPDF();
+
             //下载字段
-             int index=doneNum;
+            int index = taskStartNum;
+
             //已经跳过的数量
             Integer overNum = 0;
+
+            Integer lastOverNum = overNum;
+
+            //检索式检索
             while (patentStarListDtos.size() > 0) {
                 PatentStarListDTO patentStarListDto = patentStarListDtos.remove(0);
                 Integer total = patentStarListDto.getTotal();
-                Integer lastTotalNum = overNum;
+                lastOverNum = overNum;
                 overNum += total;
-                if (overNum < doneNum) {
+
+                if (overNum < taskStartNum) {
                     continue;
                 }
-                Integer startNum = doneNum - lastTotalNum;
+
+                Integer trueStartNum = taskStartNum > lastOverNum ? taskStartNum : lastOverNum;
+                Integer startNum = trueStartNum - lastOverNum;
                 Calculate calculate = DateUtils.calculateFromStartAndEndNumber(startNum, total, 50);
                 Integer startPage = calculate.getStartPage();
                 Integer endPage = calculate.getEndPage();
@@ -173,19 +197,23 @@ public class ImportFromWebToEsService implements PatentImportImp {
                     patentStarListDTOTemp.setPageNum(i + 1);
                     patentStarListDTOTemp.setRowCount(50);
                     //调用一般接口返回一批专利著录相关数据
+
                     Map<String, Object> resultMap = patentStarApiService.patentStarSearchApi(patentStarListDTOTemp);
+
                     if (resultMap == null || (Integer) resultMap.get("total") == 0) {
                         continue;
                     }
                     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 = 0; j < starPatents.size(); j++) {
-                        if ((i * 50 + j) < startNum) {
-                            continue;
-                        }
+                    for (int j = pageStartNum; j < pageEndNum; j++) {
                         UploadPatentWebDTO uploadPatentWebDTO = new UploadPatentWebDTO();
                         Patent patent = new Patent();
-
                         //装载start
                         uploadPatentWebDTO.setStarPatentVO(starPatents.get(j));
                         uploadPatentWebDTO.setPatent(patent);
@@ -193,24 +221,30 @@ public class ImportFromWebToEsService implements PatentImportImp {
                         uploadPatentWebDTO.setIndex(index);
                         uploadPatentWebDTO.setTotalCounter(addPatentCounter);
                         uploadPatentWebDTO.setHaveSaveCounter(0);
+
                         if (ifCataloguing == '1') {
                             getCataloguingFromWebThread.awakeTask(uploadPatentWebDTO);
                         }
+
                         if (ifAddPicture == '1') {
                             getPatentPictureFromWebThread.awakeTask(uploadPatentWebDTO);
                         }
+
                         if (ifAddFullText == '1') {
                             getRightAndFullTextFromWebThread.awakeTask(uploadPatentWebDTO);
                         }
+
                         if (ifPdf == '1') {
                             getPatentPDFFromWebThread.awakeTask(uploadPatentWebDTO);
                         }
-                        index+=1;
+                        index += 1;
                     }
 
                 }
-                doneNum = overNum;
+
+                taskStartNum = overNum;
             }
+
             if (ifCataloguing == '1') {
                 getCataloguingFromWebThread.setIfProductAll(true);
             }
@@ -226,9 +260,7 @@ public class ImportFromWebToEsService implements PatentImportImp {
         } catch (Exception e) {
             e.printStackTrace();
             //生产消费到一半时,发生错误异常,将任务状态置为完成
-//            task = taskService.getById(task.getId());
-//            task.setStatus(2);
-//            taskService.updateById(task);
+
         }
     }
 
@@ -240,17 +272,10 @@ public class ImportFromWebToEsService implements PatentImportImp {
         this.importTaskAMVO = taskThread.getImportTaskAMVO();
     }
 
-    //加入es保存队列
-//    public void savePatentToEs(UploadPatentWebDTO uploadPatentWebDTO) {
-//        uploadPatentWebDTO.setCounter(uploadPatentWebDTO.getCounter() + 1);
-//        if (uploadPatentWebDTO.getTotalCounter().equals(uploadPatentWebDTO.getCounter())) {
-//            savePatentToEsThread.awakeTask(uploadPatentWebDTO);
-//        }
-//    }
 
     public void loadPatentMessageDone(UploadPatentWebDTO uploadPatentWebDTO) {
         synchronized ("装载专利信息") {
-            if (importTaskAMVO.getPatentMessageShouldSaveCounter() > 1) {
+            if (importTaskAMVO.getMessageThreadCounter() > 1) {
                 // 根据index查询是否有相同的
                 List<UploadPatentWebDTO> dtos = uploadPatentWebDTOS.stream()
                         .filter(item -> item.getIndex().equals(uploadPatentWebDTO.getIndex())).collect(Collectors.toList());
@@ -260,10 +285,9 @@ public class ImportFromWebToEsService implements PatentImportImp {
                     BeanUtils.copyProperties(patent, orgPatent, FormatUtil.getNullPropertyNames(patent));
                     Patent patent1 = new Patent();
                     BeanUtils.copyProperties(orgPatent, patent1);
-                    uploadPatentWebDTOS.removeIf(i->i.getIndex().equals(uploadPatentWebDTO.getIndex()));
+                    uploadPatentWebDTOS.removeIf(i -> i.getIndex().equals(uploadPatentWebDTO.getIndex()));
                     savePatentToEsThread.awakeTask(patent1);
-                }
-                else {
+                } else {
                     uploadPatentWebDTOS.add(uploadPatentWebDTO);
                 }
             } else {
@@ -277,11 +301,10 @@ public class ImportFromWebToEsService implements PatentImportImp {
 
 
     public void setPatentToEsProductAll() {
-        importTaskAMVO.setHaveSaveMessageCounter(importTaskAMVO.getHaveSaveMessageCounter() + 1);
-        if (importTaskAMVO.getPatentMessageShouldSaveCounter().equals(importTaskAMVO.getHaveSaveMessageCounter())) {
+        importTaskAMVO.setMessageThreadDoneCounter(importTaskAMVO.getThreadDoneCounter() + 1);
+        if (importTaskAMVO.getMessageThreadCounter().equals(importTaskAMVO.getMessageThreadDoneCounter())) {
             savePatentToEsThread.setIfProductAll(true);
         }
-
     }
 
     private void loadPatent(StarPatentVO starPatentVO, Patent patent) {

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

@@ -60,7 +60,7 @@ public class SchedulingTaskService {
                     importTaskList.get(i).setState(1);
                     importTaskList.get(i).updateById();
                     importTaskAMVOS.get(i).setState(1);
-                    importTaskAMVOS.get(i).setHaveSaveCounter(0);
+                    importTaskAMVOS.get(i).setThreadCounter(0);
                     TaskThread taskThread = new TaskThread(importTaskAMVOS.get(i), applicationContext);
                     executor.execute(taskThread);
                 }
@@ -99,6 +99,7 @@ public class SchedulingTaskService {
                 importTaskAMVO.setOrderBy(importTaskCondition.getOrderBy());
                 importTaskAMVO.setOrderByType(importTaskCondition.getOrderByType());
                 importTaskAMVO.setProjectType(importTaskCondition.getProjectType());
+                importTaskAMVO.setPatentNoStr(importTaskCondition.getPatentNos());
 
                 LambdaQueryWrapper<ReportProject> rQueryWrapper = new LambdaQueryWrapper<>();
                 rQueryWrapper.eq(ReportProject::getProjectId, importTaskCondition.getProjectId());

+ 17 - 18
src/main/java/cn/cslg/pas/service/importPatent/TaskThread.java

@@ -38,7 +38,6 @@ public class TaskThread extends Thread {
     private ApplicationContext applicationContext;
     private final Lock taskThreadLock = new ReentrantLock();
     private final Condition taskThreadCondition = taskThreadLock.newCondition();
-    private final List<Integer> importTaskQueue = new ArrayList<>();
     private ImportTaskAMVO importTaskAMVO;
     private PatentProcess patentProcess = new PatentProcess();
     private List<UploadPatentWebDTO> uploadPatentWebDTOS = new ArrayList<>();
@@ -51,9 +50,9 @@ public class TaskThread extends Thread {
         //十进制转二进制
         String imContents = "0000";
         //当任务为
-        if(importTaskAMVO.getType().equals(1))
-        {   imContents = "1100";}
-      else  if (!importTaskAMVO.getImportContent().equals(0)) {
+        if (importTaskAMVO.getType().equals(1)) {
+            imContents = "1100";
+        } else if (!importTaskAMVO.getImportContent().equals(0)) {
             imContents = MathUtils.fun(2, importTaskAMVO.getImportContent());
         }
         //下载字段
@@ -66,34 +65,34 @@ public class TaskThread extends Thread {
         importTaskAMVO.setIfAddPicture(ifAddPicture);
         importTaskAMVO.setIfAddFullText(ifFullText);
         importTaskAMVO.setIfAddPDF(ifPdf);
-        importTaskAMVO.setHaveSaveCounter(0);
-        importTaskAMVO.setHaveSaveMessageCounter(0);
-        Integer shouldSaveCount = 0;
-        Integer messageShouldSaveCount = 0;
+        importTaskAMVO.setThreadDoneCounter(0);
+        importTaskAMVO.setMessageThreadDoneCounter(0);
+        Integer threadCount = 0;
+        Integer messageThreadCount = 0;
 
         if (ifAddPicture == '1') {
-            shouldSaveCount += 1;
-            this.patentProcess.setPictureDoneNum(0);
+            threadCount += 1;
+            this.patentProcess.setPictureDoneNum(importTaskAMVO.getDoneNum());
             this.patentProcess.setPictureDefaultNum(0);
         }
         if (ifCataloguing == '1' || ifFullText == '1') {
-            shouldSaveCount += 1;
+            threadCount += 1;
             this.patentProcess.setPatentMessageDefaultNum(0);
             this.patentProcess.setPatentMessageDoneNum(0);
             if (ifCataloguing == '1') {
-                messageShouldSaveCount += 1;
+                messageThreadCount += 1;
             }
             if (ifFullText == '1') {
-                messageShouldSaveCount += 1;
+                messageThreadCount += 1;
             }
         }
         if (ifPdf == '1') {
             this.patentProcess.setPdfDefaultNum(0);
             this.patentProcess.setPdfDoneNum(0);
-            shouldSaveCount += 1;
+            threadCount += 1;
         }
-        importTaskAMVO.setPatentMessageShouldSaveCounter(messageShouldSaveCount);
-        importTaskAMVO.setShouldSaveCounter(shouldSaveCount);
+        importTaskAMVO.setMessageThreadCounter(messageThreadCount);
+        importTaskAMVO.setThreadCounter(threadCount);
         this.applicationContext = applicationContext;
         this.patentProcess.setPatentDoneNum(importTaskAMVO.getDoneNum());
         this.patentProcess.setPatentDefaultNum(0);
@@ -141,8 +140,8 @@ public class TaskThread extends Thread {
      */
     public void awakeTaskThread() {
         synchronized ("导入任务是否完成") {
-            importTaskAMVO.setHaveSaveCounter(importTaskAMVO.getHaveSaveCounter() + 1);
-            if (importTaskAMVO.getShouldSaveCounter().equals(importTaskAMVO.getHaveSaveCounter())) {
+            importTaskAMVO.setThreadDoneCounter(importTaskAMVO.getThreadDoneCounter() + 1);
+            if (importTaskAMVO.getThreadCounter().equals(importTaskAMVO.getThreadDoneCounter())) {
                 if (taskThreadLock.tryLock()) {
                     //taskLock.lock();
                     taskThreadCondition.signalAll();