소스 검색

20250415 dify功能修改

lrj 5 달 전
부모
커밋
95321f31e2
30개의 변경된 파일649개의 추가작업 그리고 115개의 파일을 삭제
  1. 0 12
      src/main/java/cn/cslg/pas/common/config/WebConfig.java
  2. 2 1
      src/main/java/cn/cslg/pas/common/dto/CompareLiteratureDTO.java
  3. 9 0
      src/main/java/cn/cslg/pas/common/dto/business/ReportProjectDTO.java
  4. 9 0
      src/main/java/cn/cslg/pas/common/dto/business/UpdateReportProjectDTO.java
  5. 3 1
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateBatchLiteraturesDTO.java
  6. 3 2
      src/main/java/cn/cslg/pas/common/vo/CompareLiteratureVO.java
  7. 2 0
      src/main/java/cn/cslg/pas/common/vo/business/ReportProjectVO.java
  8. 0 2
      src/main/java/cn/cslg/pas/controller/CompareLiteratureController.java
  9. 1 0
      src/main/java/cn/cslg/pas/controller/ReportAffairController.java
  10. 13 2
      src/main/java/cn/cslg/pas/domain/business/ReportProject.java
  11. 24 0
      src/main/java/cn/cslg/pas/domain/report/AssoComLiteratureFile.java
  12. 26 0
      src/main/java/cn/cslg/pas/domain/report/OralNotice.java
  13. 52 0
      src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetCaseChildPhaseNameSql.java
  14. 54 0
      src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetCasePhaseNameSql.java
  15. 52 0
      src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetConclusionNameSql.java
  16. 31 0
      src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetDateTimeYearSql.java
  17. 4 0
      src/main/java/cn/cslg/pas/mapper/ReportAffairMapper.java
  18. 2 2
      src/main/java/cn/cslg/pas/mapper/ReportProjectMapper.java
  19. 18 0
      src/main/java/cn/cslg/pas/mapper/report/AssoComLiteratureFileMapper.java
  20. 18 0
      src/main/java/cn/cslg/pas/mapper/report/OralNoticeMapper.java
  21. 55 19
      src/main/java/cn/cslg/pas/service/business/CompareLiteratureService.java
  22. 58 15
      src/main/java/cn/cslg/pas/service/business/ReportProjectService.java
  23. 12 0
      src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java
  24. 3 0
      src/main/java/cn/cslg/pas/service/importPatent/WebVOTransformService.java
  25. 56 0
      src/main/java/cn/cslg/pas/service/report/AssoComLiteratureFileService.java
  26. 20 0
      src/main/java/cn/cslg/pas/service/report/OralNoticeService.java
  27. 75 27
      src/main/resources/mapper/ReportAffairMapper.xml
  28. 2 30
      src/main/resources/mapper/ReportProjectMapper.xml
  29. 0 1
      src/test/java/cn/cslg/pas/service/CompareLiteratureServiceTests.java
  30. 45 1
      src/test/java/cn/cslg/pas/service/ReportProjectServiceTests.java

+ 0 - 12
src/main/java/cn/cslg/pas/common/config/WebConfig.java

@@ -1,12 +0,0 @@
-package cn.cslg.pas.common.config;
-
-import com.google.common.net.HttpHeaders;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.MediaType;
-import org.springframework.web.reactive.function.client.WebClient;
-
-@Configuration
-public class WebConfig {
-
-}

+ 2 - 1
src/main/java/cn/cslg/pas/common/dto/CompareLiteratureDTO.java

@@ -5,12 +5,13 @@ import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class CompareLiteratureDTO {
 
      private String   name; //文件名称
-     private String    fileGuid; //文件guid
+     private List<String> fileGuids; //文件guid
      private String   description; //描述
      private Integer   projectId; //报告id
      private String authorName; //作者

+ 9 - 0
src/main/java/cn/cslg/pas/common/dto/business/ReportProjectDTO.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.common.dto.business;
 
 import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -94,4 +95,12 @@ public class ReportProjectDTO {
     private String caseStage;
     @Schema(description = "参与人id")
     private List<String> involvedPersonIds;
+    @Schema(description = "证据风险及措施")
+    private String evidenceRiskResponse;
+    @Schema(description = "涉诉对象")
+    private String litigationParty;
+    @Schema(description = "官限")
+    private Date officialDeadline;
+    @TableField(value = "口审合议庭成员")
+    private String oralPanelMembers;
 }

+ 9 - 0
src/main/java/cn/cslg/pas/common/dto/business/UpdateReportProjectDTO.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.common.dto.business;
 
 import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -86,4 +87,12 @@ public class UpdateReportProjectDTO {
     private List<String> involvedPersonIds;
     @Schema(description = "主被动类型")
     private Integer actType;
+    @Schema(description = "证据风险及措施")
+    private String evidenceRiskResponse;
+    @Schema(description = "涉诉对象")
+    private String litigationParty;
+    @Schema(description = "官限")
+    private Date officialDeadline;
+    @TableField(value = "口审合议庭成员")
+    private String oralPanelMembers;
 }

+ 3 - 1
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateBatchLiteraturesDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.cronModel.SystemFile;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
@@ -7,6 +8,7 @@ import org.joda.time.DateTime;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class UpdateBatchLiteraturesDTO {
@@ -15,7 +17,7 @@ public class UpdateBatchLiteraturesDTO {
     private Integer projectId;
 
     private String literatureNo;
-
+    private List<SystemFile> systemFiles;
     private String name;
 
     private Integer type;

+ 3 - 2
src/main/java/cn/cslg/pas/common/vo/CompareLiteratureVO.java

@@ -27,7 +27,7 @@ import java.util.List;
 
 /*数据库中的表对应的类
  */
-public class CompareLiteratureVO  {
+public class CompareLiteratureVO {
     private Integer id;
     private Integer projectId;
     private String literatureNo;
@@ -98,7 +98,7 @@ public class CompareLiteratureVO  {
     private String ifEffectinv;
 
     /**
-     *  备注
+     * 备注
      */
     private String fileRemark;
 
@@ -123,4 +123,5 @@ public class CompareLiteratureVO  {
     private String beneficialEffect;
     //标注
     private List<NoveltyCompareRecordVO> noveltyCompareRecordVOS;
+    private List<SystemFile> systemFiles;
 }

+ 2 - 0
src/main/java/cn/cslg/pas/common/vo/business/ReportProjectVO.java

@@ -246,4 +246,6 @@ public class ReportProjectVO {
     private String conclusion;
     @Schema(description = "实际处理人")
     private String actualPerson;
+    private String litigationParty;
+    private String rightHolderStr;
 }

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

@@ -34,8 +34,6 @@ public class CompareLiteratureController {
     @PostMapping("/addNotPatent")
     public Response addNotPatent(@RequestBody CompareLiteratureDTO compareLiteratureDTO) {
 
-
-
         Integer id = null;
         try {
             id = compareLiteratureService.addNotPatent(compareLiteratureDTO);

+ 1 - 0
src/main/java/cn/cslg/pas/controller/ReportAffairController.java

@@ -251,4 +251,5 @@ public class ReportAffairController {
         records.setData(id);
         return Response.success(records);
     }
+
 }

+ 13 - 2
src/main/java/cn/cslg/pas/domain/business/ReportProject.java

@@ -125,12 +125,23 @@ public class ReportProject extends BaseEntity<ReportProject> {
     private Date acceptYear;
     @TableField(value = "applicant_agency")
     private String applicantAgency;
-    @TableField(value ="right_holder_agency")
+    @TableField(value = "right_holder_agency")
     private String rightHolderAgency;
 
-    @TableField(value ="case_stage")
+    @TableField(value = "case_stage")
     private String caseStage;
 
     @TableField(value = "actual_person")
     private String actualPerson;
+    @TableField(value = "evidence_risk_response")
+    private String evidenceRiskResponse;
+    @TableField(value = "litigation_party")
+    private String litigationParty;
+    @TableField(value = "official_deadline")
+    private Date officialDeadline;
+    @TableField(value = "oral_panel_members")
+    private String oralPanelMembers;
+    @TableField(value = "right_holder")
+    private String rightHolder;
+
 }

+ 24 - 0
src/main/java/cn/cslg/pas/domain/report/AssoComLiteratureFile.java

@@ -0,0 +1,24 @@
+package cn.cslg.pas.domain.report;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * @TableName asso_com_literature_file
+ */
+@TableName(value ="asso_com_literature_file")
+@Data
+public class AssoComLiteratureFile extends BaseEntity<AssoComLiteratureFile> {
+    private Integer compareLiteratureFileId;
+
+    private String fileGuid;
+
+    private Date createTime;
+
+}

+ 26 - 0
src/main/java/cn/cslg/pas/domain/report/OralNotice.java

@@ -0,0 +1,26 @@
+package cn.cslg.pas.domain.report;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * @TableName oral_notice
+ */
+@TableName(value ="oral_notice")
+@Data
+public class OralNotice extends BaseEntity<OralNotice> {
+
+    private String position;
+
+    private String oralPanelMembers;
+
+    private Date oralTime;
+
+    private String description;
+}

+ 52 - 0
src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetCaseChildPhaseNameSql.java

@@ -0,0 +1,52 @@
+package cn.cslg.pas.factorys.getSqlFactorys;
+
+import cn.cslg.pas.common.model.cronModel.SqlObject;
+import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.mapper.ReportAffairMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetCaseChildPhaseNameSql implements GetSqlObject{
+    private SqlObject sqlObject ;
+  @Autowired
+  @Lazy
+  private ReportAffairMapper reportAffairMapper;
+    @Override
+    public String getSql( String value) {
+        Boolean ifEqual= false;
+        //根据名称查询人员id
+        List<Integer> ids = null;
+
+            sqlObject.setOption(" in ");
+
+
+       //根据名称查询
+        try {
+            ids = reportAffairMapper.queryProjectByCaseChildPhase(value);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        if(ids==null||ids.size()==0){
+            ids =new ArrayList<>();
+            ids.add(0);
+        }
+        String idStr = StringUtils.join(ids,",");
+        String re = sqlObject.getSqlField()+sqlObject.getOption()+"("+idStr+")";
+        return re;
+    }
+    @Override
+    public void setSqlObject(SqlObject sqlObject){
+        this.sqlObject =sqlObject;
+    };
+    public SqlObject getSqlObject(){
+        return sqlObject;
+    }
+}

+ 54 - 0
src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetCasePhaseNameSql.java

@@ -0,0 +1,54 @@
+package cn.cslg.pas.factorys.getSqlFactorys;
+
+import cn.cslg.pas.common.model.cronModel.SqlObject;
+import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.mapper.ReportAffairMapper;
+import cn.cslg.pas.service.business.EventService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetCasePhaseNameSql implements GetSqlObject{
+    private SqlObject sqlObject ;
+  @Autowired
+  @Lazy
+  private ReportAffairMapper reportAffairMapper;
+    @Override
+    public String getSql( String value) {
+        Boolean ifEqual= false;
+        //根据名称查询人员id
+        List<Integer> ids = null;
+
+            sqlObject.setOption(" in ");
+
+
+       //根据名称查询
+        try {
+            ids = reportAffairMapper.queryProjectByCasePhase(value);
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        if(ids==null||ids.size()==0){
+            ids =new ArrayList<>();
+            ids.add(0);
+        }
+        String idStr = StringUtils.join(ids,",");
+        String re = sqlObject.getSqlField()+sqlObject.getOption()+"("+idStr+")";
+        return re;
+    }
+    @Override
+    public void setSqlObject(SqlObject sqlObject){
+        this.sqlObject =sqlObject;
+    };
+    public SqlObject getSqlObject(){
+        return sqlObject;
+    }
+}

+ 52 - 0
src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetConclusionNameSql.java

@@ -0,0 +1,52 @@
+package cn.cslg.pas.factorys.getSqlFactorys;
+
+import cn.cslg.pas.common.model.cronModel.SqlObject;
+import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.mapper.ReportAffairMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetConclusionNameSql implements GetSqlObject{
+    private SqlObject sqlObject ;
+  @Autowired
+  @Lazy
+  private ReportAffairMapper reportAffairMapper;
+    @Override
+    public String getSql( String value) {
+        Boolean ifEqual= false;
+        //根据名称查询人员id
+        List<Integer> ids = null;
+
+            sqlObject.setOption(" in ");
+
+
+       //根据名称查询
+        try {
+            ids = reportAffairMapper.queryProjectByConclusion(value);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        if(ids==null||ids.size()==0){
+            ids =new ArrayList<>();
+            ids.add(0);
+        }
+        String idStr = StringUtils.join(ids,",");
+        String re = sqlObject.getSqlField()+sqlObject.getOption()+"("+idStr+")";
+        return re;
+    }
+    @Override
+    public void setSqlObject(SqlObject sqlObject){
+        this.sqlObject =sqlObject;
+    };
+    public SqlObject getSqlObject(){
+        return sqlObject;
+    }
+}

+ 31 - 0
src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetDateTimeYearSql.java

@@ -0,0 +1,31 @@
+package cn.cslg.pas.factorys.getSqlFactorys;
+
+import cn.cslg.pas.common.model.cronModel.SqlObject;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+
+@Slf4j
+@Component
+public class GetDateTimeYearSql implements GetSqlObject{
+
+ private SqlObject sqlObject ;
+    @Override
+    public String getSql(String value) {
+        String re ="";
+      String filed= sqlObject.getSqlField();
+      String option =sqlObject.getOption();
+        re="DATE_FORMAT("+filed+",'%Y')"+option+"'"+value+"'";
+        if(value.equals("null")){
+            re="isnull("+filed+")";
+        }
+       return re;
+    }
+
+    public void setSqlObject(SqlObject sqlObject){
+        this.sqlObject=sqlObject;
+    }
+    public SqlObject getSqlObject(){
+        return sqlObject;
+    }
+}

+ 4 - 0
src/main/java/cn/cslg/pas/mapper/ReportAffairMapper.java

@@ -21,4 +21,8 @@ public interface ReportAffairMapper extends BaseMapper<ReportAffair> {
     public List<QueryCasePhaseVO> queryCasePhase(@Param("projectIds") List<Integer> projectIds);
 
     public List<QueryReportAffairConclusionVO> queryReportAffairConclusion(@Param("projectIds") List<Integer> projectIds);
+    public List<Integer> queryProjectByCasePhase(String name);
+    public List<Integer> queryProjectByCaseChildPhase(String name);
+    public List<Integer> queryProjectByConclusion(String name);
+
 }

+ 2 - 2
src/main/java/cn/cslg/pas/mapper/ReportProjectMapper.java

@@ -17,6 +17,6 @@ import java.util.List;
 @Repository
 public interface ReportProjectMapper extends BaseMapper<ReportProject> {
 
-    public List<ReportProjectVO> getReportProject(String sql1,String sql2,String sql3);
-    public Long getReportProjectCount(String sql);
+    public List<ReportProjectVO> getReportProject(String select,String sql1,String sql2,String sql3);
+    public Long getReportProjectCount(String select,String sql1);
 }

+ 18 - 0
src/main/java/cn/cslg/pas/mapper/report/AssoComLiteratureFileMapper.java

@@ -0,0 +1,18 @@
+package cn.cslg.pas.mapper.report;
+
+import cn.cslg.pas.domain.report.AssoComLiteratureFile;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author admin
+* @description 针对表【asso_com_literature_file(对比文献和文件关联表)】的数据库操作Mapper
+* @createDate 2025-04-22 14:53:47
+* @Entity cn.cslg.pas.domain.novelty.domain.AssoComLiteratureFile
+*/
+public interface AssoComLiteratureFileMapper extends BaseMapper<AssoComLiteratureFile> {
+
+}
+
+
+
+

+ 18 - 0
src/main/java/cn/cslg/pas/mapper/report/OralNoticeMapper.java

@@ -0,0 +1,18 @@
+package cn.cslg.pas.mapper.report;
+
+import cn.cslg.pas.domain.report.OralNotice;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author admin
+* @description 针对表【oral_notice】的数据库操作Mapper
+* @createDate 2025-04-22 14:23:02
+* @Entity cn.cslg.pas.domain.novelty.domain.OralNotice
+*/
+public interface OralNoticeMapper extends BaseMapper<OralNotice> {
+
+}
+
+
+
+

+ 55 - 19
src/main/java/cn/cslg/pas/service/business/CompareLiteratureService.java

@@ -19,6 +19,7 @@ import cn.cslg.pas.common.dto.CompareLiteratureDTO;
 import cn.cslg.pas.domain.business.ReportProject;
 import cn.cslg.pas.domain.business.novelty.NoveltyCompareLiterature;
 import cn.cslg.pas.domain.es.Patent;
+import cn.cslg.pas.domain.report.AssoComLiteratureFile;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.CompareLiteratureMapper;
@@ -29,6 +30,7 @@ import cn.cslg.pas.service.business.es.EsService;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.common.MessageService;
 import cn.cslg.pas.service.importPatent.ImportSinglePatentService;
+import cn.cslg.pas.service.report.AssoComLiteratureFileService;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -85,6 +87,9 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
     @Autowired
     private NoveltyCompareLiteratureMapper noveltyCompareLiteratureMapper;
 
+    @Autowired
+    private AssoComLiteratureFileService assoComLiteratureFileService;
+
     //添加专利对比文献
     public Integer addPatentCompareLiterature(Patent patent, Integer projectId, String createId) {
         synchronized ("导入任务是否完成") {
@@ -140,6 +145,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
     //添加非对比文献
     public Integer addNotPatent(CompareLiteratureDTO compareLiteratureDTO) {
         PersonnelVO personnelVO = new PersonnelVO();
+        List<String> fileGuids = compareLiteratureDTO.getFileGuids();
         Integer projectId = compareLiteratureDTO.getProjectId();
         try {
             personnelVO = new PersonnelVO();
@@ -162,7 +168,6 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         //报告id
         compareLiterature.setProjectId(compareLiteratureDTO.getProjectId());
         //文档guid
-        compareLiterature.setLiteratureNo(compareLiteratureDTO.getFileGuid());
         //文档名称
         compareLiterature.setName(compareLiteratureDTO.getName());
         //描述
@@ -176,7 +181,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         //装载公开日
         compareLiterature.setPublicDate(compareLiteratureDTO.getPublicDate());
         compareLiterature.insert();
-
+        assoComLiteratureFileService.addAssoComLiteratureFile(compareLiterature.getId(), fileGuids);
         return compareLiterature.getId();
     }
 
@@ -222,6 +227,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
 
         //专利文献列表
         List<String> patentNos = compareLiteratures.stream().filter(item -> item.getType().equals(0)).map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
+        List<Integer> ids = compareLiteratures.stream().map(CompareLiterature::getId).collect(Collectors.toList());
         List<Patent> patentList = new ArrayList<>();
 
         if (reportProject.getSignPatentNo() != null) {
@@ -242,10 +248,11 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
                         || signPatentNo.equals(item.getPublicNo()) ||
                         signPatentNo.equals(item.getGrantNo())).findFirst().orElse(null);
 
+        List<AssoComLiteratureFile> assoComLiteratureFiles = assoComLiteratureFileService.queryAssoComLiteratureFiles(ids);
         //查询文件
         List<SystemFile> systemFiles = new ArrayList<>();
         //非专利文献列表
-        List<String> guids = compareLiteratures.stream().filter(item -> item.getType().equals(1)).map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
+        List<String> guids = assoComLiteratureFiles.stream().map(AssoComLiteratureFile::getFileGuid).collect(Collectors.toList());
         //查询文件
         if (!CollectionUtils.isEmpty(guids)) {
             try {
@@ -261,6 +268,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         for (CompareLiterature compareLiterature : compareLiteratures) {
             String literatureNo = compareLiterature.getLiteratureNo();
             Date publicDate = compareLiterature.getPublicDate();
+            Integer id = compareLiterature.getId();
             CompareLiteratureVO compareLiteratureVO = new CompareLiteratureVO();
             BeanUtils.copyProperties(compareLiterature, compareLiteratureVO);
             //当为专利文献时
@@ -273,11 +281,10 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
                                     literatureNo.equals(item.getGrantNo())).findFirst().orElse(null);
                     if (patent != null) {
                         String authorName = "";
-                        if(patent.getRightHolder()!=null&&patent.getRightHolder().size()>0){
-                            authorName=patent.getRightHolder().get(0).getName();
-                        }
-                        else if(patent.getApplicant()!=null&&patent.getApplicant().size()>0){
-                            authorName=patent.getApplicant().get(0).getName();
+                        if (patent.getRightHolder() != null && patent.getRightHolder().size() > 0) {
+                            authorName = patent.getRightHolder().get(0).getName();
+                        } else if (patent.getApplicant() != null && patent.getApplicant().size() > 0) {
+                            authorName = patent.getApplicant().get(0).getName();
                         }
                         compareLiteratureVO.setAuthorName(authorName);
                         compareLiteratureVO.setName(patent.getTitle().get(0).getTextContent());
@@ -339,6 +346,13 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
                     }
                 }
             }
+            if (assoComLiteratureFiles.size() > 0) {
+                List<String> fileGuids = assoComLiteratureFiles.stream().filter(item -> item.getCompareLiteratureFileId().equals(id)).map(AssoComLiteratureFile::getFileGuid).collect(Collectors.toList());
+                if (fileGuids.size() > 0) {
+                    List<SystemFile> temSystemFiles = systemFiles.stream().filter(item -> fileGuids.contains(item.getGuid())).collect(Collectors.toList());
+                    compareLiteratureVO.setSystemFiles(temSystemFiles);
+                }
+            }
             compareLiteratureVOS.add(compareLiteratureVO);
         }
         return compareLiteratureVOS;
@@ -362,8 +376,8 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
     //批量添加对比文献
 
     public void updateCompareLiteratureBatch(UpdateBatchLiteratureDTO updateBatchLiteratureDTO) {
-        PersonnelVO personnelVO = new PersonnelVO();
-        personnelVO.setId("1");
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+
         if (updateBatchLiteratureDTO == null) {
             return;
         }
@@ -398,10 +412,16 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
     public Integer saveOrUpdateNotPatent(UpdateBatchLiteraturesDTO updateBatchLiteratureDTO) {
         PersonnelVO personnelVO = new PersonnelVO();
         Integer projectId = updateBatchLiteratureDTO.getProjectId();
+        List<String> guids = new ArrayList<>();
+        List<SystemFile> systemFiles = updateBatchLiteratureDTO.getSystemFiles();
+        if (systemFiles != null && !systemFiles.isEmpty()) {
+            guids = systemFiles.stream().map(SystemFile::getGuid).collect(Collectors.toList());
+
+        }
         try {
             personnelVO = new PersonnelVO();
             personnelVO.setId("1");
-//            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
         } catch (Exception e) {
             throw new UnLoginException("未登录");
         }
@@ -430,9 +450,12 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
 
             compareLiterature.setId(updateBatchLiteratureDTO.getId());
             compareLiterature.updateById();
+            assoComLiteratureFileService.updateAssoComLiteratureFile(compareLiterature.getId(), guids);
+
 
         } else {
             compareLiterature.insert();
+            assoComLiteratureFileService.addAssoComLiteratureFile(compareLiterature.getId(), guids);
         }
 
         return compareLiterature.getId();
@@ -449,10 +472,14 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         Integer projectId = updateBatchLiteratureDTO.getProjectId();
         String literatureNo = updateBatchLiteratureDTO.getLiteratureNo();
         Integer id = updateBatchLiteratureDTO.getId();
+        List<String> fileGuids = new ArrayList<>();
+        List<SystemFile> systemFiles = updateBatchLiteratureDTO.getSystemFiles();
+        if (systemFiles != null && !systemFiles.isEmpty()) {
+            fileGuids = systemFiles.stream().map(SystemFile::getGuid).collect(Collectors.toList());
+
+        }
         try {
-            personnelVO = new PersonnelVO();
-            personnelVO.setId("1");
-//            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
         } catch (Exception e) {
             throw new UnLoginException("未登录");
         }
@@ -514,11 +541,20 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
 
         //当传id则为更新
         if (id != null) {
-            compareLiterature.setId(updateBatchLiteratureDTO.getId());
+            compareLiterature.setId(id);
             compareLiterature.updateById();
-
+            CompareLiterature lastCom = this.getById(id);
+            if (lastCom != null) {
+                String lastPatentNo = lastCom.getLiteratureNo();
+                if (!lastPatentNo.equals(compareLiterature.getLiteratureNo())) {
+                    esPatentService.removeByNo(lastPatentNo);
+                }
+            }
+            assoComLiteratureFileService.updateAssoComLiteratureFile(compareLiterature.getId(), fileGuids);
         } else {
             compareLiterature.insert();
+            assoComLiteratureFileService.addAssoComLiteratureFile(compareLiterature.getId(), fileGuids);
+
         }
         try {
             importSinglePatentService.saveAssoPatentProjectToEs(projectId, patentWithIdVO.getId());
@@ -733,9 +769,9 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
     }
 
 
-    public void addCompareLiteratureToProject(ImportTaskAMVO importTaskAMVO,Patent patent){
-        if (importTaskAMVO.getProjectType() != null && (importTaskAMVO.getProjectType().equals(2)||importTaskAMVO.getProjectType().equals(4))) {
-            if (importTaskAMVO.getReportType()==null||importTaskAMVO.getReportType().equals(7) || importTaskAMVO.getReportType().equals(1) || importTaskAMVO.getReportType().equals(2)||importTaskAMVO.getProjectType().equals(4)) {
+    public void addCompareLiteratureToProject(ImportTaskAMVO importTaskAMVO, Patent patent) {
+        if (importTaskAMVO.getProjectType() != null && (importTaskAMVO.getProjectType().equals(2) || importTaskAMVO.getProjectType().equals(4))) {
+            if (importTaskAMVO.getReportType() == null || importTaskAMVO.getReportType().equals(7) || importTaskAMVO.getReportType().equals(1) || importTaskAMVO.getReportType().equals(2) || importTaskAMVO.getProjectType().equals(4)) {
                 this.addPatentCompareLiterature(patent, importTaskAMVO.getProjectId(), importTaskAMVO.getCreateId());
             }
         }

+ 58 - 15
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -130,11 +130,11 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         List<String> sqls = formatQueryService.reSqls(queryRequest, tableName);
         sqls = this.loadSearchSql(sqls);
         //根据sql查询事件信息
-        List<ReportProjectVO> reportProject = reportProjectMapper.getReportProject(sqls.get(0), sqls.get(1), sqls.get(2));
+        List<ReportProjectVO> reportProject = reportProjectMapper.getReportProject(this.getSelectMessage(), sqls.get(0), sqls.get(1), sqls.get(2));
         this.loadReportProjectVO(reportProject, ifInvalidReport);
 
         //查询总数
-        Long total = reportProjectMapper.getReportProjectCount(sqls.get(0));
+        Long total = reportProjectMapper.getReportProjectCount(this.getSelectMessage(), sqls.get(0));
 
         //装载事件信息
         Records records = new Records();
@@ -232,10 +232,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
                 throw new XiaoShiException("未找到配置");
             }
         }
-        tableName = "(select p.id as id,p.create_id as createId,p.tenant_id as tenantId,p.head_id as headId,asps.scenario_id as scenarioId,aspm.matter_id as matterId,p.create_time as createTime ,entrust_id as entrustId,entrust_type as entrustType,rp.report_type as reportType,aspe.event_id as eventId from report as rp left join project as p on rp.project_id =p.id ";
-        tableName += "left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id " +
-                "left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id " +
-                "left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id) as t";
+        tableName = "(" + getSelectMessage() + ") as t";
         //返回分组数据
         QueryGroupImp queryGroupImp = queryGroupFactory.getClass(groupConfig.getGroupClass());
         String countFiled = "distinct t.id";
@@ -350,6 +347,12 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
                         reportProject.setPatentType(Integer.parseInt(patentWithIdVO.getPatent().getPatentType()));
                     }
                 }
+                Patent patent = patentWithIdVO.getPatent();
+                if (patent.getRightHolder() != null && patent.getRightHolder().size() > 0) {
+                    List<String> rightHolders = patent.getRightHolder().stream().map(PatentPerson::getName).collect(Collectors.toList());
+                    String holderString = StringUtils.join(rightHolders, ",");
+                    reportProject.setRightHolder(holderString);
+                }
             } catch (Exception e) {
                 throw new XiaoShiException("未查询到标的专利");
             }
@@ -533,10 +536,34 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         reportProjectWrapper.eq(ReportProject::getProjectId, project.getId());
         ReportProject reportProject = this.getOne(reportProjectWrapper);
         Integer reportId = reportProject.getId();
+        if (reportProject.getSignPatentNo() != null && reportProject.getSignPatentNo() != updateReportProjectDTO.getSignPatentNo()) {
+            try {
+                String patentNo =updateReportProjectDTO.getSignPatentNo();
+                PatentWithIdVO patentWithIdVO = esService.getIdByPatentNo(patentNo);
+                if(patentWithIdVO==null){
+                    reportProject.setRightHolder("");
+                }else {
+                    Patent patent = patentWithIdVO.getPatent();
+                    if (patent.getRightHolder() != null && patent.getRightHolder().size() > 0) {
+                        List<String> rightHolders = patent.getRightHolder().stream().map(PatentPerson::getName).collect(Collectors.toList());
+                        String holderString = StringUtils.join(rightHolders, ",");
+                        reportProject.setRightHolder(holderString);
+                    }
+                    else {
+                        reportProject.setRightHolder("");
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        updateReportProjectDTO.setEvidenceRiskResponse(reportProject.getEvidenceRiskResponse());
+        updateReportProjectDTO.setOralPanelMembers(reportProject.getOralPanelMembers());
+        updateReportProjectDTO.setOfficialDeadline(reportProject.getOfficialDeadline());
         BeanUtils.copyProperties(updateReportProjectDTO, reportProject);
         reportProject.setId(reportId);
-        reportProject.updateById();
 
+        reportProject.updateById();
         /**
          * 装载后续事项和project关联
          */
@@ -613,7 +640,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
          *装载参与人
          */
         List<String> involvedPersonIds = updateReportProjectDTO.getInvolvedPersonIds();
-        assoProjectPersonService.updateProjectPeople(1,project.getId(),involvedPersonIds);
+        assoProjectPersonService.updateProjectPeople(1, project.getId(), involvedPersonIds);
 
         //返回id
         return project.getId();
@@ -948,13 +975,10 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
 
             //装载专利权人
             if (ifInvalidReport != null && ifInvalidReport && reportProjectVO.getSignPatentNo() != null && patentList.size() > 0) {
-                String patentNo = reportProjectVO.getSignPatentNo();
-                Patent patent = patentList.stream().filter(item -> patentNo.equals(item.getPublicNo()) || patentNo.equals(item.getGrantNo()) || patentNo.equals(item.getAppNo())).findFirst().orElse(null);
-                if (patent != null) {
-                    if (patent.getRightHolder() != null && patent.getRightHolder().size() > 0) {
-                        List<String> rightHolders = patent.getRightHolder().stream().map(PatentPerson::getName).collect(Collectors.toList());
-                        reportProjectVO.setRightHolder(rightHolders);
-                    }
+                String rightHolderStr = reportProjectVO.getRightHolderStr();
+                if (rightHolderStr != null) {
+                    List<String> rightHolders = Arrays.asList(rightHolderStr.split(","));
+                    reportProjectVO.setRightHolder(rightHolders);
 
                 }
             }
@@ -1004,4 +1028,23 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         return sqls;
 
     }
+
+    public String getSelectMessage() {
+        String tableName = "";
+        tableName = "select p.id as id,p.name as name ,rp.sign_patent_no as signPatentNo,p.contract_no as\n" +
+                "        contract_no,p.volume_number as volumeNumber,p.commission_case_day as commissionCaseDay,\n" +
+                "        p.description as description,p.create_id as createId,p.create_time as createTime, rp.report_type as reportType ,\n" +
+                "        p.head_id as headId,p.department_id as departmentId, p.tenant_id as tenantId,\n" +
+                "        p.entrust_type as entrustType,p.entrust_id as entrustId,rp.product_or_tech as productOrTech,rp.cron_description\n" +
+                "        as cronDescription ,rp.status as status,rp.if_second_invalid as ifSecondInvalid,rp.case_number as caseNumber ,rp.issue_number as issueNumber ,rp.invalid_application as\n" +
+                "        invalidApplication ,rp.act_type as actType ,rp.patent_type as patentType ,rp.current_application as\n" +
+                "        currentApplication, rp.invention_name as inventionName,p.contract_no as contractNo,rp.carding_opinion,\n" +
+                "        rp.accept_year as acceptYear,rp.applicant_agency as applicantAgency,rp.right_holder_agency as rightHolderAgency,rp.case_stage as caseStage,\n" +
+                "        aspe.event_id as eventId,arc.cron_id as cronId,aspm.matter_id as matterId,asps.scenario_id as scenarioId,rp.actual_person as actualPerson,rp.litigation_party as litigationParty,rp.right_holder as rightHolderStr from report as rp left join project as p on rp.project_id =p.id ";
+        tableName += "left join asso_report_cron arc on p.id =arc.project_id " +
+                "left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id " +
+                "left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id " +
+                "left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id ";
+        return tableName;
+    }
 }

+ 12 - 0
src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java

@@ -44,6 +44,7 @@ import co.elastic.clients.elasticsearch._types.aggregations.Aggregate;
 import co.elastic.clients.elasticsearch._types.aggregations.StringTermsBucket;
 import co.elastic.clients.elasticsearch._types.query_dsl.Query;
 import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
+import co.elastic.clients.elasticsearch.core.DeleteByQueryRequest;
 import co.elastic.clients.elasticsearch.core.DeleteResponse;
 import co.elastic.clients.elasticsearch.core.SearchRequest;
 import co.elastic.clients.elasticsearch.core.SearchResponse;
@@ -1091,6 +1092,17 @@ public class EsPatentService {
         dto.setPageSize(size);
         return dto;
     }
+    public Integer removeByNo(String no) {
+        Query query = QueryBuilders.term(t -> t.field("patent_no.keyword").value(no));
 
+        DeleteByQueryRequest request = DeleteByQueryRequest.of(i -> i.index("patent").refresh(true).query(query)
+                .refresh(true));
+        try {
+            client.deleteByQuery(request);
+            return 1;
+        } catch (IOException e) {
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "删除失败");
+        }
+    }
 
 }

+ 3 - 0
src/main/java/cn/cslg/pas/service/importPatent/WebVOTransformService.java

@@ -146,6 +146,9 @@ public class WebVOTransformService {
     // 装载世界专利
     public void loadWorldPatent(String worldPatentZhuLuStr, UploadPatentWebDTO uploadPatentWebDTO) {
         List<StarPatentVO> worldPatentZhuLus = JSON.parseArray(worldPatentZhuLuStr, StarPatentVO.class);
+        if(worldPatentZhuLus==null){
+            return;
+        }
         StarPatentVO worldPatentZhuLu = worldPatentZhuLus.get(0);
         Patent patent = uploadPatentWebDTO.getPatent();
         if (worldPatentZhuLuStr != null && !worldPatentZhuLuStr.trim().equals("") && !worldPatentZhuLuStr.equals("{}") && !worldPatentZhuLuStr.contains("请求不合法")) {

+ 56 - 0
src/main/java/cn/cslg/pas/service/report/AssoComLiteratureFileService.java

@@ -0,0 +1,56 @@
+package cn.cslg.pas.service.report;
+
+import cn.cslg.pas.service.query.Query;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.cslg.pas.domain.report.AssoComLiteratureFile;
+import cn.cslg.pas.mapper.report.AssoComLiteratureFileMapper;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author admin
+ * @description 针对表【asso_com_literature_file(对比文献和文件关联表)】的数据库操作Service实现
+ * @createDate 2025-04-22 14:53:48
+ */
+@Service
+public class AssoComLiteratureFileService extends ServiceImpl<AssoComLiteratureFileMapper, AssoComLiteratureFile> {
+    public void addAssoComLiteratureFile(Integer literatureId, List<String> fileGuids) {
+        if (fileGuids == null || fileGuids.isEmpty()) {
+            return;
+        }
+        List<AssoComLiteratureFile> assoComLiteratureFiles = new ArrayList<>();
+        fileGuids.forEach(item -> {
+            AssoComLiteratureFile assoComLiteratureFile = new AssoComLiteratureFile();
+            assoComLiteratureFile.setFileGuid(item);
+            assoComLiteratureFile.setCompareLiteratureFileId(literatureId);
+            assoComLiteratureFiles.add(assoComLiteratureFile);
+        });
+        if (assoComLiteratureFiles.size() > 0) {
+            this.saveBatch(assoComLiteratureFiles);
+        }
+    }
+
+    public void updateAssoComLiteratureFile(Integer literatureId, List<String> fileGuids) {
+        LambdaQueryWrapper<AssoComLiteratureFile> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AssoComLiteratureFile::getCompareLiteratureFileId, literatureId);
+        this.remove(queryWrapper);
+        this.addAssoComLiteratureFile(literatureId, fileGuids);
+    }
+
+    public List<AssoComLiteratureFile> queryAssoComLiteratureFiles(List<Integer> literatureIds) {
+        List<AssoComLiteratureFile> assoComLiteratureFiles = new ArrayList<>();
+        if (literatureIds != null && literatureIds.size() > 0) {
+            LambdaQueryWrapper<AssoComLiteratureFile> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.in(AssoComLiteratureFile::getCompareLiteratureFileId, literatureIds);
+            assoComLiteratureFiles = this.list(queryWrapper);
+        }
+        return assoComLiteratureFiles;
+    }
+}
+
+
+
+

+ 20 - 0
src/main/java/cn/cslg/pas/service/report/OralNoticeService.java

@@ -0,0 +1,20 @@
+package cn.cslg.pas.service.report;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.cslg.pas.domain.report.OralNotice;
+import cn.cslg.pas.mapper.report.OralNoticeMapper;
+import org.springframework.stereotype.Service;
+
+/**
+* @author admin
+* @description 针对表【oral_notice】的数据库操作Service实现
+* @createDate 2025-04-22 14:23:02
+*/
+@Service
+public class OralNoticeService extends ServiceImpl<OralNoticeMapper, OralNotice>{
+
+}
+
+
+
+

+ 75 - 27
src/main/resources/mapper/ReportAffairMapper.xml

@@ -4,22 +4,22 @@
     <select id="queryCasePhase" resultType="cn.cslg.pas.common.vo.QueryCasePhaseVO">
         SELECT *
         FROM (
-            SELECT a.case_phase,
-            b.project_id,
-            CASE
-               WHEN a.case_child_phase != '' THEN a.case_child_phase
-               ELSE b.case_child_phase
-               END AS   caseChildPhase,
-            ROW_NUMBER() OVER (
-                PARTITION BY b.project_id
-                ORDER BY b.occurred_time DESC, b.id DESC
-            ) AS rn
+        SELECT a.case_phase,
+        b.project_id,
+        CASE
+        WHEN a.case_child_phase != '' THEN a.case_child_phase
+        ELSE b.case_child_phase
+        END AS caseChildPhase,
+        ROW_NUMBER() OVER (
+        PARTITION BY b.project_id
+        ORDER BY b.occurred_time DESC, b.id DESC
+        ) AS rn
         FROM report_affair_case_phase a
         LEFT JOIN report_affair b ON b.asso_case_phase_id = a.id
         WHERE b.project_id IN
-            <foreach collection="projectIds" index="index" item="item" open="(" separator="," close=")">
-                #{item}
-            </foreach>
+        <foreach collection="projectIds" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
         ) t
         WHERE rn = 1
     </select>
@@ -27,20 +27,68 @@
     <select id="queryReportAffairConclusion" resultType="cn.cslg.pas.common.vo.QueryReportAffairConclusionVO">
         SELECT *
         FROM (
-            SELECT
-            co.conclusion,
-            ra.project_id,
-            ROW_NUMBER() OVER (
-                PARTITION BY ra.project_id
-                ORDER BY ra.occurred_time DESC, ra.id DESC
-            ) AS rn
-            FROM court_order co
-            LEFT JOIN report_affair ra ON ra.id = co.report_affair_id
-            WHERE ra.project_id IN
-                <foreach collection="projectIds" index="index" item="item" open="(" separator="," close=")">
-                    #{item}
-                 </foreach>
-            ) t
+        SELECT
+        co.conclusion,
+        ra.project_id,
+        ROW_NUMBER() OVER (
+        PARTITION BY ra.project_id
+        ORDER BY ra.occurred_time DESC, ra.id DESC
+        ) AS rn
+        FROM court_order co
+        LEFT JOIN report_affair ra ON ra.id = co.report_affair_id
+        WHERE ra.project_id IN
+        <foreach collection="projectIds" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        ) t
         WHERE rn = 1
     </select>
+
+
+    <select id="queryProjectByCasePhase" resultType="java.lang.Integer">
+        select project_id from (select a.project_id, ROW_NUMBER() OVER (
+        PARTITION BY a.project_id
+        ORDER BY a.occurred_time DESC, a.id DESC
+        ) AS rn,b.case_phase
+        from report_affair a
+        left join report_affair_case_phase b on a.asso_case_phase_id = b.id
+        ) as t
+        <where>case_phase like concat('%', #{name},
+            '%')
+            and rn=1
+            group by project_id
+        </where>
+    </select>
+    <select id="queryProjectByCaseChildPhase" resultType="java.lang.Integer">
+
+        select project_id from (select a.project_id,a.case_child_phase as p1 ,b.case_child_phase as p2,ROW_NUMBER() OVER
+        (
+        PARTITION BY a.project_id
+        ORDER BY a.occurred_time DESC, a.id DESC
+        ) AS rn,b.case_phase
+        from report_affair a
+        left join report_affair_case_phase b on a.asso_case_phase_id = b.id
+        ) as t
+        <where>p1 like concat('%', #{name}, '%')
+            or p2 like concat('%', #{name}, '%')
+            and rn=1
+            group by project_id
+        </where>
+
+    </select>
+    <select id="queryProjectByConclusion" resultType="java.lang.Integer">
+        select project_id from (
+        SELECT
+        ra.project_id, co.conclusion, ROW_NUMBER() OVER (
+        PARTITION BY ra.project_id
+        ORDER BY ra.occurred_time DESC, ra.id DESC
+        ) AS rn
+        FROM court_order co
+        LEFT JOIN report_affair ra ON ra.id = co.report_affair_id
+        ) as t
+        <where> conclusion like concat('%', #{name}, '%') and rn=1
+            group by project_id
+        </where>
+
+    </select>
 </mapper>

+ 2 - 30
src/main/resources/mapper/ReportProjectMapper.xml

@@ -2,21 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="cn.cslg.pas.mapper.ReportProjectMapper">
     <select id="getReportProject" resultType="cn.cslg.pas.common.vo.business.ReportProjectVO">
-        select * from ( select p.id as id,p.name as name ,rp.sign_patent_no as signPatentNo,p.contract_no as
-        contract_no,p.volume_number as volumeNumber,p.commission_case_day as commissionCaseDay,
-        p.description as description,p.create_id as createId,p.create_time as createTime, rp.report_type as reportType ,
-        p.head_id as headId,p.department_id as departmentId, p.tenant_id as tenantId,
-        p.entrust_type as entrustType,p.entrust_id as entrustId,rp.product_or_tech as productOrTech,rp.cron_description
-        as cronDescription ,rp.status as status,rp.if_second_invalid as ifSecondInvalid,rp.case_number as caseNumber ,rp.issue_number as issueNumber ,rp.invalid_application as
-        invalidApplication ,rp.act_type as actType ,rp.patent_type as patentType ,rp.current_application as
-        currentApplication, rp.invention_name as inventionName,p.contract_no as contractNo,rp.carding_opinion,
-        rp.accept_year as acceptYear,rp.applicant_agency as applicantAgency,rp.right_holder_agency as rightHolderAgency,rp.case_stage as caseStage,
-        aspe.event_id as eventId,arc.cron_id as cronId,aspm.matter_id as matterId,asps.scenario_id as scenarioId,rp.actual_person as actualPerson
-        from report as rp left join project as p
-        on rp.project_id =p.id left join asso_report_cron arc on p.id =arc.project_id
-        left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id
-        left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id
-        left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id
+        select * from ( ${select}
              group by p.id
         ) as t
         <if test="sql1!=''">
@@ -26,21 +12,7 @@
     </select>
 
     <select id="getReportProjectCount" resultType="java.lang.Long">
-        select count(*) from (select p.id as id,p.name as name ,rp.sign_patent_no as signPatentNo,p.contract_no as
-        contract_no,p.volume_number as volumeNumber,p.commission_case_day as commissionCaseDay,
-        p.description as description,p.create_id as createId,p.create_time as createTime, rp.report_type as reportType ,
-        p.head_id as headId,p.department_id as departmentId, p.tenant_id as tenantId,
-        p.entrust_type as entrustType,p.entrust_id as entrustId,rp.product_or_tech as productOrTech,rp.cron_description
-        as cronDescription ,rp.status as status,rp.if_second_invalid as ifSecondInvalid,rp.case_number as caseNumber ,rp.issue_number as issueNumber ,rp.invalid_application as
-        invalidApplication ,rp.act_type as actType ,rp.patent_type as patentType ,rp.current_application as
-        currentApplication, rp.invention_name as inventionName,p.contract_no as contractNo,rp.carding_opinion,
-        rp.accept_year as acceptYear,rp.applicant_agency as applicantAgency,rp.right_holder_agency as rightHolderAgency,rp.case_stage as caseStage,
-        aspe.event_id as eventId,arc.cron_id as cronId,aspm.matter_id as matterId,asps.scenario_id as scenarioId from report as rp left join project as p
-        on rp.project_id =p.id
-        left join asso_report_cron arc on p.id =arc.project_id
-        left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id
-        left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id
-        left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id
+        select count(*) from (${select}
          group  by p.id
         ) as t
         <if test="sql1!=''">

+ 0 - 1
src/test/java/cn/cslg/pas/service/CompareLiteratureServiceTests.java

@@ -41,7 +41,6 @@ public class CompareLiteratureServiceTests {
         CompareLiteratureDTO compareLiteratureDTO =new CompareLiteratureDTO();
         compareLiteratureDTO.setName("测试文");
         compareLiteratureDTO.setDescription("文件描述");
-        compareLiteratureDTO.setFileGuid("12314415AAaa");
         compareLiteratureDTO.setAuthorName("张三");
         compareLiteratureDTO.setProjectId(1);
         compareLiteratureDTO.setPublicDate(new Date());

+ 45 - 1
src/test/java/cn/cslg/pas/service/ReportProjectServiceTests.java

@@ -3,33 +3,46 @@ package cn.cslg.pas.service;
 import cn.cslg.pas.common.dto.business.ProjectEventDTO;
 import cn.cslg.pas.common.dto.business.ReportProjectDTO;
 import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.PatentWithIdVO;
 import cn.cslg.pas.controller.ReportProjectController;
+import cn.cslg.pas.domain.business.ReportProject;
+import cn.cslg.pas.domain.es.Patent;
+import cn.cslg.pas.domain.es.PatentPerson;
 import cn.cslg.pas.service.business.ReportProjectService;
+import cn.cslg.pas.service.business.es.EsService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.regexp.RE;
 import org.junit.Assert;
 import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Author xiexiang
  * @Date 2023/11/6
  */
 @SpringBootTest
+@RunWith(SpringRunner.class)
 public class ReportProjectServiceTests {
     @Autowired
     private ReportProjectService reportProjectService;
 
     @Autowired
     private ReportProjectController reportProjectController;
+    @Autowired
+    private EsService esService;
 
     @Test
-    void addReportProject() throws Exception {
+    public void addReportProject() throws Exception {
 //        ReportProjectDTO reportProjectDTO = new ReportProjectDTO();
 //        reportProjectDTO.setName("");
 //        //委托类型1客户,2部门
@@ -93,4 +106,35 @@ public class ReportProjectServiceTests {
 //        Response response = reportProjectController.addReportProject(reportProjectDTO, files);
 //        Assert.assertEquals(200,Integer.parseInt(response.getCode().toString()));
     }
+
+    @Test
+    public void refleshReport() throws Exception {
+        LambdaQueryWrapper<ReportProject> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ReportProject::getReportType, 7);
+        List<ReportProject> reportProjects = reportProjectService.list(queryWrapper);
+        reportProjects.forEach(item -> {
+            String rightHolder = item.getRightHolder();
+            String patentNo = item.getSignPatentNo();
+            if (rightHolder == null) {
+                PatentWithIdVO patentWithIdVO = null;
+                try {
+                    patentWithIdVO = esService.getIdByPatentNo(patentNo);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                if (patentWithIdVO == null) {
+                    item.setRightHolder("");
+                } else {
+                    Patent patent = patentWithIdVO.getPatent();
+                    if (patent.getRightHolder() != null && patent.getRightHolder().size() > 0) {
+                        List<String> rightHolders = patent.getRightHolder().stream().map(PatentPerson::getName).collect(Collectors.toList());
+                        String holderString = StringUtils.join(rightHolders, ",");
+                        item.setRightHolder(holderString);
+                    } else {
+                        item.setRightHolder("");
+                    }
+                }
+                item.updateById();
+            }});
+        }
 }