瀏覽代碼

导入 2022/11/1

lwhhszx 2 年之前
父節點
當前提交
298cbda229

+ 1 - 0
PAS/src/main/java/cn/cslg/pas/common/config/AsyncTaskPoolConfig.java

@@ -27,6 +27,7 @@ public class AsyncTaskPoolConfig implements AsyncConfigurer {
     }
 
     @Override
+    @Bean("testExecutor")
     public Executor getAsyncExecutor() {
         ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
         //配置核心线程数

+ 22 - 0
PAS/src/main/java/cn/cslg/pas/common/utils/auth/AuthAop.java

@@ -13,6 +13,7 @@ import okhttp3.FormBody;
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
 import okhttp3.RequestBody;
+import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.*;
 import org.aspectj.lang.reflect.MethodSignature;
@@ -27,6 +28,8 @@ import java.lang.reflect.Method;
 import java.util.List;
 import java.util.Objects;
 
+import static cn.cslg.pas.common.utils.JsonUtils.log;
+
 @Order(2)
 @Aspect
 @Component
@@ -142,5 +145,24 @@ public class AuthAop {
         return joinPoint.proceed();
     }
 
+
+    @Before(value = "annotationPointcut()")
+    public void doBefore(JoinPoint joinPoint) {
+        this.handleAfterLog(joinPoint);
+
+    }
+
+    protected void handleAfterLog(JoinPoint joinPoint) {
+        try {
+
+            log.info("after ----> title:{}, desc:{}",1,2);
+            return;
+        } catch (Exception var10) {
+            log.error("operlog exception:{}", var10);
+            return;
+        }
+
+    }
+
 }
 

+ 2 - 0
PAS/src/main/java/cn/cslg/pas/controller/TaskController.java

@@ -51,5 +51,7 @@ public class TaskController {
         taskService.updateStatus(task.getId(), task.getStatus(), task.getEndTime());
         return Response.success(true);
     }
+
+
 }
 

+ 9 - 0
PAS/src/main/java/cn/cslg/pas/mapper/PatentSimpleFamilyLinkMapper.java

@@ -2,6 +2,10 @@ package cn.cslg.pas.mapper;
 
 import cn.cslg.pas.domain.PatentSimpleFamilyLink;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface PatentSimpleFamilyLinkMapper extends BaseMapper<PatentSimpleFamilyLink> {
 
+
+    @Select("select a.* from os_patent_simplefamily_link a left join os_patent_simplefamily b on a.family_id=b.id where b.type=#{type} and a.patent_no in (#{patentNos})")
+ public  List<PatentSimpleFamilyLink> getPatentFamilyLinkByPatentNo(@Param("patentNos") List<String> patentNos,@Param("type")Integer type);
+
+
 }

+ 3 - 1
PAS/src/main/java/cn/cslg/pas/service/PatentService.java

@@ -110,8 +110,10 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> {
 
     public List<Patent> getPublicDateAndPatentNoByPatentNo(List<String> patentNo) {
         LambdaQueryWrapper<Patent> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.select(Patent::getPublicDate, Patent::getPatentNo, Patent::getId, Patent::getPublicNo);
+        queryWrapper.select(Patent::getPublicDate, Patent::getPatentNo, Patent::getId, Patent::getPublicNo
+                ,Patent::getSimpleFamily,Patent::getInpadocFamily,Patent::getPatSnapFamily);
         queryWrapper.in(Patent::getPatentNo, patentNo);
+        queryWrapper.last(" order by appdate, patentno");
         return this.list(queryWrapper);
     }
 

+ 73 - 84
PAS/src/main/java/cn/cslg/pas/service/PatentSimpleFamilyService.java

@@ -6,6 +6,7 @@ import cn.cslg.pas.common.utils.StringUtils;
 import cn.cslg.pas.domain.Patent;
 import cn.cslg.pas.domain.PatentSimpleFamily;
 import cn.cslg.pas.domain.PatentSimpleFamilyLink;
+import cn.cslg.pas.mapper.PatentSimpleFamilyLinkMapper;
 import cn.cslg.pas.mapper.PatentSimpleFamilyMapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -31,6 +32,7 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
     private final PatentService patentService;
     private final PatentApplicantService patentApplicantService;
     private final PatentSimpleFamilyLinkService patentSimpleFamilyLinkService;
+    private final PatentSimpleFamilyLinkMapper patentSimpleFamilyLinkMapper;
 
     public PatentSimpleFamily getPatentSimpleFamilyByIdsAndType(List<Integer> ids, Integer type) {
         if (ids == null || ids.size() == 0) {
@@ -80,111 +82,98 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
         }
     }
 
-    public PatentSimpleFamily add(Integer type) {
+    public PatentSimpleFamily add(Integer type,String patentNO) {
         PatentSimpleFamily patentSimpleFamily = new PatentSimpleFamily();
         patentSimpleFamily.setType(type);
+        patentSimpleFamily.setPatentNo(patentNO);
         patentSimpleFamily.insert();
         return patentSimpleFamily;
     }
 
     public void updateData(List<String> familyNo, String patentNo, Integer patentId, Integer type) {
+        long start =System.currentTimeMillis();
+        //0.合并专利号
+        if (!familyNo.contains(patentNo)) {
+            familyNo.add(patentNo);
+        }
         //1.根据专利号(faimlyNo + patentNo)从专利基础信息表中获取专利数据,以受理国家、申请日由小到大排序
+        List<Patent> patent1s = patentService.getPublicDateAndPatentNoByPatentNo(familyNo);
+
         //2.从1步取得的专利清单获取第一个CN专利号,为插入Family表中的专利号,如果没有CN专利,取第一个专利号
+        String temPatentNo="";
+        if(patent1s != null) {
+            Patent patentTem = patent1s.stream().filter(item -> PatentUtils.getPatentCountry(item.getPatentNo()) == "CN").findFirst().orElse(null);
+            if (patentTem == null) {
+                patentTem = patent1s.get(0);
+            }
+            temPatentNo=patentTem.getPatentNo();
+        }
+        else{
+            temPatentNo= patentNo;
+        }
+
         //3.根据专利号(faimlyNo + patentNo)和同族类型从family关联表中取数据
-        //4.第3步中如果有数据,则取得一个familID为下一步的插入关联表中的id
-        //5.专利号(faimlyNo + patentNo)和第三步获得的记录比较,如果没有则在关联表中添加一条记录
-        //6.更新专利基础信息表中的patentNo这条记录的相应type的同族Id
+        List<PatentSimpleFamilyLink> patentSimpleFamilyLinkList = patentSimpleFamilyLinkMapper.getPatentFamilyLinkByPatentNo(familyNo,type);
 
-        //两个表 1.同族表 2.同组关联专利表
-        //用专利号 获取同族关联专利表的信息
-        if (!familyNo.contains(patentNo)) {
-            familyNo.add(patentNo);
+        //4.第3步中如果有数据,则取得一个familID为下一步的插入关联表中的id
+        PatentSimpleFamily patentSimpleFamily;
+        if(patentSimpleFamilyLinkList !=null && patentSimpleFamilyLinkList.size() >0){
+            //4.1 第3步中有数据
+             patentSimpleFamily = this.getPatentSimpleFamilyByIdsAndType(patentSimpleFamilyLinkList.stream().map(PatentSimpleFamilyLink::getFamilyId).collect(Collectors.toList()), type);
         }
-        List<PatentSimpleFamilyLink> patentSimpleFamilyLinkList = patentSimpleFamilyLinkService.getPatentSimpleFamilyLinkByPatentNo(familyNo);
-        PatentSimpleFamily family = new PatentSimpleFamily();
-
-        if (patentSimpleFamilyLinkList == null || patentSimpleFamilyLinkList.size() == 0) {
-            //如果 同组关联专利表 内没有数据 就新建一条 同族表 的数据
-            family = this.add(type);
-        } else {
-            //如果 同组关联专利表 内有数据 那么用查询出来的List中的 同族表 的ID来获取 同族表 内的其他对应信息
-            PatentSimpleFamily patentSimpleFamily = this.getPatentSimpleFamilyByIdsAndType(patentSimpleFamilyLinkList.stream().map(PatentSimpleFamilyLink::getFamilyId).collect(Collectors.toList()), type);
-            if (patentSimpleFamily == null) {
-                family = this.add(type);
-            } else {
-                family = patentSimpleFamily;
-            }
+        else{
+            //4.2 第3步中有数据则在Family表中添加一条记录,并
+            patentSimpleFamily = this.add(type,temPatentNo);
         }
-//        List<PatentSimpleFamilyLink> temps = patentSimpleFamilyLinkService.getPatentSimpleFamilyLinkByPatentNoAndFamilyId(familyNo, family.getId());
 
-        List<Patent> patent1s = patentService.getPublicDateAndPatentNoByPatentNo(familyNo);
-        // 遍历
-        if (patentSimpleFamilyLinkList != null && patentSimpleFamilyLinkList.size() != 0) {
-            Patent patent2 = new Patent();
-            for (String patent : familyNo) {
-                PatentSimpleFamilyLink temp = patentSimpleFamilyLinkList.stream().filter(item -> item.getPatentNo().equals(patent)).findFirst().orElse(null);
-                if (temp == null) {
-                    PatentSimpleFamilyLink patentSimpleFamilyLink = new PatentSimpleFamilyLink();
-                    patentSimpleFamilyLink.setFamilyId(family.getId());
-                    patentSimpleFamilyLink.setPatentNo(patent);
-                    patentSimpleFamilyLink.insert();
-                } else {
-                    temp.setFamilyId(family.getId());
+        //5.专利号(faimlyNo + patentNo)和第三步获得的记录比较,如果没有则在关联表中添加一条记录
+        for(String temPN:familyNo) {
+            PatentSimpleFamilyLink temp = patentSimpleFamilyLinkList.stream().filter(item -> item.getPatentNo().equals(temPN)).findFirst().orElse(null);
+            if (temp == null) {
+                //5.1 如果关联表中没有记录,添加一个
+                PatentSimpleFamilyLink patentSimpleFamilyLink = new PatentSimpleFamilyLink();
+                patentSimpleFamilyLink.setFamilyId(patentSimpleFamily.getId());
+                patentSimpleFamilyLink.setPatentNo(temPN);
+                patentSimpleFamilyLink.insert();
+            } else {
+                //5.2 如果关联表中有记录,判断familyid是否跟temFailyID相同,不相同则更新记录
+                if (temp.getFamilyId() != patentSimpleFamily.getId()) {
+                    temp.setFamilyId(patentSimpleFamily.getId());
                     temp.updateById();
                 }
+            }
 
-                //更新同族专利的同族号
-                Patent patent1 = patent1s.stream().filter(item -> item.getPatentNo().equals(patent)).findFirst().orElse(null);
-                if (patent1 != null && patent1.getType() != null) {
-                    switch (type) {
-                        case 1:
-                            patent1.setSimpleFamily(family.getId());
-                            break;
-                        case 2:
-                            patent1.setInpadocFamily(family.getId());
-                            break;
-                        case 3:
-                            patent1.setPatSnapFamily(family.getId());
-                            break;
-                    }
-                    family.setPatentNo(patent1.getPatentNo());
-                    patent1.updateById();
-                }
-
-                if (StringUtils.isEmpty(family.getPatentNo())) {
-                    family.setPatentNo(patent);
-                } else {
-                    if (patent1 != null && patent2 != null) {
-                        String country1 = PatentUtils.getPatentCountry(patent1.getPatentNo());
-                        String country2 = PatentUtils.getPatentCountry(patent2.getPatentNo());
-                        if ("CN".equals(country1) && !"CN".equals(country2)) {
-                            family.setPatentNo(patent1.getPatentNo());
-                            patent2 = patent1;
-                        } else if (!"CN".equals(country1) && "CN".equals(country2)) {
-                            family.setPatentNo(patent2.getPatentNo());
-                        } else if (("CN".equals(country1) && "CN".equals(country2)) || (!"CN".equals(country1) && !"CN".equals(country2))) {
-                            Integer publicData1 = patent1.getPublicDate();
-                            Integer publicData2 = patent2.getPublicDate();
-                            if (publicData1 == null && publicData2 != null) {
-                                family.setPatentNo(patent2.getPatentNo());
-                            } else if (publicData1 != null && publicData2 == null) {
-                                family.setPatentNo(patent1.getPatentNo());
-                                patent2 = patent1;
-                            } else if (publicData1 != null && publicData2 != null) {
-                                if (publicData1 > publicData2) {
-                                    family.setPatentNo(patent2.getPatentNo());
-                                } else {
-                                    family.setPatentNo(patent1.getPatentNo());
-                                    patent2 = patent1;
-                                    System.out.println(patent2);
-                                }
-                            }
+            //6.如果同族关联表有数据则更新,无数据则插入一条数据
+            Patent patent1 = patent1s.stream().filter(item -> item.getPatentNo().equals(temPN)).findFirst().orElse(null);
+            if (patent1 != null) {
+                switch (type) {
+                    case 1:
+                        if(patent1.getSimpleFamily()!=patentSimpleFamily.getId())
+                        {
+                            patent1.setSimpleFamily(patentSimpleFamily.getId());
+                            patent1.updateById();
                         }
-                    }
+                        break;
+                    case 2:
+                        if(patent1.getInpadocFamily()!=patentSimpleFamily.getId())
+                        {
+                            patent1.setInpadocFamily(patentSimpleFamily.getId());
+                            patent1.updateById();
+                        }
+                        break;
+                    case 3:
+                        if(patent1.getPatSnapFamily()!=patentSimpleFamily.getId())
+                        {
+                            patent1.setPatSnapFamily(patentSimpleFamily.getId());
+                            patent1.updateById();
+                        }
+                        break;
                 }
 
-                family.updateById();
             }
         }
+        long end =System.currentTimeMillis();
+        System.out.println("总共用时---"+(start-end));
     }
+
 }

+ 1 - 0
PAS/src/main/java/cn/cslg/pas/service/TaskService.java

@@ -121,4 +121,5 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         task.setUrl(url);
         task.updateById();
     }
+
 }