lwhhszx 2 rokov pred
rodič
commit
e9b707c563

+ 15 - 0
PAS/src/main/java/cn/cslg/pas/service/PatentApplicantLinkService.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.service;
 
+import cn.cslg.pas.domain.PatentApplicant;
 import cn.cslg.pas.domain.PatentApplicantLink;
 import cn.cslg.pas.mapper.PatentApplicantLinkMapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -56,6 +57,20 @@ public class PatentApplicantLinkService extends ServiceImpl<PatentApplicantLinkM
             }
         }
     }
+    public void updatePatentApplicantLinkCopy(List<String> name, List<String> shortName, Integer type, Integer patentId,List<PatentApplicant> patentApplicantList) {
+        List<Integer> applicableIds = patentApplicantService.updatePatentApplicantCopy(name, shortName,patentApplicantList);
+        if (applicableIds.size() != 0) {
+            this.remove(Wrappers.<PatentApplicantLink>lambdaQuery().eq(PatentApplicantLink::getPatentId, patentId).eq(PatentApplicantLink::getType, type));
+            for (int i = 0; i < applicableIds.size(); i++) {
+                PatentApplicantLink patentApplicantLink = new PatentApplicantLink();
+                patentApplicantLink.setApplicantId(applicableIds.get(i));
+                patentApplicantLink.setPatentId(patentId);
+                patentApplicantLink.setType(type);
+                patentApplicantLink.setOrder(i);
+                patentApplicantLink.insert();
+            }
+        }
+    }
 
     public void deleteByPatentId(Integer patentId) {
         this.remove(Wrappers.<PatentApplicantLink>lambdaQuery().eq(PatentApplicantLink::getPatentId, patentId));

+ 54 - 0
PAS/src/main/java/cn/cslg/pas/service/PatentApplicantService.java

@@ -282,6 +282,60 @@ public class PatentApplicantService extends ServiceImpl<PatentApplicantMapper, P
         return ids;
     }
 
+    public List<Integer> updatePatentApplicantCopy(List<String> name, List<String> shortName,List<PatentApplicant> patentApplicantList) {
+        //生成一个存放ID的List
+        List<Integer> ids = new ArrayList<>();
+        //判断当前名称是否为空
+        if (name != null) {
+            for (int i = 0; i < name.size(); i++) {
+                String s = i < shortName.size() ? shortName.get(i) : null;
+                String nam = name.get(i);
+                PatentApplicant temp = patentApplicantList.stream().filter(item->item.getMerge().equals(false)&&item.getName().equals(nam)).findFirst().orElse(null);
+//                LambdaQueryWrapper<PatentApplicant> queryWrapper = new LambdaQueryWrapper<>();
+//                queryWrapper.eq(PatentApplicant::getName, name.get(i));
+//                queryWrapper.eq(PatentApplicant::getMerge, 0);
+//                PatentApplicant temp = this.getOne(queryWrapper);
+                if (temp == null) {
+                    temp = this.add(name.get(i), s);
+                } else if (s != null && !s.equals(temp.getShortName())) {
+                    temp.setShortName(s);
+                    temp.updateById();
+                }
+                if(!ids.contains(temp.getId()))
+                { ids.add(temp.getId());}
+
+            }
+        } else {
+            for (String s : shortName) {
+                List<PatentApplicant>   temp = patentApplicantList.stream().filter(item->item.getMerge().equals(0)&&item.getName().equals(s)).collect(Collectors.toList());
+//                LambdaQueryWrapper<PatentApplicant> queryWrapper = new LambdaQueryWrapper<>();
+//                queryWrapper.eq(PatentApplicant::getShortName, s);
+//                queryWrapper.eq(PatentApplicant::getMerge, 0);
+//                List<PatentApplicant> temp = this.list(queryWrapper);
+
+                PatentApplicant patentApplicant = new PatentApplicant();
+                if (temp.size() == 0) {
+                    patentApplicant = this.add(s, s);
+                } else {
+                    if (temp.size() == 1) {
+                        patentApplicant = temp.get(0);
+                    } else {
+                        for (PatentApplicant pa : temp) {
+                            if (pa.getShortName().equals(pa.getName())) {
+                                patentApplicant = pa;
+                                break;
+                            }
+                        }
+                    }
+                }
+
+                if(!ids.contains(patentApplicant.getId())){ids.add(patentApplicant.getId());}
+
+            }
+        }
+
+        return ids;
+    }
     public void updatePatentApplicantAddress(PatentApplicantAddressParams params) {
         //用专利ID获取数据 申请人ID 申请人类型 申请人顺序
         List<PatentApplicantLink> patentApplicantLinkList = patentApplicantLinkService.getPatentApplicantAttributesByPatentId(params.getPatentId());

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

@@ -108,11 +108,11 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> {
         return this.getOne(queryWrapper);
     }
 
-    public Patent getPublicDateAndPatentNoByPatentNo(String patentNo) {
+    public List<Patent> getPublicDateAndPatentNoByPatentNo(List<String> patentNo) {
         LambdaQueryWrapper<Patent> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.select(Patent::getPublicDate, Patent::getPatentNo, Patent::getId, Patent::getPublicNo);
-        queryWrapper.eq(Patent::getPatentNo, patentNo);
-        return this.getOne(queryWrapper);
+        queryWrapper.in(Patent::getPatentNo, patentNo);
+        return this.list(queryWrapper);
     }
 
     public List<Patent> getPatentIdAndPatentNoByIds(List<Integer> ids) {

+ 2 - 2
PAS/src/main/java/cn/cslg/pas/service/PatentSimpleFamilyLinkService.java

@@ -57,9 +57,9 @@ public class PatentSimpleFamilyLinkService extends ServiceImpl<PatentSimpleFamil
         return pageList;
     }
 
-    public List<PatentSimpleFamilyLink> getPatentSimpleFamilyLinkByPatentNo(String patentNo) {
+    public List<PatentSimpleFamilyLink> getPatentSimpleFamilyLinkByPatentNo(List<String> patentNos) {
         LambdaQueryWrapper<PatentSimpleFamilyLink> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(PatentSimpleFamilyLink::getPatentNo, patentNo);
+        queryWrapper.in(PatentSimpleFamilyLink::getPatentNo, patentNos);
         return this.list(queryWrapper);
     }
 

+ 63 - 69
PAS/src/main/java/cn/cslg/pas/service/PatentSimpleFamilyService.java

@@ -91,8 +91,11 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
     public void updateData(List<String> familyNo, String patentNo, Integer patentId, Integer type) {
         //两个表 1.同族表 2.同组关联专利表
         //用专利号 获取同族关联专利表的信息
-        List<PatentSimpleFamilyLink> patentSimpleFamilyLinkList = patentSimpleFamilyLinkService.getPatentSimpleFamilyLinkByPatentNo(patentNo);
-        PatentSimpleFamily family;
+        if (!familyNo.contains(patentNo)) {
+            familyNo.add(patentNo);
+        }
+        List<PatentSimpleFamilyLink> patentSimpleFamilyLinkList = patentSimpleFamilyLinkService.getPatentSimpleFamilyLinkByPatentNo(familyNo);
+        PatentSimpleFamily family = new PatentSimpleFamily();
 
         if (patentSimpleFamilyLinkList == null || patentSimpleFamilyLinkList.size() == 0) {
             //如果 同组关联专利表 内没有数据 就新建一条 同族表 的数据
@@ -106,85 +109,76 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
                 family = patentSimpleFamily;
             }
         }
-        for (String patent : familyNo) {
-            PatentSimpleFamilyLink temp = patentSimpleFamilyLinkService.getPatentSimpleFamilyLinkByPatentNoAndFamilyId(patent, family.getId());
-            if (temp == null) {
-                PatentSimpleFamilyLink patentSimpleFamilyLink = new PatentSimpleFamilyLink();
-                patentSimpleFamilyLink.setFamilyId(family.getId());
-                patentSimpleFamilyLink.setPatentNo(patent);
-                patentSimpleFamilyLink.insert();
-            } else {
-                temp.setFamilyId(family.getId());
-                temp.updateById();
-            }
+//        List<PatentSimpleFamilyLink> temps = patentSimpleFamilyLinkService.getPatentSimpleFamilyLinkByPatentNoAndFamilyId(familyNo, family.getId());
 
-
-            Patent patent1 = patentService.getPublicDateAndPatentNoByPatentNo(patent);
-            Patent patent2 = patentService.getPublicDateAndPatentNoByPatentNo(family.getPatentNo());
-            if (patent1 != null) {
-                switch (type) {
-                    case 1:
-                        patent1.setSimpleFamily(family.getId());
-                        break;
-                    case 2:
-                        patent1.setInpadocFamily(family.getId());
-                        break;
-                    case 3:
-                        patent1.setPatSnapFamily(family.getId());
-                        break;
+        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());
+                    temp.updateById();
                 }
-                family.setPatentNo(patent1.getPatentNo());
-                patent1.updateById();
-            }
-            if (patent2 != null) {
-                switch (type) {
-                    case 1:
-                        patent2.setSimpleFamily(family.getId());
-                        break;
-                    case 2:
-                        patent2.setInpadocFamily(family.getId());
-                        break;
-                    case 3:
-                        patent2.setPatSnapFamily(family.getId());
-                        break;
-                }
-                family.setPatentNo(patent2.getPatentNo());
-                patent2.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());
+                //更新同族专利的同族号
+                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;
                     }
-                    if (!"CN".equals(country1) && "CN".equals(country2)) {
-                        family.setPatentNo(patent2.getPatentNo());
-                    }
-                    if ("CN".equals(country1) && "CN".equals(country2)) {
-                        Integer publicData1 = patent1.getPublicDate();
-                        Integer publicData2 = patent2.getPublicDate();
-                        if (publicData1 == null && publicData2 != null) {
-                            family.setPatentNo(patent2.getPatentNo());
-                        }
-                        if (publicData1 != null && publicData2 == null) {
+                    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());
-                        }
-                        if (publicData1 != null && publicData2 != null) {
-                            if (publicData1 > publicData2) {
+                            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 {
+                            } 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);
+                                }
                             }
                         }
                     }
                 }
+
+                family.updateById();
             }
-            family.updateById();
         }
     }
 }

+ 12 - 2
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -11,6 +11,7 @@ import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.domain.*;
 import cn.cslg.pas.mapper.ImportErrorLogMapper;
 import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import org.apache.poi.ss.usermodel.PictureData;
 import org.springframework.context.annotation.Lazy;
@@ -291,6 +292,8 @@ public class UploadPatentBatchService {
         patentLicensorService.updatePatentLicensor(patentLicensorParams);
     }
 
+
+    //简单同族
     private void patentSimplyFamilyBusiness(UploadParamsVO uploadParamsVO) {
         PatentSimpleFamilyParams patentSimpleFamilyParams = new PatentSimpleFamilyParams();
         if (uploadParamsVO.getSimpleFamily() != null) {
@@ -327,11 +330,18 @@ public class UploadPatentBatchService {
         patentInventorService.updatePatentInventor(patentInventorParams);
     }
 
+    //申请人(原始)/权利人(当前) OS_PATENT_APPLICATION || OS_APPLICATION_ATTR
     private void patentApplicationBusiness(UploadParamsVO uploadParamsVO) {
+        // 根据本条数据的名字查询所有的申请人信息
+List<String>  currentName=uploadParamsVO.getPatentApplicantCurrentName();
+List<String>  standardName = uploadParamsVO.getPatentApplicantStandardCurrentName();
+        currentName.addAll(uploadParamsVO.getPatentApplicantOriginalName());
+        standardName.addAll(uploadParamsVO.getPatentApplicantStandardOriginalName());
+        List<PatentApplicant> patentApplicantList = patentApplicantService.list(Wrappers.<PatentApplicant>lambdaQuery().in(PatentApplicant::getName, currentName).in(PatentApplicant::getShortName, standardName));
         //权利人
-        patentApplicantLinkService.updatePatentApplicantLink(uploadParamsVO.getPatentApplicantCurrentName(), uploadParamsVO.getPatentApplicantStandardCurrentName(), 1, uploadParamsVO.getPatent().getId());
+        patentApplicantLinkService.updatePatentApplicantLinkCopy(uploadParamsVO.getPatentApplicantCurrentName(), uploadParamsVO.getPatentApplicantStandardCurrentName(), 1, uploadParamsVO.getPatent().getId(),patentApplicantList);
         //申请人
-        patentApplicantLinkService.updatePatentApplicantLink(uploadParamsVO.getPatentApplicantOriginalName(), uploadParamsVO.getPatentApplicantStandardOriginalName(), 2, uploadParamsVO.getPatent().getId());
+        patentApplicantLinkService.updatePatentApplicantLinkCopy(uploadParamsVO.getPatentApplicantOriginalName(), uploadParamsVO.getPatentApplicantStandardOriginalName(), 2, uploadParamsVO.getPatent().getId(),patentApplicantList);
     }
 
     private void patentApplicationAddressBusiness(UploadParamsVO uploadParamsVO) {

+ 5 - 4
PAS/src/main/resources/application-dev.yml

@@ -1,13 +1,14 @@
 spring:
   redis:
-    host: 192.168.0.57
+    host: 47.101.137.223
     port: 6379
-    database: 2
+    database: 9
+    password: Xx0GWxdWQJxx6Swe
     timeout: 1000
   datasource:
-    url: jdbc:mysql://192.168.0.57:3306/pas?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+    url: jdbc:mysql://47.101.137.223:3306/pas?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
     username: root
-    password: 123456
+    password: TU5x6IeBi7rl
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
     druid: