فهرست منبع

Merge remote-tracking branch 'origin/master'

xiexiang 1 سال پیش
والد
کامیت
7875e5d778

+ 93 - 0
src/main/java/cn/cslg/pas/common/dto/PatentDetailDTO.java

@@ -0,0 +1,93 @@
+package cn.cslg.pas.common.dto;
+
+import cn.cslg.pas.domain.es.PatentClassify;
+import cn.cslg.pas.domain.es.PatentPerson;
+import cn.cslg.pas.domain.es.PersonAddress;
+import cn.cslg.pas.domain.es.Text;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class PatentDetailDTO {
+
+    //专利号
+    private String patentNo;
+
+    //标题
+    private List<Text> title;
+
+    //摘要
+    private List<Text> abstractStr;
+
+    //申请号
+    private String appNo;
+
+    //申请日
+    private Date appDate;
+
+    //公开号
+    private String publicNo;
+
+    //公开日
+    private Date publicDate;
+
+    //授权号
+    private String grantNo;
+
+    //授权日
+    private Date grantDate;
+
+    //申请人
+    private List<PatentPerson> applicant;
+
+    //申请人地址
+    private PersonAddress applicantAddr;
+
+    //权利人
+    private List<PatentPerson> rightHolder;
+
+    //权利人地址
+    private PersonAddress rightHolderAddr;
+
+    //发明人
+    private List<PatentPerson> inventor;
+
+    //代理机构
+    private String agency;
+
+    //代理机构编号
+    private String agencyNo;
+
+    //代理人
+    private List<String> agent;
+
+    //IPC分类号(主)
+    private PatentClassify mipc;
+
+    //IPC集合
+    private List<PatentClassify> ipc;
+
+    //权利要求
+    private List<Text> claim;
+
+    //公开说明书文本
+    private List<Text> publicFullText;
+
+    //授权说明书文本
+    private List<Text> grantFullText;
+
+    //专利状态
+    private String simpleStatus;
+
+    //专利类型
+    private String patentType;
+
+    //法律状态
+    private List<String> legalStatus;
+
+    //同族专利列表
+    private List<PatentKinDTO> kinDTOS;
+}

+ 35 - 0
src/main/java/cn/cslg/pas/common/dto/PatentKinDTO.java

@@ -0,0 +1,35 @@
+package cn.cslg.pas.common.dto;
+
+import cn.cslg.pas.domain.es.PatentPerson;
+import cn.cslg.pas.domain.es.Text;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PatentKinDTO {
+
+    //摘要
+    private List<Text> abstractStr;
+
+    //专利号
+    private String patentNo;
+
+    //申请号
+    private String appNo;
+
+    //公开号
+    private String publicNo;
+
+    //授权号
+    private String grantNo;
+
+    //申请人
+    private List<PatentPerson> applicant;
+
+    //权利人
+    private List<PatentPerson> rightHolder;
+
+    //标题--专利名称
+    private List<Text> title;
+}

+ 21 - 0
src/main/java/cn/cslg/pas/common/dto/business/ReportTempleDTO.java

@@ -0,0 +1,21 @@
+package cn.cslg.pas.common.dto.business;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ReportTempleDTO {
+
+    private Integer id;
+
+    private String templateName;
+
+    private String templatePath;
+
+    private Integer reportType;
+
+    private Integer createId;
+
+    private Date createTime;
+}

+ 13 - 0
src/main/java/cn/cslg/pas/common/vo/business/PatentKinDetailVO.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+@Data
+public class PatentKinDetailVO {
+    //申请号
+    private String appNo;
+    //公开号
+    private String publicNo;
+    //授权号
+    private String grantNo;
+}

+ 15 - 0
src/main/java/cn/cslg/pas/common/vo/business/PatentKinVO.java

@@ -0,0 +1,15 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+@Data
+public class PatentKinVO {
+    //专利号
+    private String patentNo;
+    //专利号
+    private String type;
+    //页码
+    private Integer pageNum;
+    //页的大小
+    private Integer pageSize;
+}

+ 8 - 0
src/main/java/cn/cslg/pas/common/vo/business/TempleByReportTypeVO.java

@@ -0,0 +1,8 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+@Data
+public class TempleByReportTypeVO {
+    private Integer reportType;
+}

+ 52 - 0
src/main/java/cn/cslg/pas/controller/CompareLiteratureController.java

@@ -0,0 +1,52 @@
+package cn.cslg.pas.controller;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.request.StringRequest;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.domain.business.CompareLiteratureDTO;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.factorys.businessFactory.Business;
+import cn.cslg.pas.service.business.CompareLiteratureService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.experimental.Accessors;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/compareLiterature")
+@RestController
+public class CompareLiteratureController {
+    @Autowired
+    private CompareLiteratureService compareLiteratureService;
+
+    @Operation(summary = "添加非专利对比文件")
+    @PostMapping("/addCompareLiterature")
+    public Response queryCustomField(@RequestBody CompareLiteratureDTO compareLiteratureDTO) {
+        Integer id = null;
+        try {
+            id = compareLiteratureService.addCompareLiterature(compareLiteratureDTO);
+        } catch (Exception e) {
+                return Response.error(e.getMessage());
+        }
+            return Response.success(id);
+        }
+
+    @Operation(summary = "查询对比文献")
+    @PostMapping("/queryCompareLiterature")
+    public Response queryCompareLiterature(@RequestBody CompareLiteratureDTO compareLiteratureDTO) {
+        Integer id = null;
+        try {
+            id = compareLiteratureService.addCompareLiterature(compareLiteratureDTO);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success(id);
+    }
+
+
+    }

+ 11 - 1
src/main/java/cn/cslg/pas/controller/PatentController.java

@@ -2,12 +2,15 @@ package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.dto.PatentColumnDTO;
+import cn.cslg.pas.common.dto.PatentDetailDTO;
+import cn.cslg.pas.common.dto.PatentKinDTO;
 import cn.cslg.pas.common.dto.business.EsCountDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.MapRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.vo.business.EsCountVO;
+import cn.cslg.pas.common.vo.business.PatentKinVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
@@ -49,7 +52,14 @@ public class PatentController {
     @Operation(summary = "查询专利详情")
     @PostMapping("/selectPatentDetail")
     public Response selectPatentDetail(@RequestBody PatentNoVO vo) throws Exception {
-        PatentColumnDTO dto = esCountService.selectPatentDetail(vo);
+        PatentDetailDTO dto = esCountService.selectPatentDetail(vo);
+        return Response.success(dto);
+    }
+
+    @Operation(summary = "根据专利号查询同族")
+    @PostMapping("/selectKinByPatentNo")
+    public Response selectKinByPatentNo(@RequestBody PatentKinVO vo) throws Exception {
+        List<PatentKinDTO> dto = esCountService.selectKinByPatentNo(vo);
         return Response.success(dto);
     }
 

+ 38 - 0
src/main/java/cn/cslg/pas/controller/TempleController.java

@@ -0,0 +1,38 @@
+package cn.cslg.pas.controller;
+
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.business.EsCountDTO;
+import cn.cslg.pas.common.dto.business.ReportTempleDTO;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.business.EsCountVO;
+import cn.cslg.pas.common.vo.business.TempleByReportTypeVO;
+import cn.cslg.pas.service.business.TempleService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+@Tag(name = "报告模板")
+@RestController
+@RequestMapping(Constants.API_XiaoSHI  + "/template")
+public class TempleController {
+
+    @Autowired
+    private TempleService templeService;
+
+    @Operation(summary = "根据报告类型查询报告模板表")
+    @PostMapping("/queryTempleByType")
+    public Response queryTempleByType(@RequestBody TempleByReportTypeVO vo) {
+        List<ReportTempleDTO> list = templeService.queryTempleByType(vo);
+        return Response.success(list);
+    }
+
+}

+ 13 - 0
src/main/java/cn/cslg/pas/domain/business/CompareLiteratureDTO.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.domain.business;
+
+import lombok.Data;
+
+@Data
+public class CompareLiteratureDTO {
+
+     private String   fileName;
+     private String    fileGuid;
+     private String   description;
+     private Integer   projectId;
+
+}

+ 45 - 0
src/main/java/cn/cslg/pas/domain/business/ReportTemple.java

@@ -0,0 +1,45 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import nonapi.io.github.classgraph.json.Id;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 模板表
+ * </p>
+ *
+ * @author zero
+ * @since 2023-12-09
+ */
+@Data
+public class ReportTemple extends BaseEntity<ReportTemple> {
+    /**
+     * 模板名称
+     */
+    @TableField(value = "template_name")
+    private String templateName;
+    /**
+     * 模板路径
+     */
+    @TableField(value = "template_path")
+    private String templatePath;
+    /**
+     * 模板创建人id
+     */
+    @TableField(value = "create_id")
+    private Integer createId;
+    /**
+     * 报告类型
+     */
+    @TableField(value = "report_type")
+    private Integer reportType;
+    /**
+     * 模板创建时间
+     */
+    @TableField(value = "create_time")
+    private Date createTime;
+}

+ 1 - 1
src/main/java/cn/cslg/pas/mapper/PatentMapper.java

@@ -6,7 +6,7 @@ import org.springframework.stereotype.Repository;
 
 /**
  * es检索
- * @author:gck
+ * @author:zero
  * @date:2023/11/28
  */
 @Repository

+ 14 - 0
src/main/java/cn/cslg/pas/mapper/ReportTempleMapper.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.ReportTemple;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 报告产品表
+ * @Author zero
+ * @Date 2023/12/09
+ */
+@Repository
+public interface ReportTempleMapper extends BaseMapper<ReportTemple> {
+}

+ 33 - 3
src/main/java/cn/cslg/pas/service/business/CompareLiteratureService.java

@@ -1,12 +1,19 @@
 package cn.cslg.pas.service.business;
 
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.domain.business.CompareLiterature;
+import cn.cslg.pas.domain.business.CompareLiteratureDTO;
 import cn.cslg.pas.domain.business.Matter;
+import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.mapper.CompareLiteratureMapper;
 import cn.cslg.pas.mapper.MatterMapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.experimental.Accessors;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -19,9 +26,14 @@ import java.util.List;
 @Slf4j
 @Service
 public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMapper, CompareLiterature> {
+    @Autowired
+    private CacheUtils cacheUtils;
+
+    @Autowired
+    private LoginUtils loginUtils;
 
     //添加专利对比文献
-    public Integer addPatentCompareLiterature(String patentNo, Integer projectId,String createId) {
+    public Integer addPatentCompareLiterature(String patentNo, Integer projectId, String createId) {
         Integer id = null;
         //根据专利号和报告id查询是否已经保存
         LambdaQueryWrapper<CompareLiterature> queryWrapper = new LambdaQueryWrapper<>();
@@ -36,9 +48,27 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
             compareLiterature.setName(patentNo);
             compareLiterature.insert();
             return compareLiterature.getId();
-        }
-        else {
+        } else {
             return compareLiteratures.get(0).getId();
         }
     }
+
+    //添加对比文献
+    public Integer addCompareLiterature(CompareLiteratureDTO compareLiteratureDTO) {
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+        CompareLiterature compareLiterature = new CompareLiterature();
+        compareLiterature.setCreateId(personnelVO.getId());
+        compareLiterature.setProjectId(compareLiteratureDTO.getProjectId());
+        compareLiterature.setLiteratureNo(compareLiteratureDTO.getFileGuid());
+        compareLiterature.setName(compareLiteratureDTO.getFileName());
+        compareLiterature.setDescription(compareLiteratureDTO.getDescription());
+        compareLiterature.insert();
+
+        return compareLiterature.getId();
+    }
 }

+ 40 - 0
src/main/java/cn/cslg/pas/service/business/TempleService.java

@@ -0,0 +1,40 @@
+package cn.cslg.pas.service.business;
+
+import cn.cslg.pas.common.dto.business.ReportTempleDTO;
+import cn.cslg.pas.common.vo.business.TempleByReportTypeVO;
+import cn.cslg.pas.domain.business.ReportTemple;
+import cn.cslg.pas.mapper.ReportTempleMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+@Slf4j
+public class TempleService extends ServiceImpl<ReportTempleMapper, ReportTemple> {
+
+    /**
+     * 根据报告类型查询报告模板表
+     * @param vo
+     * @return
+     */
+    public List<ReportTempleDTO> queryTempleByType(TempleByReportTypeVO vo) {
+        List<ReportTempleDTO> reportTempleDTOS = new ArrayList<>();
+        LambdaQueryWrapper<ReportTemple> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ReportTemple::getReportType, vo.getReportType());
+        List<ReportTemple> list = this.list(wrapper);
+        if (!CollectionUtils.isEmpty(list)) {
+            for (ReportTemple temple : list) {
+                ReportTempleDTO dto = new ReportTempleDTO();
+                BeanUtils.copyProperties(temple, dto);
+                reportTempleDTOS.add(dto);
+            }
+        }
+        return reportTempleDTOS;
+    }
+}

+ 112 - 5
src/main/java/cn/cslg/pas/service/business/es/EsCountService.java

@@ -2,13 +2,19 @@ package cn.cslg.pas.service.business.es;
 
 import cn.cslg.pas.common.dto.PatentColumnDTO;
 import cn.cslg.pas.common.dto.PatentDTO;
+import cn.cslg.pas.common.dto.PatentDetailDTO;
+import cn.cslg.pas.common.dto.PatentKinDTO;
 import cn.cslg.pas.common.dto.business.EsCountDTO;
 import cn.cslg.pas.common.dto.business.EsCountDetailDTO;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.vo.EsConfigVO;
 import cn.cslg.pas.common.vo.business.EsCountVO;
+import cn.cslg.pas.common.vo.business.PatentKinDetailVO;
+import cn.cslg.pas.common.vo.business.PatentKinVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
+import cn.cslg.pas.domain.es.FamilyPatent;
 import cn.cslg.pas.domain.es.Patent;
+import cn.cslg.pas.domain.es.PatentFamilyMessage;
 import cn.cslg.pas.factorys.EsBuilderFactory.IQueryBuilder;
 import cn.cslg.pas.factorys.EsCountBuilderFactory.EsCountBuilderFactory;
 import cn.cslg.pas.factorys.EsCountBuilderFactory.IEsCountBuilder;
@@ -24,6 +30,7 @@ import co.elastic.clients.elasticsearch.core.search.Hit;
 import co.elastic.clients.json.JsonData;
 import com.alibaba.fastjson.JSON;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -43,8 +50,8 @@ import java.util.stream.Stream;
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class EsCountService {
     private final List<String> termList = Arrays.asList();
-    private final List<String> nestedList = Arrays.asList("PA","IN","PE");
-    private final List<String> dateList = Arrays.asList("PD","AD");
+    private final List<String> nestedList = Arrays.asList("PA", "IN", "PE");
+    private final List<String> dateList = Arrays.asList("PD", "AD");
 
     private final ElasticsearchClient client;
 
@@ -154,8 +161,9 @@ public class EsCountService {
      * @return
      * @throws IOException
      */
-    public PatentColumnDTO selectPatentDetail(PatentNoVO vo) throws IOException {
-        PatentColumnDTO dto = new PatentColumnDTO();
+    public PatentDetailDTO selectPatentDetail(PatentNoVO vo) throws IOException {
+        long startTime = System.currentTimeMillis();
+        PatentDetailDTO dto = new PatentDetailDTO();
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
         builder.index("patent");
@@ -163,12 +171,111 @@ public class EsCountService {
         Query query = QueryBuilders.bool(i -> i.must(q));
         builder.query(query);
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
-        List<PatentColumnDTO> list = new ArrayList<>();
         List<Hit<Patent>> hits = response.hits().hits();
         for (Hit<Patent> hit : hits) {
             Patent esMess = hit.source();
             BeanUtils.copyProperties(esMess, dto);
         }
+        PatentKinVO kinVO = new PatentKinVO();
+        kinVO.setPatentNo(vo.getPatentNo());
+        kinVO.setPageNum(1);
+        kinVO.setPageSize(10);
+        kinVO.setType("inpadoc");
+        List<PatentKinDTO> kinDTOS = this.selectKinByPatentNo(kinVO);
+        dto.setKinDTOS(kinDTOS);
+        long endTime = System.currentTimeMillis();
+        long l = endTime - startTime;
+        System.out.println("方法执行了共" + l + "毫秒");
         return dto;
     }
+
+    /**
+     * 根据专利号查询出同族专利列表
+     * @param vo
+     * @return
+     * @throws IOException
+     */
+    public List<PatentKinDTO> selectKinByPatentNo(PatentKinVO vo) throws IOException {
+        //1.根据专利号查询出同族
+        String no = vo.getPatentNo();
+        Integer pageNum = vo.getPageNum();
+        Integer pageSize = vo.getPageSize();
+        String type = vo.getType();
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("patent_family");
+        //申请号
+        Query q1 = QueryBuilders.term(t -> t.field("app_no.keyword").value(no));
+        //公开号
+        Query q2 = QueryBuilders.term(t -> t.field("public_no.keyword").value(no));
+        //授权号
+        Query q3 = QueryBuilders.term(t -> t.field("grant_no.keyword").value(no));
+        //同族类型
+        Query q4 = QueryBuilders.term(t -> t.field("family_type").value(type));
+        Query bool = QueryBuilders.bool(i -> i.must(q4).should(q1, q2, q3));
+        builder.query(bool);
+        //分页
+        if (pageNum > 0 && pageSize > 0) {
+            builder.from((pageNum - 1) * pageSize).size(pageSize);
+        }
+        SearchResponse<PatentFamilyMessage> response = client.search(builder.build(), PatentFamilyMessage.class);
+        List<Hit<PatentFamilyMessage>> hits = response.hits().hits();
+        List<PatentKinDTO> kinDTOS = new ArrayList<>();
+        for (Hit<PatentFamilyMessage> hit : hits) {
+            PatentFamilyMessage familyMessage = hit.source();
+            List<FamilyPatent> patentList = familyMessage.getPatent();
+            if (!CollectionUtils.isEmpty(patentList)) {
+                for (FamilyPatent familyPatent : patentList) {
+                    PatentKinDetailVO kinDetailVO = new PatentKinDetailVO();
+                    kinDetailVO.setAppNo(familyPatent.getAppNo());
+                    kinDetailVO.setPublicNo(familyPatent.getPublicNo());
+                    kinDetailVO.setGrantNo(familyPatent.getGrantNo());
+                    PatentKinDTO kinDTO = this.selectPatentKindDetail(kinDetailVO)
+                            .stream().findFirst().orElse(null);
+                    if (kinDTO != null) {
+                        kinDTOS.add(kinDTO);
+                    }
+                }
+            }
+
+        }
+        long endTime = System.currentTimeMillis();
+        return kinDTOS;
+    }
+
+    public List<PatentKinDTO> selectPatentKindDetail(PatentKinDetailVO vo) throws IOException {
+        List<PatentKinDTO> list = new ArrayList<>();
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("patent");
+        //申请号
+        if (StringUtils.isNotEmpty(vo.getAppNo())) {
+
+        }
+        Query q1 = QueryBuilders.term(t -> t.field("patent_no.keyword").value(vo.getAppNo()));
+        //公开号
+        Query q2 = QueryBuilders.term(t -> t.field("patent_no.keyword").value(vo.getPublicNo()));
+        //授权号
+//        Query q3 = QueryBuilders.term(t -> t.field("patent_no.keyword").value(vo.getGrantNo()));
+        Query bool = QueryBuilders.bool(i -> i.should(q1, q2));
+        builder.query(bool);
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        List<Hit<Patent>> hits = response.hits().hits();
+        for (Hit<Patent> hit : hits) {
+            PatentKinDTO kinDTO = new PatentKinDTO();
+            Patent patent = hit.source();
+            if (patent != null) {
+                kinDTO.setPatentNo(patent.getPatentNo());
+                kinDTO.setAppNo(patent.getAppNo());
+                kinDTO.setPublicNo(patent.getPublicNo());
+                kinDTO.setGrantNo(patent.getGrantNo());
+                kinDTO.setTitle(patent.getTitle());
+                kinDTO.setAbstractStr(patent.getAbstractStr());
+                kinDTO.setApplicant(patent.getApplicant());
+                kinDTO.setRightHolder(patent.getRightHolder());
+                list.add(kinDTO);
+            }
+        }
+        return list;
+    }
 }

+ 46 - 0
src/main/java/cn/cslg/pas/service/mailSendService.java

@@ -0,0 +1,46 @@
+package cn.cslg.pas.service;
+
+import cn.cslg.pas.common.model.cronModel.Personnel;
+import cn.cslg.pas.service.permissions.PermissionService;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class mailSendService {
+    @Autowired
+    private PermissionService permissionService;
+
+    public void sendSynery(String personId, String taskName, Boolean ifInner) {
+        Map<String, Object> map = new LinkedHashMap<>();
+        map.put("title", "任务通知");
+        map.put("template", "mail/eTaskConfirm.html");
+        map.put("img", "\\src\\main\\resources\\mail\\logo.png");
+        //判断是否为内部人员
+        if (ifInner) {
+            String res = "";
+            try {
+                res = permissionService.getPersonnelByIdsFromPCS(Arrays.asList(personId));
+            } catch (Exception e) {
+            }
+            if (!res.equals("")) {
+                JSONObject jsonObject = JSONObject.parseObject(res);
+                List<Personnel> personnels = JSON.parseArray(jsonObject.getString("data"), Personnel.class);
+                map.put("value1", personnels.get(0).getPersonnelName());
+                map.put("value2", taskName);
+                map.put("email", personnels.get(0).getPersonnelEmail());
+            }
+        } else {
+
+        }
+
+
+//    mailUtils.sendEmailMessage(map);
+    }
+}

+ 3 - 2
src/main/resources/jsons/reportProject.json

@@ -7,9 +7,10 @@
     "sqlClass": "getComSql",
     "orderClass": "",
     "groupClass":"",
-    "ifSearch":"true",
+    "ifSearch":"false",
     "ifGroup": "false",
-    "ifShow":"false"
+    "ifShow":"false",
+    "ifAsCondition": "true"
   },
   {"name":"创建月份",
     "type":"DateTime",

+ 28 - 2
src/test/java/cn/cslg/pas/service/EventServiceTests.java

@@ -2,19 +2,25 @@ package cn.cslg.pas.service;
 
 import cn.cslg.pas.common.dto.PatentColumnDTO;
 import cn.cslg.pas.common.dto.PatentDTO;
+import cn.cslg.pas.common.dto.PatentDetailDTO;
+import cn.cslg.pas.common.dto.PatentKinDTO;
 import cn.cslg.pas.common.dto.business.EsCountDTO;
 import cn.cslg.pas.common.dto.business.EsPatentFamilyDTO;
+import cn.cslg.pas.common.dto.business.ReportTempleDTO;
 import cn.cslg.pas.common.dto.business.SelectClaimDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.*;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.vo.business.EsCountVO;
+import cn.cslg.pas.common.vo.business.PatentKinVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
+import cn.cslg.pas.common.vo.business.TempleByReportTypeVO;
 import cn.cslg.pas.controller.EventController;
 import cn.cslg.pas.controller.PatentController;
 import cn.cslg.pas.domain.es.FamilyPatent;
 import cn.cslg.pas.domain.es.PatentFamilyMessage;
 import cn.cslg.pas.service.business.ProductMarketDataService;
+import cn.cslg.pas.service.business.TempleService;
 import cn.cslg.pas.service.business.es.EsCountService;
 import cn.cslg.pas.service.business.es.EsService;
 import co.elastic.clients.elasticsearch._types.aggregations.Aggregation;
@@ -51,7 +57,8 @@ public class EventServiceTests {
     private EsService esService;
     @Autowired
     private EsCountService esCountService;
-
+    @Autowired
+    private TempleService templeService;
 
 
     @Autowired
@@ -243,7 +250,26 @@ public class EventServiceTests {
     void test9() throws IOException {
         PatentNoVO vo = new PatentNoVO();
         vo.setPatentNo("CN201910069334.7");
-        PatentColumnDTO columnDTO = esCountService.selectPatentDetail(vo);
+        PatentDetailDTO columnDTO = esCountService.selectPatentDetail(vo);
         System.out.println(columnDTO);
     }
+
+    @Test
+    void test10() throws IOException {
+        PatentKinVO vo = new PatentKinVO();
+        vo.setPatentNo("CN201910069334.7");
+        vo.setPageNum(1);
+        vo.setPageSize(10);
+        vo.setType("inpadoc");
+        List<PatentKinDTO> kinDTOS = esCountService.selectKinByPatentNo(vo);
+        System.out.println(kinDTOS);
+    }
+
+    @Test
+    void test14() {
+        TempleByReportTypeVO vo = new TempleByReportTypeVO();
+        vo.setReportType(1);
+        List<ReportTempleDTO> reportTempleDTOS = templeService.queryTempleByType(vo);
+        System.out.println(reportTempleDTOS);
+    }
 }