Browse Source

2/27 官方无效修改

lwhhszx 1 năm trước cách đây
mục cha
commit
5dc4b13ec0
18 tập tin đã thay đổi với 188 bổ sung311 xóa
  1. 2 0
      src/main/java/cn/cslg/pas/Application.java
  2. 1 1
      src/main/java/cn/cslg/pas/factorys/PatentImportFactory/PatentImportImp.java
  3. 3 0
      src/main/java/cn/cslg/pas/mapper/InvalidReport/AssoGroupFeatureMapper.java
  4. 71 0
      src/main/java/cn/cslg/pas/service/business/AssoProjectEventService.java
  5. 4 0
      src/main/java/cn/cslg/pas/service/business/EventService.java
  6. 6 95
      src/main/java/cn/cslg/pas/service/business/PatentDigProjectService.java
  7. 4 82
      src/main/java/cn/cslg/pas/service/business/PatentProjectService.java
  8. 3 91
      src/main/java/cn/cslg/pas/service/business/ReportProjectService.java
  9. 13 0
      src/main/java/cn/cslg/pas/service/business/invalidReport/EvidenceReasonService.java
  10. 11 11
      src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java
  11. 5 1
      src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java
  12. 4 2
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentPDFFromWebThread.java
  13. 5 1
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentPictureFromWebThread.java
  14. 1 2
      src/main/java/cn/cslg/pas/service/importPatent/GetRightAndFullTextFromWebThread.java
  15. 3 1
      src/main/java/cn/cslg/pas/service/importPatent/ImportFromExcelToEsService.java
  16. 19 17
      src/main/java/cn/cslg/pas/service/importPatent/ImportFromWebToEsService.java
  17. 17 7
      src/main/java/cn/cslg/pas/service/importPatent/TaskThread.java
  18. 16 0
      src/main/resources/mapper/AssoGroupFeatureMapper.xml

+ 2 - 0
src/main/java/cn/cslg/pas/Application.java

@@ -3,12 +3,14 @@ package cn.cslg.pas;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
 @EnableCaching
 @SpringBootApplication
+@EnableAsync
 public class Application {
 
     public static void main(String[] args) {

+ 1 - 1
src/main/java/cn/cslg/pas/factorys/PatentImportFactory/PatentImportImp.java

@@ -9,6 +9,6 @@ import java.io.IOException;
 import java.util.List;
 
 public interface PatentImportImp {
-    public void startPatentThread();
+    public Boolean startPatentThread();
     public void setTaskThread(TaskThread taskThread);
 }

+ 3 - 0
src/main/java/cn/cslg/pas/mapper/InvalidReport/AssoGroupFeatureMapper.java

@@ -17,4 +17,7 @@ import java.util.List;
 public interface AssoGroupFeatureMapper extends BaseMapper<AssoGroupFeature> {
     public List<AssoGroupFeature> selectLastGroupFeature(Integer groupId,Integer order,Integer gen);
     public Integer selectLastGroupFeatureOrder(Integer groupId,Integer gen);
+
+    public List<AssoGroupFeature> queryForEvidenceReason(Integer groupId,Integer order,Integer gen);
+
 }

+ 71 - 0
src/main/java/cn/cslg/pas/service/business/AssoProjectEventService.java

@@ -1,12 +1,83 @@
 package cn.cslg.pas.service.business;
 
 
+import cn.cslg.pas.common.dto.business.ProjectEventDTO;
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.domain.business.AssoProjectEvent;
+import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.mapper.AssoProjectEventMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Service
 public class AssoProjectEventService extends ServiceImpl<AssoProjectEventMapper, AssoProjectEvent> {
+    @Autowired
+    private CacheUtils cacheUtils;
+
+    @Autowired
+    private LoginUtils loginUtils;
+
+
+
+    public void addAssoEventProject(List<ProjectEventDTO> events, Integer projectId, Integer type) {
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+        List<AssoProjectEvent> assoProjectEvents = new ArrayList<>();
+        //遍历传入的事件集合
+        for (ProjectEventDTO projectEventDTO : events) {
+            AssoProjectEvent assoProjectEvent = assoProjectEvents.stream().filter(item -> item.getEventId()!=null&&item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
+            AssoProjectEvent assoProjectEvent1 = assoProjectEvents.stream().filter(item -> item.getScenarioId()!=null&&item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
+            AssoProjectEvent assoProjectEvent2 = assoProjectEvents.stream().filter(item -> item.getMatterId()!=null&&item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
 
+            if (assoProjectEvent == null) {
+                assoProjectEvent = new AssoProjectEvent();
+                //事件id和处理事项id
+                assoProjectEvent.setEventId(projectEventDTO.getEventId());
+                //项目id
+                assoProjectEvent.setProjectId(projectId);
+                //创建人
+                assoProjectEvent.setCreateId(personnelVO.getId());
+                //类型为专题库
+                assoProjectEvent.setProjectType(type);
+                assoProjectEvents.add(assoProjectEvent);
+            }
+            if (assoProjectEvent1 == null) {
+                assoProjectEvent1 = new AssoProjectEvent();
+                //事件id和处理事项id
+                assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
+                //项目id
+                assoProjectEvent1.setProjectId(projectId);
+                //创建人
+                assoProjectEvent1.setCreateId(personnelVO.getId());
+                //类型为专题库
+                assoProjectEvent1.setProjectType(type);
+                assoProjectEvents.add(assoProjectEvent1);
+            }
+            if (assoProjectEvent2 == null) {
+                assoProjectEvent2 = new AssoProjectEvent();
+                //事件id和处理事项id
+                assoProjectEvent2.setMatterId(projectEventDTO.getMatterId());
+                //项目id
+                assoProjectEvent2.setProjectId(projectId);
+                //创建人
+                assoProjectEvent2.setCreateId(personnelVO.getId());
+                //类型为专题库
+                assoProjectEvent2.setProjectType(type);
+                assoProjectEvents.add(assoProjectEvent2);
+            }
+        }
+        if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
+            this.saveBatch(assoProjectEvents);
+        }
+    }
 }

+ 4 - 0
src/main/java/cn/cslg/pas/service/business/EventService.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.service.business;
 
 import cn.cslg.pas.common.dto.business.EventDTO;
+import cn.cslg.pas.common.dto.business.ProjectEventDTO;
 import cn.cslg.pas.common.dto.business.UpdateEventDTO;
 import cn.cslg.pas.common.model.cronModel.*;
 import cn.cslg.pas.common.model.request.*;
@@ -10,6 +11,7 @@ import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.business.EventCountVO;
 import cn.cslg.pas.common.vo.business.EventVO;
 import cn.cslg.pas.domain.business.AssoEventFile;
+import cn.cslg.pas.domain.business.AssoProjectEvent;
 import cn.cslg.pas.domain.business.Event;
 import cn.cslg.pas.domain.business.SystemDict;
 import cn.cslg.pas.exception.UnLoginException;
@@ -516,5 +518,7 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
 
         return rootSql;
 
+
+
     }
 }

+ 6 - 95
src/main/java/cn/cslg/pas/service/business/PatentDigProjectService.java

@@ -304,58 +304,15 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
         /**
          * 装载事件与project关联
          */
-        List<AssoProjectEvent> assoProjectEvents = new ArrayList<>();
-
         List<ProjectEventDTO> events = patentDigProjectDTO.getEvents();
         if (events != null && events.size() != 0) {
             //遍历传入的事件集合
-            for (ProjectEventDTO projectEventDTO : events) {
-                AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
-                AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
-                AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
-
-                if(assoProjectEvent==null) {
-                    assoProjectEvent = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent.setEventId(projectEventDTO.getEventId());
-                    //项目id
-                    assoProjectEvent.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent);
-                }
-                if(assoProjectEvent1==null) {
-                    assoProjectEvent1 = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
-                    //项目id
-                    assoProjectEvent1.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent1.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent1.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent1);
-                }
-                if(assoProjectEvent2==null) {
-                    assoProjectEvent2 = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
-                    //项目id
-                    assoProjectEvent2.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent2.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent2.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent2);
-                }
+            if (events != null && events.size() != 0) {
+                assoProjectEventService.addAssoEventProject(events,project.getId(),2);
             }
         }
 
-        if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
-            assoProjectEventService.saveBatch(assoProjectEvents);
-        }
+
         /**
          *装载参与人
          */
@@ -501,57 +458,11 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
             /**
              * 装载事件与project关联
              */
-            List<AssoProjectEvent> assoProjectEvents = new ArrayList<>();
-
             List<ProjectEventDTO> events = projectUpdateDTO.getEvents();
-            if (events != null && events.size() != 0) {
-                //遍历传入的事件集合
-                for (ProjectEventDTO projectEventDTO : events) {
-                    AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
-                    AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
-                    AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
-
-                    if(assoProjectEvent==null) {
-                        assoProjectEvent = new AssoProjectEvent();
-                        //事件id和处理事项id
-                        assoProjectEvent.setEventId(projectEventDTO.getEventId());
-                        //项目id
-                        assoProjectEvent.setProjectId(project.getId());
-                        //创建人
-                        assoProjectEvent.setCreateId(personnelVO.getId());
-                        //类型为专题库
-                        assoProjectEvent.setProjectType(0);
-                        assoProjectEvents.add(assoProjectEvent);
-                    }
-                    if(assoProjectEvent1==null) {
-                        assoProjectEvent1 = new AssoProjectEvent();
-                        //事件id和处理事项id
-                        assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
-                        //项目id
-                        assoProjectEvent1.setProjectId(project.getId());
-                        //创建人
-                        assoProjectEvent1.setCreateId(personnelVO.getId());
-                        //类型为专题库
-                        assoProjectEvent1.setProjectType(0);
-                        assoProjectEvents.add(assoProjectEvent1);
-                    }
-                    if(assoProjectEvent2==null) {
-                        assoProjectEvent2 = new AssoProjectEvent();
-                        //事件id和处理事项id
-                        assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
-                        //项目id
-                        assoProjectEvent2.setProjectId(project.getId());
-                        //创建人
-                        assoProjectEvent2.setCreateId(personnelVO.getId());
-                        //类型为专题库
-                        assoProjectEvent2.setProjectType(0);
-                        assoProjectEvents.add(assoProjectEvent2);
-                    }
-                }
-                if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
-                    assoProjectEventService.saveBatch(assoProjectEvents);
+                if (events != null && events.size() != 0) {
+                    assoProjectEventService.addAssoEventProject(events,project.getId(),2);
                 }
-            }
+
 
 
             LambdaQueryWrapper<AssoProjectPerson> assoProjectPersonLambdaQueryWrapper = new LambdaQueryWrapper<>();

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

@@ -321,47 +321,8 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
 
         if (events != null && events.size() != 0) {
             //遍历传入的事件集合
-            for (ProjectEventDTO projectEventDTO : events) {
-                AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
-                AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
-                AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
-
-                if(assoProjectEvent==null) {
-                assoProjectEvent = new AssoProjectEvent();
-                //事件id和处理事项id
-                assoProjectEvent.setEventId(projectEventDTO.getEventId());
-                //项目id
-                assoProjectEvent.setProjectId(project.getId());
-                //创建人
-                assoProjectEvent.setCreateId(personnelVO.getId());
-                //类型为专题库
-                assoProjectEvent.setProjectType(0);
-                assoProjectEvents.add(assoProjectEvent);
-            }
-                if(assoProjectEvent1==null) {
-                    assoProjectEvent1 = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
-                    //项目id
-                    assoProjectEvent1.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent1.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent1.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent1);
-                }
-                if(assoProjectEvent2==null) {
-                    assoProjectEvent2 = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
-                    //项目id
-                    assoProjectEvent2.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent2.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent2.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent2);
-                }
+            if (events != null && events.size() != 0) {
+                assoProjectEventService.addAssoEventProject(events,project.getId(),0);
             }
         }
 
@@ -535,47 +496,8 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         assoProjectEventService.remove(updateEventWrapper);
         List<ProjectEventDTO> events = updatePatentProjectDTO.getEvents();
         if (events != null && events.size() != 0) {
-            for (ProjectEventDTO projectEventDTO : events) {
-                AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
-                AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
-                AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
-
-                if(assoProjectEvent==null) {
-                    assoProjectEvent = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent.setEventId(projectEventDTO.getEventId());
-                    //项目id
-                    assoProjectEvent.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent);
-                }
-                if(assoProjectEvent1==null) {
-                    assoProjectEvent1 = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
-                    //项目id
-                    assoProjectEvent1.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent1.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent1.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent1);
-                }
-                if(assoProjectEvent2==null) {
-                    assoProjectEvent2 = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
-                    //项目id
-                    assoProjectEvent2.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent2.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent2.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent2);
-                }
+            if (events != null && events.size() != 0) {
+                assoProjectEventService.addAssoEventProject(events,project.getId(),0);
             }
         }
 

+ 3 - 91
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -371,52 +371,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         List<AssoProjectEvent> assoProjectEvents = new ArrayList<>();
         List<ProjectEventDTO> events = reportProjectDTO.getEvents();
         if (events != null && events.size() != 0) {
-            //遍历传入的事件集合
-            for (ProjectEventDTO projectEventDTO : events) {
-                AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
-                AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
-                AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
-
-                if(assoProjectEvent==null) {
-                    assoProjectEvent = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent.setEventId(projectEventDTO.getEventId());
-                    //项目id
-                    assoProjectEvent.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent);
-                }
-                if(assoProjectEvent1==null) {
-                    assoProjectEvent1 = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
-                    //项目id
-                    assoProjectEvent1.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent1.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent1.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent1);
-                }
-                if(assoProjectEvent2==null) {
-                    assoProjectEvent2 = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
-                    //项目id
-                    assoProjectEvent2.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent2.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent2.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent2);
-                }
-            }
-            if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
-                assoProjectEventService.saveBatch(assoProjectEvents);
-            }
+            assoProjectEventService.addAssoEventProject(events,project.getId(),1);
         }
         /**
          * 装载和附件关联
@@ -592,51 +547,8 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
 
         List<ProjectEventDTO> events = updateReportProjectDTO.getEvents();
         if (events != null && events.size() != 0) {
-            //遍历传入的事件集合
-            for (ProjectEventDTO projectEventDTO : events) {
-                AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
-                AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
-                AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
-
-                if(assoProjectEvent==null) {
-                    assoProjectEvent = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent.setEventId(projectEventDTO.getEventId());
-                    //项目id
-                    assoProjectEvent.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent);
-                }
-                if(assoProjectEvent1==null) {
-                    assoProjectEvent1 = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
-                    //项目id
-                    assoProjectEvent1.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent1.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent1.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent1);
-                }
-                if(assoProjectEvent2==null) {
-                    assoProjectEvent2 = new AssoProjectEvent();
-                    //事件id和处理事项id
-                    assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
-                    //项目id
-                    assoProjectEvent2.setProjectId(project.getId());
-                    //创建人
-                    assoProjectEvent2.setCreateId(personnelVO.getId());
-                    //类型为专题库
-                    assoProjectEvent2.setProjectType(0);
-                    assoProjectEvents.add(assoProjectEvent2);
-                }
-            }
-            if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
-                assoProjectEventService.saveBatch(assoProjectEvents);
+            if (events != null && events.size() != 0) {
+                assoProjectEventService.addAssoEventProject(events,project.getId(),1);
             }
         }
         /**

+ 13 - 0
src/main/java/cn/cslg/pas/service/business/invalidReport/EvidenceReasonService.java

@@ -86,6 +86,12 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
         queryWrapper.eq(AssoGroupFeature::getGroupId, groupId)
                 .eq(AssoGroupFeature::getFeatureGen, gen);
         List<AssoGroupFeature> assoGroupFeatures = assoGroupFeatureService.list(queryWrapper);
+         if(assoGroupFeatures.size()==0&&gen.equals(1)){
+             queryWrapper =new LambdaQueryWrapper<>();
+             queryWrapper.eq(AssoGroupFeature::getGroupId, groupId)
+                     .eq(AssoGroupFeature::getFeatureGen, 0);
+             assoGroupFeatures = assoGroupFeatureService.list(queryWrapper);
+         }
         assoIds = assoGroupFeatures.stream().map(AssoGroupFeature::getId).collect(Collectors.toList());
 
         //根据特征证据组合关联id 删除和无效理由关联
@@ -199,11 +205,18 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
         Integer groupId = queryEvidenceReasonDTO.getGroupId();
         Integer gen = queryEvidenceReasonDTO.getGen();
         //根据证据组合id 查询特征
+
         LambdaQueryWrapper<AssoGroupFeature> assFWrapper = new LambdaQueryWrapper<>();
         assFWrapper.eq(AssoGroupFeature::getGroupId, groupId)
                 .and(wrapper -> wrapper.eq(AssoGroupFeature::getFeatureGen, gen).or().eq(AssoGroupFeature::getOperateMode, 2));
 
         List<AssoGroupFeature> assoGroupFeatures = assoGroupFeatureService.list(assFWrapper);
+        if(assoGroupFeatures.size()==0&&gen.equals(1)){
+            assFWrapper = new LambdaQueryWrapper<>();
+            assFWrapper.eq(AssoGroupFeature::getGroupId, groupId)
+                    .and(wrapper -> wrapper.eq(AssoGroupFeature::getFeatureGen, 0).or().eq(AssoGroupFeature::getOperateMode, 2));
+        }
+        assoGroupFeatures = assoGroupFeatureService.list(assFWrapper);
         List<QueryEvidenceReasonVO> queryEvidenceReasonVOS = new ArrayList<>();
         if (assoGroupFeatures != null && assoGroupFeatures.size() != 0) {
             assoGroupFeatures.forEach(assoGroupFeature -> {

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

@@ -98,17 +98,17 @@ public class PatentStarApiService {
         retrieveRecord.setRetrieveTime(new Date());
         retrieveRecord.setTotalNum(Integer.parseInt(map.get("total").toString()));
         retrieveRecord.setDbType(patentStarListDTO.getDBType());
-//        if (patentStarListDTO.getRetrieveRecordId() == null) {
-//            //获取创建人信息
-//            PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-//            retrieveRecord.setCreateTime(new Date());
-//            retrieveRecord.setCreateId(personnelVO.getId());
-//            retrieveRecord.setTenantId(personnelVO.getTenantId());
-//            retrieveRecord.insert();
-//        }
-//        else {
-//            retrieveRecord.updateById();
-//        }
+        if (patentStarListDTO.getRetrieveRecordId() == null) {
+            //获取创建人信息
+            PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+            retrieveRecord.setCreateTime(new Date());
+            retrieveRecord.setCreateId(personnelVO.getId());
+            retrieveRecord.setTenantId(personnelVO.getTenantId());
+            retrieveRecord.insert();
+        }
+        else {
+            retrieveRecord.updateById();
+        }
         List<StarPatentVO> starPatentVOS = (List<StarPatentVO>) map.get("records");
 
         //装载starPatentVOS到 PatentColumnDTO

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

@@ -161,7 +161,11 @@ public class GetCataloguingFromWebThread extends Thread {
     public void setIfProductAll(Boolean ifProductAll) {
 
         this.ifProductAll = ifProductAll;
-
+        if (taskLock.tryLock()) {
+            System.out.println("专利导入到es解锁" + importTaskAMVO.getId());
+            taskCondition.signalAll();
+            taskLock.unlock();
+        }
     }
 
     //装载专利信息

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

@@ -158,8 +158,10 @@ public class GetPatentPDFFromWebThread extends Thread {
     }
 
     public void setIfProductAll(Boolean ifProductAll) {
-
         this.ifProductAll = ifProductAll;
-
+        if (taskLock.tryLock()) {
+            taskCondition.signalAll();
+            taskLock.unlock();
+        }
     }
 }

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

@@ -98,6 +98,10 @@ public class GetPatentPictureFromWebThread extends Thread {
     public void setIfProductAll(Boolean ifProductAll) {
 
         this.ifProductAll = ifProductAll;
-
+        if (taskLock.tryLock()) {
+            System.out.println("专利导入到es解锁" + importTaskAMVO.getId());
+            taskCondition.signalAll();
+            taskLock.unlock();
+        }
     }
 }

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

@@ -193,11 +193,10 @@ public class GetRightAndFullTextFromWebThread extends Thread {
     }
 
     public void setIfProductAll(Boolean ifProductAll) {
+        this.ifProductAll = ifProductAll;
         if (taskLock.tryLock()) {
             taskCondition.signalAll();
             taskLock.unlock();
         }
-        this.ifProductAll = ifProductAll;
-
     }
 }

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

@@ -2,6 +2,7 @@ package cn.cslg.pas.service.importPatent;
 
 import cn.cslg.pas.factorys.PatentImportFactory.PatentImportImp;
 import org.springframework.context.annotation.Scope;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
@@ -11,7 +12,7 @@ public class ImportFromExcelToEsService implements PatentImportImp {
 private TaskThread taskThread;
 
     @Override
-    public void startPatentThread() {
+    public Boolean startPatentThread() {
 
         taskThread.getImportTaskAMVO().setThreadCounter(2);
         taskThread.getImportTaskAMVO().setThreadDoneCounter(0);
@@ -24,6 +25,7 @@ private TaskThread taskThread;
         savePatentToEsThread.start();
         getPatentFromExcelThread.start();
         getPatentPictureFromExcelThread.start();
+        return true;
     }
 
     @Override

+ 19 - 17
src/main/java/cn/cslg/pas/service/importPatent/ImportFromWebToEsService.java

@@ -22,6 +22,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Scope;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.io.ByteArrayInputStream;
@@ -55,7 +56,7 @@ public class ImportFromWebToEsService implements PatentImportImp {
     private List<UploadPatentWebDTO> uploadPatentWebDTOS = new ArrayList<>();
 
     @Override
-    public void startPatentThread() {
+    public Boolean startPatentThread() {
         //装载专利信息的计数器
         Integer addPatentCounter = 0;
         //十进制转二进制
@@ -83,13 +84,12 @@ public class ImportFromWebToEsService implements PatentImportImp {
             getCataloguingFromWebThread = new GetCataloguingFromWebThread(taskThread, this);
             getCataloguingFromWebThread.start();
         }
-        excuteLessThan10000(importTaskAMVO, addPatentCounter);
-
-
+       return excuteLessThan10000(importTaskAMVO, addPatentCounter);
     }
 
 
-    private void excuteLessThan10000(ImportTaskAMVO importTaskAMVO, Integer addPatentCounter) {
+    private Boolean excuteLessThan10000(ImportTaskAMVO importTaskAMVO, Integer addPatentCounter) {
+        Boolean ifHaveGet = false;
         try {
             String orderBy = importTaskAMVO.getOrderBy();  //排序字段
             String orderByType = importTaskAMVO.getOrderByType();  //排序类型
@@ -202,10 +202,10 @@ public class ImportFromWebToEsService implements PatentImportImp {
                 Integer startPage = calculate.getStartPage();
                 Integer endPage = calculate.getEndPage();
 
-                for (int i = startPage; i <endPage; i++) {
+                for (int i = startPage; i < endPage; i++) {
                     PatentStarListDTO patentStarListDTOTemp = new PatentStarListDTO();
                     BeanUtils.copyProperties(patentStarListDto, patentStarListDTOTemp);
-                    patentStarListDTOTemp.setPageNum(i+1);
+                    patentStarListDTOTemp.setPageNum(i + 1);
                     patentStarListDTOTemp.setRowCount(50);
                     //调用一般接口返回一批专利著录相关数据
 
@@ -221,9 +221,9 @@ public class ImportFromWebToEsService implements PatentImportImp {
                     Integer pageEndNum = starPatents.size();
                     //遍历这一页的专利
                     for (int j = pageStartNum; j < pageEndNum; j++) {
-                        StarPatentVO starPatentVO =starPatents.get(j);
+                        StarPatentVO starPatentVO = starPatents.get(j);
 
-                        if(nos!=null) {
+                        if (nos != null) {
                             nos.removeIf(item -> item.equals(starPatentVO.getApplicationNo())
                                     || item.equals(starPatentVO.getPublicNo())
                                     || item.equals(starPatentVO.getPublicAccreditNo())
@@ -238,7 +238,7 @@ public class ImportFromWebToEsService implements PatentImportImp {
                         uploadPatentWebDTO.setIndex(index);
                         uploadPatentWebDTO.setTotalCounter(addPatentCounter);
                         uploadPatentWebDTO.setHaveSaveCounter(0);
-
+                        ifHaveGet = true;
                         if (ifCataloguing == '1') {
                             getCataloguingFromWebThread.awakeTask(uploadPatentWebDTO);
                         }
@@ -258,19 +258,19 @@ public class ImportFromWebToEsService implements PatentImportImp {
                     }
 
                 }
-           List<PatentImportErrorLog> patentImportErrorLogs =new ArrayList<>();
-                if(nos!=null&&nos.size()>0){
-                    nos.forEach(item->{
-                        PatentImportErrorLog patentImportErrorLog =new PatentImportErrorLog();
+                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){
+                if (patentImportErrorLogs.size() > 0) {
                     PatentImportErrorLogService patentImportErrorLogService = applicationContext.getBean(PatentImportErrorLogService.class);
-                        patentImportErrorLogService.saveBatch(patentImportErrorLogs);
+                    patentImportErrorLogService.saveBatch(patentImportErrorLogs);
                 }
             }
 
@@ -287,10 +287,12 @@ public class ImportFromWebToEsService implements PatentImportImp {
             if (ifPdf == '1') {
                 getPatentPDFFromWebThread.setIfProductAll(true);
             }
+
+        return ifHaveGet;
         } catch (Exception e) {
             e.printStackTrace();
             //生产消费到一半时,发生错误异常,将任务状态置为完成
-
+           return  ifHaveGet;
         }
     }
 

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

@@ -113,14 +113,15 @@ public class TaskThread extends Thread {
         ImportTaskConfig config = configs.stream().filter(item -> item.getTaskType().equals(importTaskAMVO.getType()) && item.getImportTo().equals(Constants.IMPORT_PATENT_TO)).findFirst().orElse(null);
         PatentImportImp patentImportImp = patentImportFactory.getClass(config.getImportClass());
         patentImportImp.setTaskThread(this);
-        patentImportImp.startPatentThread();
-        taskThreadLock.lock();
-        try {
-            taskThreadCondition.await();
-        } catch (InterruptedException e) {
-            e.printStackTrace();
+      Boolean flag=  patentImportImp.startPatentThread();
+        if(flag) {
+            taskThreadLock.lock();
+            try {
+                taskThreadCondition.await();
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
         }
-
         ImportTaskService importTaskService = applicationContext.getBean(ImportTaskService.class);
         ImportTask task = importTaskService.getById(importTaskAMVO.getId());
         if (importTaskAMVO.getState().equals(1)) {
@@ -161,6 +162,15 @@ public class TaskThread extends Thread {
         }
     }
 
+    public  void doneTask(){
+        if (taskThreadLock.tryLock()) {
+            //taskLock.lock();
+            taskThreadCondition.signalAll();
+            taskThreadLock.unlock();
+        }
+        MessageService messageService = applicationContext.getBean(MessageService.class);
+        messageService.sendWebsocketMessage(importTaskAMVO, -1, patentProcess);
+    }
 
     public ImportTaskAMVO getImportTaskAMVO() {
         return this.importTaskAMVO;

+ 16 - 0
src/main/resources/mapper/AssoGroupFeatureMapper.xml

@@ -31,4 +31,20 @@
         order by feature_gen desc limit 9999) a
         group by a.group_id, a.feature_order order by a.feature_order desc limit 1;
     </select>
+
+    <select id="queryForEvidenceReason" resultType="cn.cslg.pas.domain.business.AssoGroupFeature">
+        select *
+        from (select *
+        from asso_group_feature f
+        <where>
+            f.group_id = #{groupId} and
+            (operate_mode!=1 or  isnull(operate_mode))
+
+
+            and feature_gen &lt;= #{gen}
+        </where>
+
+        order by feature_gen desc limit 9999) a
+        group by a.group_id, a.feature_order
+    </select>
 </mapper>