|
@@ -10,11 +10,13 @@ import cn.cslg.pas.mapper.PatentSimpleFamilyLinkMapper;
|
|
|
import cn.cslg.pas.mapper.PatentSimpleFamilyMapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -83,7 +85,7 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public PatentSimpleFamily add(Integer type,String patentNO) {
|
|
|
+ public PatentSimpleFamily add(Integer type, String patentNO) {
|
|
|
PatentSimpleFamily patentSimpleFamily = new PatentSimpleFamily();
|
|
|
patentSimpleFamily.setType(type);
|
|
|
patentSimpleFamily.setPatentNo(patentNO);
|
|
@@ -92,7 +94,6 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
|
|
|
}
|
|
|
|
|
|
public void updateData(List<String> familyNo, String patentNo, Integer patentId, Integer type) {
|
|
|
- long start =System.currentTimeMillis();
|
|
|
//0.合并专利号
|
|
|
if (!familyNo.contains(patentNo)) {
|
|
|
familyNo.add(patentNo);
|
|
@@ -101,37 +102,36 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
|
|
|
List<Patent> patent1s = patentService.getPublicDateAndPatentNoByPatentNo(familyNo);
|
|
|
|
|
|
//2.从1步取得的专利清单获取第一个CN专利号,为插入Family表中的专利号,如果没有CN专利,取第一个专利号
|
|
|
- String temPatentNo="";
|
|
|
- if(patent1s != null) {
|
|
|
+ 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();
|
|
|
+ temPatentNo = patentTem.getPatentNo();
|
|
|
+ } else {
|
|
|
+ temPatentNo = patentNo;
|
|
|
}
|
|
|
- else{
|
|
|
- temPatentNo= patentNo;
|
|
|
- }
|
|
|
- String familyPatent =temPatentNo;
|
|
|
- //根据专利号查询同族信息
|
|
|
- LambdaQueryWrapper<PatentSimpleFamily> wrapper =new LambdaQueryWrapper<>();
|
|
|
- wrapper.in(PatentSimpleFamily::getPatentNo,familyNo)
|
|
|
- .eq(PatentSimpleFamily::getType,type);
|
|
|
- List<PatentSimpleFamily> simpleFamilies = this.list(wrapper);
|
|
|
+ String familyPatent = temPatentNo;
|
|
|
+ //根据专利号查询同族信息
|
|
|
+ LambdaQueryWrapper<PatentSimpleFamily> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.in(PatentSimpleFamily::getPatentNo, familyNo)
|
|
|
+ .eq(PatentSimpleFamily::getType, type);
|
|
|
+ List<PatentSimpleFamily> simpleFamilies = this.list(wrapper);
|
|
|
//获得同族专利的同族id
|
|
|
- List<Integer> familyIds =simpleFamilies.stream().map(PatentSimpleFamily::getId).collect(Collectors.toList());
|
|
|
+ List<Integer> familyIds = simpleFamilies.stream().map(PatentSimpleFamily::getId).collect(Collectors.toList());
|
|
|
//查询是否有满足条件的
|
|
|
- PatentSimpleFamily simpleFamily =simpleFamilies.stream().filter(item->item.getPatentNo().equals(familyPatent)&&item.getType().equals(type)).findFirst().orElse(null);
|
|
|
- if(simpleFamily==null){
|
|
|
- simpleFamily= this.add(type,familyPatent);
|
|
|
- }
|
|
|
- familyIds.remove(simpleFamily.getId());
|
|
|
+ PatentSimpleFamily simpleFamily = simpleFamilies.stream().filter(item -> item.getPatentNo().equals(familyPatent) && item.getType().equals(type)).findFirst().orElse(null);
|
|
|
+ if (simpleFamily == null) {
|
|
|
+ simpleFamily = this.add(type, familyPatent);
|
|
|
+ }
|
|
|
+ familyIds.remove(simpleFamily.getId());
|
|
|
|
|
|
//3.根据专利号(faimlyNo + patentNo)和同族类型从family关联表中取数据
|
|
|
- List<PatentSimpleFamilyLink> patentSimpleFamilyLinkList = patentSimpleFamilyLinkMapper.getPatentFamilyLinkByPatentNo(familyNo,type);
|
|
|
+ List<PatentSimpleFamilyLink> patentSimpleFamilyLinkList = patentSimpleFamilyLinkMapper.getPatentFamilyLinkByPatentNo(familyNo, type);
|
|
|
|
|
|
//5.专利号(faimlyNo + patentNo)和第三步获得的记录比较,如果没有则在关联表中添加一条记录
|
|
|
- for(String temPN:familyNo) {
|
|
|
+ for (String temPN : familyNo) {
|
|
|
PatentSimpleFamilyLink temp = patentSimpleFamilyLinkList.stream().filter(item -> item.getPatentNo().equals(temPN)).findFirst().orElse(null);
|
|
|
if (temp == null) {
|
|
|
//5.1 如果关联表中没有记录,添加一个
|
|
@@ -152,22 +152,19 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
|
|
|
if (patent1 != null) {
|
|
|
switch (type) {
|
|
|
case 1:
|
|
|
- if(patent1.getSimpleFamily()!=simpleFamily.getId())
|
|
|
- {
|
|
|
+ if (patent1.getSimpleFamily() != simpleFamily.getId()) {
|
|
|
patent1.setSimpleFamily(simpleFamily.getId());
|
|
|
patent1.updateById();
|
|
|
}
|
|
|
break;
|
|
|
case 2:
|
|
|
- if(patent1.getInpadocFamily()!=simpleFamily.getId())
|
|
|
- {
|
|
|
+ if (patent1.getInpadocFamily() != simpleFamily.getId()) {
|
|
|
patent1.setInpadocFamily(simpleFamily.getId());
|
|
|
patent1.updateById();
|
|
|
}
|
|
|
break;
|
|
|
case 3:
|
|
|
- if(patent1.getPatSnapFamily()!=simpleFamily.getId())
|
|
|
- {
|
|
|
+ if (patent1.getPatSnapFamily() != simpleFamily.getId()) {
|
|
|
patent1.setPatSnapFamily(simpleFamily.getId());
|
|
|
patent1.updateById();
|
|
|
}
|
|
@@ -175,33 +172,59 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- if(familyIds.size()!=0) {
|
|
|
+ if (familyIds.size() != 0) {
|
|
|
//删除同族关联信息
|
|
|
- LambdaQueryWrapper<PatentSimpleFamilyLink> linkWrapper =new LambdaQueryWrapper<>();
|
|
|
- linkWrapper.in(PatentSimpleFamilyLink::getId,familyIds);
|
|
|
+ LambdaQueryWrapper<PatentSimpleFamilyLink> linkWrapper = new LambdaQueryWrapper<>();
|
|
|
+ linkWrapper.in(PatentSimpleFamilyLink::getId, familyIds);
|
|
|
patentSimpleFamilyLinkService.remove(linkWrapper);
|
|
|
//删除其他同族信息
|
|
|
- LambdaUpdateWrapper<PatentSimpleFamily> deleteWrapper= new LambdaUpdateWrapper<>();
|
|
|
- deleteWrapper.in(PatentSimpleFamily::getId,familyIds);
|
|
|
+ LambdaUpdateWrapper<PatentSimpleFamily> deleteWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ deleteWrapper.in(PatentSimpleFamily::getId, familyIds);
|
|
|
this.remove(deleteWrapper);
|
|
|
}
|
|
|
- long end =System.currentTimeMillis();
|
|
|
- System.out.println("总共用时---"+(start-end));
|
|
|
}
|
|
|
|
|
|
-//
|
|
|
-// //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);
|
|
|
-// }
|
|
|
-// else{
|
|
|
-// //4.2 第3步中有数据则在Family表中添加一条记录,并
|
|
|
-// patentSimpleFamily = this.add(type,temPatentNo);
|
|
|
-// }
|
|
|
-//
|
|
|
-
|
|
|
-//
|
|
|
+ public static void main(String[] args) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<String> cleanDate(Integer type) {
|
|
|
+ List<String> patentNos =new ArrayList<>();
|
|
|
+ List<PatentSimpleFamily> patentSimpleFamilies = patentSimpleFamilyLinkService.getBaseMapper().getDirtyData(type);
|
|
|
+ for(PatentSimpleFamily item :patentSimpleFamilies) {
|
|
|
+ LambdaQueryWrapper<PatentSimpleFamily> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(PatentSimpleFamily::getPatentNo, item.getPatentNo())
|
|
|
+ .eq(PatentSimpleFamily::getType, type);
|
|
|
+ List<PatentSimpleFamily> patentSimpleFamilys = this.list(wrapper);
|
|
|
+ List<Integer> ids = patentSimpleFamilys.stream().map(PatentSimpleFamily::getId).collect(Collectors.toList());
|
|
|
+ PatentSimpleFamily mainFamily = patentSimpleFamilys.get(0);
|
|
|
+ Integer mainId = mainFamily.getId();
|
|
|
+ ids.remove(mainId);
|
|
|
+ this.removeByIds(ids);
|
|
|
+ UpdateWrapper<PatentSimpleFamilyLink> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.in("family_id", ids).set("family_id", mainId);
|
|
|
+ patentSimpleFamilyLinkService.update(null, updateWrapper);
|
|
|
+
|
|
|
+ if (type == 1) {
|
|
|
+ UpdateWrapper<Patent> updateWrapper2 = new UpdateWrapper<>();
|
|
|
+ updateWrapper2.in("simple_family", ids).set("simple_family", mainId);
|
|
|
+ patentService.update(null, updateWrapper2);
|
|
|
+
|
|
|
+ } else if (type == 2) {
|
|
|
+ UpdateWrapper<Patent> updateWrapper2 = new UpdateWrapper<>();
|
|
|
+ updateWrapper2.in("inpadoc_family", ids).set("inpadoc_family", mainId);
|
|
|
+ patentService.update(null, updateWrapper2);
|
|
|
+
|
|
|
+ } else if (type == 3) {
|
|
|
+ UpdateWrapper<Patent> updateWrapper2 = new UpdateWrapper<>();
|
|
|
+ updateWrapper2.in("patsnap_family", ids).set("patsnap_family", mainId);
|
|
|
+ patentService.update(null, updateWrapper2);
|
|
|
+
|
|
|
+ }
|
|
|
+ patentNos.add(mainFamily.getPatentNo());
|
|
|
+
|
|
|
+ }
|
|
|
+return patentNos;
|
|
|
+ }
|
|
|
|
|
|
}
|