|
@@ -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();
|
|
|
}
|
|
|
}
|
|
|
}
|