Browse Source

getone 改写2022/10/20

lwhhszx 2 years ago
parent
commit
285da44334

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

@@ -55,9 +55,7 @@ public class ProjectImportController {
         }
         TaskParams taskParams = projectService.getImportPatentTaskParams(file, params.getProjectId());
         //projectService.importPatent(taskParams, params);
-
         uploadPatentBatchService.uploadPatentBatch(taskParams, params);
-
         return Response.success(true);
     }
 

+ 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) {

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

@@ -57,17 +57,17 @@ 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);
     }
 
-    public PatentSimpleFamilyLink getPatentSimpleFamilyLinkByPatentNoAndFamilyId(String patentNo, Integer familyId) {
+    public List<PatentSimpleFamilyLink> getPatentSimpleFamilyLinkByPatentNoAndFamilyId(List<String> patentNo, Integer familyId) {
         LambdaQueryWrapper<PatentSimpleFamilyLink> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(PatentSimpleFamilyLink::getPatentNo, patentNo);
+        queryWrapper.in(PatentSimpleFamilyLink::getPatentNo, patentNo);
         queryWrapper.eq(PatentSimpleFamilyLink::getFamilyId, familyId);
-        return this.getOne(queryWrapper);
+        return this.list(queryWrapper);
     }
 
     public List<PatentSimpleFamilyLink> getPatentSimpleFamilyLinkByFamilyIds(List<Integer> familyIds) {

+ 76 - 75
PAS/src/main/java/cn/cslg/pas/service/PatentSimpleFamilyService.java

@@ -1,9 +1,7 @@
 package cn.cslg.pas.service;
 
-import cn.cslg.pas.domain.PatentSimpleFamilyLink;
+import cn.cslg.pas.domain.*;
 import cn.cslg.pas.common.utils.StringUtils;
-import cn.cslg.pas.domain.Patent;
-import cn.cslg.pas.domain.PatentSimpleFamily;
 import cn.cslg.pas.mapper.PatentSimpleFamilyMapper;
 import cn.cslg.pas.common.model.params.PatentSimpleFamilyParams;
 import cn.cslg.pas.common.utils.PatentUtils;
@@ -13,6 +11,9 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -32,14 +33,15 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
     private final PatentApplicantService patentApplicantService;
     private final PatentSimpleFamilyLinkService patentSimpleFamilyLinkService;
 
-    public PatentSimpleFamily getPatentSimpleFamilyByIdsAndType(List<Integer> ids, Integer type) {
+    public PatentSimpleFamily  getPatentSimpleFamilyByIdsAndType(List<Integer> ids, Integer type) {
         if (ids == null || ids.size() == 0) {
             return null;
         }
         LambdaQueryWrapper<PatentSimpleFamily> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.in(PatentSimpleFamily::getId, ids);
         queryWrapper.eq(PatentSimpleFamily::getType, type);
-        return this.getOne(queryWrapper);
+        List<PatentSimpleFamily> patentSimpleFamilies =this.list(queryWrapper);
+        return patentSimpleFamilies.get(0);
     }
 
     public List<PatentSimpleFamily> getPatentSimpleFamilyByIds(List<Integer> ids) {
@@ -86,8 +88,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) {
             //如果 同组关联专利表 内没有数据 就新建一条 同族表 的数据
@@ -97,89 +102,85 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
             PatentSimpleFamily patentSimpleFamily = this.getPatentSimpleFamilyByIdsAndType(patentSimpleFamilyLinkList.stream().map(PatentSimpleFamilyLink::getFamilyId).collect(Collectors.toList()), type);
             if (patentSimpleFamily == null) {
                 family = this.add(type);
-            } else {
-                family = patentSimpleFamily;
             }
+           else {
+             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;
-                }
-                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;
+        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(new PatentSimpleFamilyLink());
+                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(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());
+                            patent2 =patent1;
+                        }
+                      else  if (!"CN".equals(country1) && "CN".equals(country2)) {
+                            family.setPatentNo(patent2.getPatentNo());
                         }
-                        if (publicData1 != null && publicData2 != null) {
-                            if (publicData1 > publicData2) {
+                     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();
         }
     }
 }

+ 9 - 1
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -255,6 +255,7 @@ public class UploadPatentBatchService {
         patentInstructionTextService.updatePatentInstructionText(patentInstructionTextParams);
     }
 
+    //代理人
     private void patentAgentBusiness(UploadParamsVO uploadParamsVO) {
         PatentAgentParams patentAgentParams = new PatentAgentParams();
         patentAgentParams.setPatentId(uploadParamsVO.getPatent().getId());
@@ -266,6 +267,7 @@ public class UploadPatentBatchService {
         patentAgentService.updatePatentAgent(patentAgentParams);
     }
 
+    //质押质权人 OS_PATENT_PLEDGE
     private void patentPledgeBusiness(UploadParamsVO uploadParamsVO) {
         PatentPledgeParams patentPledgeParams = new PatentPledgeParams();
         patentPledgeParams.setPatentId(uploadParamsVO.getPatent().getId());
@@ -277,6 +279,9 @@ public class UploadPatentBatchService {
         patentPledgeService.updatePatentPledge(patentPledgeParams);
     }
 
+
+
+    //许可人 OS_PATENT_LICENSOR
     private void patentLicensorBusiness(UploadParamsVO uploadParamsVO) {
         PatentLicensorParams patentLicensorParams = new PatentLicensorParams();
         patentLicensorParams.setPatentId(uploadParamsVO.getPatent().getId());
@@ -290,6 +295,8 @@ public class UploadPatentBatchService {
         patentLicensorService.updatePatentLicensor(patentLicensorParams);
     }
 
+
+    //简单同族
     private void patentSimplyFamilyBusiness(UploadParamsVO uploadParamsVO) {
         PatentSimpleFamilyParams patentSimpleFamilyParams = new PatentSimpleFamilyParams();
         if (uploadParamsVO.getSimpleFamily() != null) {
@@ -306,7 +313,7 @@ public class UploadPatentBatchService {
 
         patentSimpleFamilyService.updatePatentSimpleFamily(patentSimpleFamilyParams);
     }
-
+    //发明人 OS_PATENT_INVENTOR
     private void patentInventorBusiness(UploadParamsVO uploadParamsVO) {
         PatentInventorParams patentInventorParams = new PatentInventorParams();
         if (uploadParamsVO.getPatentInventorList() != null) {
@@ -326,6 +333,7 @@ public class UploadPatentBatchService {
         patentInventorService.updatePatentInventor(patentInventorParams);
     }
 
+    //申请人(原始)/权利人(当前) OS_PATENT_APPLICATION || OS_APPLICATION_ATTR
     private void patentApplicationBusiness(UploadParamsVO uploadParamsVO) {
         //权利人
         patentApplicantLinkService.updatePatentApplicantLink(uploadParamsVO.getPatentApplicantCurrentName(), uploadParamsVO.getPatentApplicantStandardCurrentName(), 1, uploadParamsVO.getPatent().getId());