PatentSimpleFamilyLinkService.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package cn.cslg.pas.service;
  2. import cn.cslg.pas.domain.Patent;
  3. import cn.cslg.pas.domain.PatentApplicant;
  4. import cn.cslg.pas.domain.PatentSimpleFamilyLink;
  5. import cn.cslg.pas.common.model.vo.PatentSimpleFamilyVO;
  6. import cn.cslg.pas.common.utils.StringUtils;
  7. import cn.cslg.pas.mapper.PatentSimpleFamilyLinkMapper;
  8. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  9. import com.baomidou.mybatisplus.core.metadata.IPage;
  10. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  11. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  12. import lombok.RequiredArgsConstructor;
  13. import org.springframework.context.annotation.Lazy;
  14. import org.springframework.stereotype.Service;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. import java.util.stream.Collectors;
  18. /**
  19. * <p>
  20. * 同族关联专利表 服务类
  21. * </p>
  22. *
  23. * @author 王岩
  24. * @since 2022-02-24
  25. */
  26. @Service
  27. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  28. public class PatentSimpleFamilyLinkService extends ServiceImpl<PatentSimpleFamilyLinkMapper, PatentSimpleFamilyLink> {
  29. private final PatentService patentService;
  30. private final PatentApplicantService patentApplicantService;
  31. public IPage<PatentSimpleFamilyLink> getPageList(PatentSimpleFamilyVO params) {
  32. LambdaQueryWrapper<PatentSimpleFamilyLink> queryWrapper = new LambdaQueryWrapper<>();
  33. if (StringUtils.isNotEmpty(params.getPatentNo())) {
  34. queryWrapper.like(PatentSimpleFamilyLink::getPatentNo, params.getPatentNo());
  35. }
  36. queryWrapper.eq(PatentSimpleFamilyLink::getFamilyId, params.getFamilyId());
  37. IPage<PatentSimpleFamilyLink> pageList = this.page(new Page<>(params.getCurrent(), params.getSize()), queryWrapper);
  38. List<Patent> patentList = patentService.getPatentListByPatentNo(pageList.getRecords().stream().map(PatentSimpleFamilyLink::getPatentNo).collect(Collectors.toList()));
  39. List<PatentApplicant> patentApplicantList = patentApplicantService.getPatentApplicantByPatentIds(patentList.stream().map(Patent::getId).collect(Collectors.toList()));
  40. pageList.getRecords().forEach(patentSimpleFamily -> {
  41. Patent patent = patentList.stream().filter(item -> item.getPatentNo().equals(patentSimpleFamily.getPatentNo())).findFirst().orElse(null);
  42. if (patent == null) {
  43. patentSimpleFamily.setPatentId(-1);
  44. patentSimpleFamily.setName("暂未收录");
  45. } else {
  46. patentSimpleFamily.setPatentId(patent.getId());
  47. patentSimpleFamily.setName(patent.getName());
  48. patentSimpleFamily.setAbstractPath(patent.getAbstractPath());
  49. patentSimpleFamily.setApplicant(patentApplicantList.stream().filter(item -> item.getPatentId().equals(patentSimpleFamily.getPatentId())).collect(Collectors.toList()));
  50. }
  51. });
  52. return pageList;
  53. }
  54. public List<PatentSimpleFamilyLink> getPatentSimpleFamilyLinkByPatentNo(List<String> patentNos) {
  55. LambdaQueryWrapper<PatentSimpleFamilyLink> queryWrapper = new LambdaQueryWrapper<>();
  56. queryWrapper.in(PatentSimpleFamilyLink::getPatentNo, patentNos);
  57. return this.list(queryWrapper);
  58. }
  59. public List<PatentSimpleFamilyLink> getPatentSimpleFamilyLinkByPatentNoAndFamilyId(List<String> patentNo, Integer familyId) {
  60. LambdaQueryWrapper<PatentSimpleFamilyLink> queryWrapper = new LambdaQueryWrapper<>();
  61. queryWrapper.in(PatentSimpleFamilyLink::getPatentNo, patentNo);
  62. queryWrapper.eq(PatentSimpleFamilyLink::getFamilyId, familyId);
  63. return this.list(queryWrapper);
  64. }
  65. public List<PatentSimpleFamilyLink> getPatentSimpleFamilyLinkByFamilyIds(List<Integer> familyIds) {
  66. if (familyIds == null || familyIds.size() == 0) {
  67. return new ArrayList<>();
  68. }
  69. LambdaQueryWrapper<PatentSimpleFamilyLink> queryWrapper = new LambdaQueryWrapper<>();
  70. queryWrapper.in(PatentSimpleFamilyLink::getFamilyId, familyIds);
  71. return this.list(queryWrapper);
  72. }
  73. }