123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- package cn.cslg.pas.service;
- import cn.cslg.pas.domain.*;
- import cn.cslg.pas.domain.asso.AssoStructurePatent;
- import cn.cslg.pas.mapper.WebConfigMapper;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- 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;
- /**
- * @author admin
- * @description 针对表【web_config(网站配置)】的数据库操作Service实现
- * @createDate 2023-03-08 18:51:17
- */
- @Service
- @RequiredArgsConstructor(onConstructor_ = {@Lazy})
- public class TestService
- {
- private final IStructureService structureService;
- private final ProjectFieldTreeService projectFieldTreeService;
- private final ProjectFieldPatentLinkService patentLinkService;
- private final PatentService patentService;
- private final IStructurePatentService structurePatentService;
- public void getConfigById(Integer id,Integer optionId){
- // 查询产品id查询产品架构
- LambdaQueryWrapper<Structure> wrapper =new LambdaQueryWrapper<>();
- wrapper.eq(Structure::getProductId,id);
- List<Structure> structureList =structureService.list(wrapper);
- List<Structure> structures =structureList.stream().filter(item->item.getParentId().equals(0)).collect(Collectors.toList());
- LambdaQueryWrapper<ProjectFieldPatentLink> wrapper1 =new LambdaQueryWrapper<>();
- wrapper1.eq(ProjectFieldPatentLink::getFieldId,4766)
- .eq(ProjectFieldPatentLink::getOptionId,optionId);
- List<ProjectFieldPatentLink> links =patentLinkService.list(wrapper1);
- List<Integer> pids =links.stream().map(ProjectFieldPatentLink::getPatentId).collect(Collectors.toList());
- this.reT(structureList,structures,0,0,id,pids);
- }
- public void reT(List<Structure> structureList,List<Structure> structures,Integer t,Integer b,Integer id,List<Integer> pids){
- structures.forEach(item->{
- //根据父节点和名称查找自定义字段
- LambdaQueryWrapper<ProjectFieldTree> wrapper =new LambdaQueryWrapper<>();
- wrapper.eq(ProjectFieldTree::getParentId,t)
- .eq(ProjectFieldTree::getName,item.getStructureName())
- .eq(ProjectFieldTree::getFieldId,4767);
- ProjectFieldTree projectFieldTree = projectFieldTreeService.getOne(wrapper);
- if(projectFieldTree !=null) {
- //根据projectFieldTree.getId()查询关联专利
- LambdaQueryWrapper<ProjectFieldPatentLink> wrapper1 =new LambdaQueryWrapper<>();
- wrapper1.eq(ProjectFieldPatentLink::getFieldId,4767)
- .eq(ProjectFieldPatentLink::getOptionId,projectFieldTree.getId());
- List<ProjectFieldPatentLink> links = patentLinkService.list(wrapper1);
- List<Integer> patentIds =links.stream().map(ProjectFieldPatentLink::getPatentId).collect(Collectors.toList());
- //取交集
- patentIds.retainAll(pids);
- //根据专利id查询专利号
- if(patentIds.size()!=0){
- LambdaQueryWrapper<Patent> wrapper2 =new LambdaQueryWrapper<>();
- wrapper2.in(Patent::getId,patentIds);
- List<Patent> patents =patentService.list(wrapper2);
- List<String> patentNos =patents.stream().map(Patent::getPatentNo).collect(Collectors.toList());
- List<AssoStructurePatent> assoStructurePatents =new ArrayList<>();
- patentNos.forEach(tem->{
- AssoStructurePatent assoStructurePatent =new AssoStructurePatent();
- assoStructurePatent.setPath(item.getPath());
- assoStructurePatent.setPatentNo(tem);
- assoStructurePatent.setProjectId(81);
- assoStructurePatent.setProductId(id);
- assoStructurePatent.setStructureId(item.getId());
- assoStructurePatents.add(assoStructurePatent);
- });
- structurePatentService.saveBatch(assoStructurePatents);
- }
- //根据父节点查询子节点
- List<Structure> child = structureList.stream().filter(tem -> tem.getParentId().equals(item.getId())).collect(Collectors.toList());
- if (child.size() == 0) {
- //根据自定义字段父节点id查询子节点
- LambdaQueryWrapper<ProjectFieldTree> wrapper2 =new LambdaQueryWrapper<>();
- wrapper2.eq(ProjectFieldTree::getParentId,projectFieldTree.getId());
- List<ProjectFieldTree> trees =projectFieldTreeService.list(wrapper2);
- List<Integer> treeIds =trees.stream().map(ProjectFieldTree::getId).collect(Collectors.toList());
- if(treeIds.size()!=0) {
- LambdaQueryWrapper<ProjectFieldPatentLink> wrapper3 = new LambdaQueryWrapper<>();
- wrapper3.eq(ProjectFieldPatentLink::getFieldId, 4767)
- .in(ProjectFieldPatentLink::getOptionId, treeIds);
- List<ProjectFieldPatentLink> links2 = patentLinkService.list(wrapper3);
- List<Integer> patentIds2 =links2.stream().map(ProjectFieldPatentLink::getPatentId).collect(Collectors.toList());
- patentIds2.retainAll(pids);
- if(patentIds2.size()!=0){
- LambdaQueryWrapper<Patent> wrapper4 =new LambdaQueryWrapper<>();
- wrapper4.in(Patent::getId,patentIds2);
- List<Patent> patents =patentService.list(wrapper4);
- List<String> patentNos =patents.stream().map(Patent::getPatentNo).collect(Collectors.toList());
- List<AssoStructurePatent> assoStructurePatents =new ArrayList<>();
- patentNos.forEach(tem->{
- AssoStructurePatent assoStructurePatent =new AssoStructurePatent();
- assoStructurePatent.setPath(item.getPath());
- assoStructurePatent.setPatentNo(tem);
- assoStructurePatent.setProjectId(81);
- assoStructurePatent.setProductId(id);
- assoStructurePatent.setStructureId(item.getId());
- assoStructurePatents.add(assoStructurePatent);
- });
- structurePatentService.saveBatch(assoStructurePatents);
- LambdaQueryWrapper<ProjectFieldTree> wrapper5 =new LambdaQueryWrapper<>();
- wrapper5.in(ProjectFieldTree::getParentId,treeIds);
- List<ProjectFieldTree> trees5 =projectFieldTreeService.list(wrapper5);
- List<Integer> treeIds5 =trees5.stream().map(ProjectFieldTree::getId).collect(Collectors.toList());
- if(treeIds5.size()>0) {
- LambdaQueryWrapper<ProjectFieldPatentLink> wrapper6 = new LambdaQueryWrapper<>();
- wrapper6.eq(ProjectFieldPatentLink::getFieldId, 4767)
- .in(ProjectFieldPatentLink::getOptionId, treeIds5);
- List<ProjectFieldPatentLink> links5 = patentLinkService.list(wrapper6);
- List<Integer> patentIds5 = links5.stream().map(ProjectFieldPatentLink::getPatentId).collect(Collectors.toList());
- patentIds5.retainAll(pids);
- if (patentIds5.size() != 0) {
- LambdaQueryWrapper<Patent> wrapper7= new LambdaQueryWrapper<>();
- wrapper7.in(Patent::getId, patentIds5);
- List<Patent> patents7 = patentService.list(wrapper7);
- List<String> patentNos7 = patents7.stream().map(Patent::getPatentNo).collect(Collectors.toList());
- List<AssoStructurePatent> assoStructurePatents1 = new ArrayList<>();
- patentNos7.forEach(tem -> {
- AssoStructurePatent assoStructurePatent = new AssoStructurePatent();
- assoStructurePatent.setPath(item.getPath());
- assoStructurePatent.setPatentNo(tem);
- assoStructurePatent.setProjectId(81);
- assoStructurePatent.setProductId(id);
- assoStructurePatent.setStructureId(item.getId());
- assoStructurePatents1.add(assoStructurePatent);
- });
- structurePatentService.saveBatch(assoStructurePatents1);
- }
- }
- }
- }
- } else {
- Integer re = projectFieldTree.getId();
- this.reT(structureList, child, re,t,id,pids);
- }
- }
- });
- }
- }
|