Browse Source

20250729-官方无效修改

lrj 2 tháng trước cách đây
mục cha
commit
a402b2d007
23 tập tin đã thay đổi với 368 bổ sung137 xóa
  1. 7 0
      src/main/java/cn/cslg/pas/common/dto/business/ReportAffairDTO.java
  2. 1 1
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AlterPatentClaimDTO.java
  3. 1 1
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/PatentClaimDTO.java
  4. 5 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/ReportAffairCaseDTO.java
  5. 15 0
      src/main/java/cn/cslg/pas/common/vo/invalidVO/CourtSubpoenaVO.java
  6. 1 0
      src/main/java/cn/cslg/pas/common/vo/invalidVO/PatentClaimHistoryVO.java
  7. 9 0
      src/main/java/cn/cslg/pas/common/vo/invalidVO/ReportAffairVO.java
  8. 1 1
      src/main/java/cn/cslg/pas/domain/business/PatentClaimHistory.java
  9. 4 1
      src/main/java/cn/cslg/pas/domain/business/ReportAffair.java
  10. 12 0
      src/main/java/cn/cslg/pas/service/ReportAffairCasePhaseService.java
  11. 9 4
      src/main/java/cn/cslg/pas/service/business/AdminProceedService.java
  12. 4 2
      src/main/java/cn/cslg/pas/service/business/InvalidDecisionFileService.java
  13. 4 2
      src/main/java/cn/cslg/pas/service/business/InvalidRequestFileService.java
  14. 4 2
      src/main/java/cn/cslg/pas/service/business/OralTrailService.java
  15. 5 2
      src/main/java/cn/cslg/pas/service/business/OtherDocumentsService.java
  16. 52 20
      src/main/java/cn/cslg/pas/service/business/ReportAffairService.java
  17. 20 9
      src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimHistoryService.java
  18. 124 55
      src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimService.java
  19. 44 30
      src/main/java/cn/cslg/pas/service/report/MatchCasePersonService.java
  20. 23 6
      src/main/java/cn/cslg/pas/service/report/SendReportMailService.java
  21. BIN
      src/main/resources/file/reportTemple/patent.docx
  22. 22 0
      src/main/resources/jsons/claimManage.json
  23. 1 1
      src/test/java/cn/cslg/pas/service/ProjectTaskServiceTests.java

+ 7 - 0
src/main/java/cn/cslg/pas/common/dto/business/ReportAffairDTO.java

@@ -3,7 +3,9 @@ package cn.cslg.pas.common.dto.business;
 import cn.cslg.pas.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
@@ -41,4 +43,9 @@ public class ReportAffairDTO {
     private String documentType;
 
     private String evidenceRiskResponse;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+    private Date beTime;
+
+    private String bePosition;
 }

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

@@ -27,5 +27,5 @@ public class AlterPatentClaimDTO {
     /**
      * 是否第一次
      */
-    private Boolean ifFirst;
+    private Integer ifFirst;
 }

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

@@ -9,5 +9,5 @@ import lombok.Data;
 @Data
 public class PatentClaimDTO {
     private Integer claimId;
-    private Boolean ifFirst;
+    private Integer ifFirst;
 }

+ 5 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/ReportAffairCaseDTO.java

@@ -30,4 +30,9 @@ public class ReportAffairCaseDTO {
     private List<ExtraEmailDTO> extraEmailDTOS;
 
     private String evidenceRiskResponse;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+    private Date beTime;
+
+    private String bePosition;
 }

+ 15 - 0
src/main/java/cn/cslg/pas/common/vo/invalidVO/CourtSubpoenaVO.java

@@ -0,0 +1,15 @@
+package cn.cslg.pas.common.vo.invalidVO;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class CourtSubpoenaVO {
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+    private Date beTime;
+    private String bePosition;
+}

+ 1 - 0
src/main/java/cn/cslg/pas/common/vo/invalidVO/PatentClaimHistoryVO.java

@@ -12,4 +12,5 @@ public class PatentClaimHistoryVO {
     private QueryPatentClaimHistoryVO originalClaimVO;
     private QueryPatentClaimHistoryVO firstClaimVO;
     private QueryPatentClaimHistoryVO secondClaimVO;
+    private QueryPatentClaimHistoryVO thirdClaimVO;
 }

+ 9 - 0
src/main/java/cn/cslg/pas/common/vo/invalidVO/ReportAffairVO.java

@@ -141,4 +141,13 @@ public class ReportAffairVO {
      * 是否提行政诉讼二审及理由
      */
     private String firstInstanceStageReason;
+    /**
+     * 行政诉讼判决书返回VO
+     */
+    private CourtSubpoenaVO courtSubpoenaVO;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+    private Date beTime;
+
+    private String bePosition;
 }

+ 1 - 1
src/main/java/cn/cslg/pas/domain/business/PatentClaimHistory.java

@@ -49,7 +49,7 @@ public class PatentClaimHistory extends BaseEntity<PatentClaimHistory> {
      * 是否第一次修改
      */
     @TableField(value = "if_first")
-    private Boolean ifFirst;
+    private Integer ifFirst;
 
     /**
      * 复审委决定

+ 4 - 1
src/main/java/cn/cslg/pas/domain/business/ReportAffair.java

@@ -69,5 +69,8 @@ public class ReportAffair extends BaseEntity<ReportAffair> {
      */
     @TableField(value = "evidence_risk_response")
     private String evidenceRiskResponse;
-
+    @TableField(value = "be_time")
+    private Date beTime;
+    @TableField(value = "be_position")
+    private String bePosition;
 }

+ 12 - 0
src/main/java/cn/cslg/pas/service/ReportAffairCasePhaseService.java

@@ -27,4 +27,16 @@ public class ReportAffairCasePhaseService extends ServiceImpl<ReportAffairCasePh
                 .eq(ReportAffairCasePhase::getIfShow, true)
                 .orderByAsc(ReportAffairCasePhase::getPriority).orderByAsc(BaseEntity::getId));
     }
+
+    /**
+     * 查询案件关联文档集合
+     * @return
+     */
+    public ReportAffairCasePhase queryAssoCasePhase(Integer typeId) {
+        LambdaQueryWrapper<ReportAffairCasePhase> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(ReportAffairCasePhase::getIfShow,true)
+                    .eq(ReportAffairCasePhase::getId,typeId);
+        ReportAffairCasePhase reportAffairCasePhase =this.getOne(queryWrapper,false);
+        return  reportAffairCasePhase;
+    }
 }

+ 9 - 4
src/main/java/cn/cslg/pas/service/business/AdminProceedService.java

@@ -103,7 +103,7 @@ public class AdminProceedService extends ServiceImpl<AdminProceedMapper, AdminPr
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addDto.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, addDto.getExtraEmailDTOS());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addDto.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
@@ -167,8 +167,11 @@ public class AdminProceedService extends ServiceImpl<AdminProceedMapper, AdminPr
         //3. 更新报告事务与文件关联
         List<String> fileGuids = updateDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
+
         if (updateDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, updateDTO.getExtraEmailDTOS());
+            ReportAffairDTO reportAffairDTO =new ReportAffairDTO();
+            reportAffairDTO.setAssoCasePhaseId(reportAffair.getAssoCasePhaseId());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
@@ -224,7 +227,7 @@ public class AdminProceedService extends ServiceImpl<AdminProceedMapper, AdminPr
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addJudgmentDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, addJudgmentDTO.getExtraEmailDTOS());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addJudgmentDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
@@ -276,7 +279,9 @@ public class AdminProceedService extends ServiceImpl<AdminProceedMapper, AdminPr
         List<String> fileGuids = updateJudgmentDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateJudgmentDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, updateJudgmentDTO.getExtraEmailDTOS());
+            ReportAffairDTO reportAffairDTO =new ReportAffairDTO();
+            reportAffairDTO.setAssoCasePhaseId(reportAffair.getAssoCasePhaseId());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateJudgmentDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }

+ 4 - 2
src/main/java/cn/cslg/pas/service/business/InvalidDecisionFileService.java

@@ -124,7 +124,7 @@ public class InvalidDecisionFileService extends ServiceImpl<InvalidDecisionFileM
             this.updateReportCron(cronIds, projectId);
         }
         if (addInvalidDecisionFileDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, addInvalidDecisionFileDTO.getExtraEmailDTOS());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addInvalidDecisionFileDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
@@ -232,7 +232,9 @@ public class InvalidDecisionFileService extends ServiceImpl<InvalidDecisionFileM
             this.updateReportCron(cronIds, projectId);
         }
         if (updateInvalidDecisionFileDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, updateInvalidDecisionFileDTO.getExtraEmailDTOS());
+            ReportAffairDTO reportAffairDTO =new ReportAffairDTO();
+            reportAffairDTO.setAssoCasePhaseId(reportAffair.getAssoCasePhaseId());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateInvalidDecisionFileDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }

+ 4 - 2
src/main/java/cn/cslg/pas/service/business/InvalidRequestFileService.java

@@ -116,7 +116,7 @@ public class InvalidRequestFileService extends ServiceImpl<InvalidRequestFileMap
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addInvalidRequestFileDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, addInvalidRequestFileDTO.getExtraEmailDTOS());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addInvalidRequestFileDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
@@ -176,7 +176,9 @@ public class InvalidRequestFileService extends ServiceImpl<InvalidRequestFileMap
         List<String> fileGuids = updateInvalidRequestFileDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateInvalidRequestFileDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, updateInvalidRequestFileDTO.getExtraEmailDTOS());
+            ReportAffairDTO reportAffairDTO =new ReportAffairDTO();
+            reportAffairDTO.setAssoCasePhaseId(reportAffair.getAssoCasePhaseId());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateInvalidRequestFileDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }

+ 4 - 2
src/main/java/cn/cslg/pas/service/business/OralTrailService.java

@@ -113,7 +113,7 @@ public class OralTrailService extends ServiceImpl<OralTrailMapper, OralTrail> {
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addOralTrailDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, addOralTrailDTO.getExtraEmailDTOS());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addOralTrailDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
@@ -194,7 +194,9 @@ public class OralTrailService extends ServiceImpl<OralTrailMapper, OralTrail> {
         List<String> fileGuids = updateOralTrailDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateOralTrailDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, updateOralTrailDTO.getExtraEmailDTOS());
+            ReportAffairDTO reportAffairDTO=new ReportAffairDTO();
+            reportAffairDTO.setAssoCasePhaseId(reportAffair.getAssoCasePhaseId());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateOralTrailDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }

+ 5 - 2
src/main/java/cn/cslg/pas/service/business/OtherDocumentsService.java

@@ -98,7 +98,7 @@ public class OtherDocumentsService extends ServiceImpl<OtherDocumentsMapper, Oth
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
 
             if (addOtherDocumentsDTO.getIfSendEmail()) {
-                sendReportMailService.finalSendEmail(projectId, fileGuids, addOtherDocumentsDTO.getExtraEmailDTOS());
+                sendReportMailService.finalSendEmail(projectId, fileGuids, addOtherDocumentsDTO.getExtraEmailDTOS(),reportAffairDTO);
             }
         }
         return reportAffairId;
@@ -163,7 +163,10 @@ public class OtherDocumentsService extends ServiceImpl<OtherDocumentsMapper, Oth
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (updateOtherDocumentsDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, updateOtherDocumentsDTO.getExtraEmailDTOS());
+            ReportAffairDTO reportAffairDTO =new ReportAffairDTO();
+            reportAffairDTO.setAssoCasePhaseId(reportAffair.getAssoCasePhaseId());
+            reportAffairDTO.setDocumentType(reportAffair.getDocumentType());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateOtherDocumentsDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }

+ 52 - 20
src/main/java/cn/cslg/pas/service/business/ReportAffairService.java

@@ -120,6 +120,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
 
     /**
      * 删除报告事务
+     *
      * @param ids
      */
     public void delete(List<Integer> ids) {
@@ -183,7 +184,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
                 //判断是否需要同步更新报告官限
                 String deadline = casePhase.getCalOfficialDeadline();
                 if (StringUtils.isNotEmpty(deadline)) {
-                    invalidRequestFileService.getCommonMethod(reportAffair.getProjectId(),assoCasePhaseId);
+                    invalidRequestFileService.getCommonMethod(reportAffair.getProjectId(), assoCasePhaseId);
                 }
             }
         }
@@ -254,6 +255,8 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
                     this.loadOtherDocuments(reportAffairVO);
                     reportAffairVO.setCaseChildPhase(item.getCaseChildPhase());
                     reportAffairVO.setDocumentType(item.getDocumentType());
+                } else if (type.equals(15) || type.equals(25)) {
+                    this.loadCourtSubpoenaVO(reportAffairVO);
                 }
             }
             reportAffairVOS.add(reportAffairVO);
@@ -366,6 +369,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
 
     /**
      * 装载无效决定书与无效结果关联
+     *
      * @param reportAffairVOS
      */
     public void loadAssoInvalidDecisionCron(List<ReportAffairVO> reportAffairVOS) {
@@ -417,10 +421,11 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
 
     /**
      * 上传陈述意见书
+     *
      * @param addStateOpinionDTO
      * @return
      */
-    public Integer addStateOpinion(AddStateOpinionDTO addStateOpinionDTO){
+    public Integer addStateOpinion(AddStateOpinionDTO addStateOpinionDTO) {
         if (addStateOpinionDTO == null) {
             throw new XiaoShiException("入参为空");
         }
@@ -457,17 +462,18 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addStateOpinionDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, addStateOpinionDTO.getExtraEmailDTOS());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addStateOpinionDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
 
     /**
      * 更新陈述意见
+     *
      * @param updateStateOpinionDTO
      * @return
      */
-    public Integer updateStateOpinion(UpdateStateOpinionDTO updateStateOpinionDTO){
+    public Integer updateStateOpinion(UpdateStateOpinionDTO updateStateOpinionDTO) {
         if (updateStateOpinionDTO == null) {
             throw new XiaoShiException("入参为空");
         }
@@ -495,7 +501,9 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
         List<String> fileGuids = updateStateOpinionDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateStateOpinionDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, updateStateOpinionDTO.getExtraEmailDTOS());
+            ReportAffairDTO reportAffairDTO =new ReportAffairDTO();
+            reportAffairDTO.setAssoCasePhaseId(reportAffair.getAssoCasePhaseId());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateStateOpinionDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
@@ -538,10 +546,11 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
 
     /**
      * 上传权要修改记录
+     *
      * @param addClaimHistoryDTO
      * @return
      */
-    public Integer addClaimHistory(AddClaimHistoryDTO addClaimHistoryDTO){
+    public Integer addClaimHistory(AddClaimHistoryDTO addClaimHistoryDTO) {
         if (addClaimHistoryDTO == null) {
             throw new XiaoShiException("入参为空");
         }
@@ -578,17 +587,18 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addClaimHistoryDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, addClaimHistoryDTO.getExtraEmailDTOS());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addClaimHistoryDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
 
     /**
      * 更新权要修改历史
+     *
      * @param updateClaimHistoryDTO
      * @return
      */
-    public Integer updateClaimHistory(UpdateClaimHistoryDTO updateClaimHistoryDTO){
+    public Integer updateClaimHistory(UpdateClaimHistoryDTO updateClaimHistoryDTO) {
         if (updateClaimHistoryDTO == null) {
             throw new XiaoShiException("入参为空");
         }
@@ -616,17 +626,20 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
         List<String> fileGuids = updateClaimHistoryDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateClaimHistoryDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, updateClaimHistoryDTO.getExtraEmailDTOS());
+            ReportAffairDTO reportAffairDTO=new ReportAffairDTO();
+            reportAffairDTO.setAssoCasePhaseId(reportAffair.getAssoCasePhaseId());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateClaimHistoryDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
 
     /**
      * 上传补充证据及理由
+     *
      * @param addSupplyEvidenceDTO
      * @return
      */
-    public Integer addSupplyEvidence(AddSupplyEvidenceDTO addSupplyEvidenceDTO){
+    public Integer addSupplyEvidence(AddSupplyEvidenceDTO addSupplyEvidenceDTO) {
         if (addSupplyEvidenceDTO == null) {
             throw new XiaoShiException("入参为空");
         }
@@ -663,17 +676,18 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addSupplyEvidenceDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, addSupplyEvidenceDTO.getExtraEmailDTOS());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addSupplyEvidenceDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
 
     /**
      * 更新补充证据及理由
+     *
      * @param updateSupplyEvidenceDTO
      * @return
      */
-    public Integer updateSupplyEvidence(UpdateSupplyEvidenceDTO updateSupplyEvidenceDTO){
+    public Integer updateSupplyEvidence(UpdateSupplyEvidenceDTO updateSupplyEvidenceDTO) {
         if (updateSupplyEvidenceDTO == null) {
             throw new XiaoShiException("入参为空");
         }
@@ -701,13 +715,16 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
         List<String> fileGuids = updateSupplyEvidenceDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateSupplyEvidenceDTO.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, updateSupplyEvidenceDTO.getExtraEmailDTOS());
+            ReportAffairDTO reportAffairDTO =new ReportAffairDTO();
+            reportAffairDTO.setAssoCasePhaseId(reportAffair.getAssoCasePhaseId());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateSupplyEvidenceDTO.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
 
     /**
      * 装载权利要求修改记录
+     *
      * @param reportAffairVO
      */
     public void loadClaimHistory(ReportAffairVO reportAffairVO) {
@@ -723,6 +740,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
 
     /**
      * 装载补充证据及理由
+     *
      * @param reportAffairVO
      */
     public void loadSupplyEvidence(ReportAffairVO reportAffairVO) {
@@ -738,6 +756,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
 
     /**
      * 装载其他文档
+     *
      * @param reportAffairVO
      */
     public void loadOtherDocuments(ReportAffairVO reportAffairVO) {
@@ -752,10 +771,11 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
      * 添加请求人意见陈述书  添加合议组无效宣告受理通知书 添加合议组转文 添加原告意见陈述书  添加原告证据  添加第三人意见陈述
      * 添加法院行政诉讼传票  添加法院转送文件  添加上诉人意见陈述  添加上诉人证据  添加第三人意见  添加被上诉人意见
      * 添加法院转送文件  添加法院行政诉讼传票
+     *
      * @param vo
      * @return
      */
-    public Integer addReportAffairCase(ReportAffairCaseDTO vo){
+    public Integer addReportAffairCase(ReportAffairCaseDTO vo) {
         if (ObjectUtils.isEmpty(vo)) {
             throw new XiaoShiException("入参为空");
         }
@@ -774,6 +794,8 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
         //备注
         reportAffairDTO.setDescription(vo.getDescription());
         reportAffairDTO.setAssoCasePhaseId(vo.getAssoCasePhaseId());
+        reportAffairDTO.setBePosition(vo.getBePosition());
+        reportAffairDTO.setBeTime(vo.getBeTime());
         if (vo.getEvidenceRiskResponse() != null) {
             reportAffairDTO.setEvidenceRiskResponse(vo.getEvidenceRiskResponse().trim());
         }
@@ -783,7 +805,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
             throw new XiaoShiException("上传报告事务失败");
         }
         //2.同步报告官限
-        invalidRequestFileService.getCommonMethod(projectId,vo.getAssoCasePhaseId());
+        invalidRequestFileService.getCommonMethod(projectId, vo.getAssoCasePhaseId());
         //同步报告证据风险及措施
         this.updateEvidenceRiskResponse(projectId, vo.getAssoCasePhaseId());
         //3. 添加报告事务与文件关联
@@ -799,17 +821,18 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (vo.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, vo.getExtraEmailDTOS());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, vo.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
 
     /**
      * 修改案件文档
+     *
      * @param vo
      * @return
      */
-    public Integer updateReportAffairCase(ReportAffairCaseDTO vo){
+    public Integer updateReportAffairCase(ReportAffairCaseDTO vo) {
         if (ObjectUtils.isEmpty(vo)) {
             throw new XiaoShiException("入参为空");
         }
@@ -832,20 +855,23 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
         //备注
         reportAffair.setDescription(vo.getDescription());
         reportAffair.setAssoCasePhaseId(vo.getAssoCasePhaseId());
+        reportAffair.setBeTime(vo.getBeTime());
+        reportAffair.setBePosition(vo.getBePosition());
         if (vo.getEvidenceRiskResponse() != null) {
             reportAffair.setEvidenceRiskResponse(vo.getEvidenceRiskResponse().trim());
         }
         reportAffair.updateById();
-
         //同步报告官限
-        invalidRequestFileService.getCommonMethod(projectId,vo.getAssoCasePhaseId());
+        invalidRequestFileService.getCommonMethod(projectId, vo.getAssoCasePhaseId());
         //同步报告证据风险及措施
         this.updateEvidenceRiskResponse(projectId, vo.getAssoCasePhaseId());
         //3. 更新报告事务与文件关联
         List<String> fileGuids = vo.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (vo.getIfSendEmail()) {
-            sendReportMailService.finalSendEmail(projectId, fileGuids, vo.getExtraEmailDTOS());
+            ReportAffairDTO reportAffairDTO =new ReportAffairDTO();
+            reportAffairDTO.setAssoCasePhaseId(reportAffair.getAssoCasePhaseId());
+            sendReportMailService.finalSendEmail(projectId, fileGuids, vo.getExtraEmailDTOS(),reportAffairDTO);
         }
         return reportAffairId;
     }
@@ -866,4 +892,10 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
         }
     }
 
+    public void loadCourtSubpoenaVO(ReportAffairVO reportAffairVO) {
+        CourtSubpoenaVO courtSubpoenaVO = new CourtSubpoenaVO();
+        courtSubpoenaVO.setBeTime(reportAffairVO.getBeTime());
+        courtSubpoenaVO.setBePosition(reportAffairVO.getBePosition());
+        reportAffairVO.setCourtSubpoenaVO(courtSubpoenaVO);
+    }
 }

+ 20 - 9
src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimHistoryService.java

@@ -72,7 +72,7 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
         }
         else {
 
-             patentClaimHistory= new PatentClaimHistory();
+            patentClaimHistory= new PatentClaimHistory();
             BeanUtils.copyProperties(alterPatentClaimDTO, patentClaimHistory);
             patentClaimHistory.setOperateType(0);
             patentClaimHistory.setCreateId(personnelVO.getId());
@@ -127,8 +127,10 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
         QueryPatentClaimHistoryVO firstClaimVO = historyVOMap.get(1);
         //第二次修改
         QueryPatentClaimHistoryVO secondClaimVO = historyVOMap.get(2);
+        QueryPatentClaimHistoryVO  thirdClaimVO =historyVOMap.get(3);
         patentClaimHistoryVO.setFirstClaimVO(firstClaimVO);
         patentClaimHistoryVO.setSecondClaimVO(secondClaimVO);
+        patentClaimHistoryVO.setThirdClaimVO(thirdClaimVO);
         return patentClaimHistoryVO;
     }
 
@@ -158,8 +160,10 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
                 .orderByDesc(PatentClaimHistory::getCreateTime);
         List<PatentClaimHistory> patentClaimHistoryList = this.list(queryWrapper);
         if (!patentClaimHistoryList.isEmpty()) {
-            PatentClaimHistory patentClaimHistory1 = patentClaimHistoryList.stream().filter(item -> !item.getOperateType().equals(2) && item.getIfFirst().equals(true)).findFirst().orElse(null);
-            PatentClaimHistory patentClaimHistory2 = patentClaimHistoryList.stream().filter(item -> !item.getOperateType().equals(2) && item.getIfFirst().equals(false)).findFirst().orElse(null);
+            PatentClaimHistory patentClaimHistory1 = patentClaimHistoryList.stream().filter(item -> !item.getOperateType().equals(2) && item.getIfFirst().equals(1)).findFirst().orElse(null);
+            PatentClaimHistory patentClaimHistory2 = patentClaimHistoryList.stream().filter(item -> !item.getOperateType().equals(2) && item.getIfFirst().equals(0)).findFirst().orElse(null);
+            PatentClaimHistory patentClaimHistory3 = patentClaimHistoryList.stream().filter(item -> !item.getOperateType().equals(2) && item.getIfFirst().equals(2)).findFirst().orElse(null);
+
             if (patentClaimHistory1 != null) {
                 QueryPatentClaimHistoryVO firstClaimVO = new QueryPatentClaimHistoryVO();
                 firstClaimVO.setClaimHistoryId(patentClaimHistory1.getId());
@@ -172,6 +176,13 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
                 BeanUtils.copyProperties(patentClaimHistory2, secondClaimVO);
                 historyVOMap.put(2, secondClaimVO);
             }
+
+            if (patentClaimHistory3 != null) {
+                QueryPatentClaimHistoryVO thirdClaimVO = new QueryPatentClaimHistoryVO();
+                thirdClaimVO.setClaimHistoryId(patentClaimHistory3.getId());
+                BeanUtils.copyProperties(patentClaimHistory3, thirdClaimVO);
+                historyVOMap.put(3, thirdClaimVO);
+            }
         }
         return historyVOMap;
     }
@@ -183,7 +194,7 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
     public void deletePatentClaim(PatentClaimDTO patentClaimDTO) {
         // 参数定义
         Integer claimId = patentClaimDTO.getClaimId();
-        Boolean ifFirst = patentClaimDTO.getIfFirst();
+        Integer ifFirst = patentClaimDTO.getIfFirst();
         // 根据权要id查询所有原权要
         List<PatentClaim> patentClaims = this.getAllPatentClaims(claimId);
         // 获取所有原权要id
@@ -252,7 +263,7 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
                     .filter(item -> item.getSysOrder()!=null&&item.getSysOrder() > patentClaim.getSysOrder())
                     .collect(Collectors.toList());
             List<Integer> sortLaterIds = secondFilter.stream().map(PatentClaim::getId).collect(Collectors.toList());
-            if (ifFirst) {
+            if (ifFirst==0) {
                 //在比待删除这条权要排序大的那些权利要求中 找出在权要历史表中存在修改序号类型的
                 LambdaQueryWrapper<PatentClaimHistory> orderWrapper = new LambdaQueryWrapper<>();
                 orderWrapper.eq(PatentClaimHistory::getOperateType, 2)
@@ -291,14 +302,14 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
                 this.saveBatch(patentClaimHistories);
             } else {
                 LambdaQueryWrapper<PatentClaimHistory> queryWrapper = new LambdaQueryWrapper<>();
-                queryWrapper.eq(PatentClaimHistory::getIfFirst, !ifFirst)
+                queryWrapper.eq(PatentClaimHistory::getIfFirst, 0)
                         .eq(PatentClaimHistory::getClaimId, claimId)
                         .eq(PatentClaimHistory::getOperateType, 2);
                 PatentClaimHistory ifExistFirst = this.getOne(queryWrapper, false);
                 if (ifExistFirst != null) {
                     Integer order = ifExistFirst.getSysOrder();
                     LambdaQueryWrapper<PatentClaimHistory> queryWrapper1 = new LambdaQueryWrapper<>();
-                    queryWrapper1.eq(PatentClaimHistory::getIfFirst, !ifFirst)
+                    queryWrapper1.eq(PatentClaimHistory::getIfFirst, 0)
                             .in(PatentClaimHistory::getClaimId, sortLaterIds)
                             .eq(PatentClaimHistory::getOperateType, 2)
                             .ge(PatentClaimHistory::getSysOrder, order);
@@ -345,7 +356,7 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
                                     secondHistories.add(secondHistory);
                                 } else {
                                     LambdaQueryWrapper<PatentClaimHistory> queryWrapper3 = new LambdaQueryWrapper<>();
-                                    queryWrapper3.eq(PatentClaimHistory::getIfFirst, !ifFirst)
+                                    queryWrapper3.eq(PatentClaimHistory::getIfFirst, 0)
                                             .eq(PatentClaimHistory::getClaimId, item)
                                             .eq(PatentClaimHistory::getOperateType, 2);
                                     PatentClaimHistory thirdHistory = this.getOne(queryWrapper3, false);
@@ -362,7 +373,7 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
                                         PatentClaimHistory patentClaimHistory1 = new PatentClaimHistory();
                                         patentClaimHistory1.setClaimId(item);
                                         patentClaimHistory1.setCreateId(patentClaim1.getCreateId());
-                                        patentClaimHistory1.setIfFirst(false);
+                                        patentClaimHistory1.setIfFirst(0);
                                         patentClaimHistory1.setOperateType(2);
                                         patentClaimHistory1.setSysOrder(patentClaim1.getSysOrder() - 1);
                                         patentClaimHistories.add(patentClaimHistory1);

+ 124 - 55
src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimService.java

@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -135,7 +136,8 @@ public class PatentClaimService extends ServiceImpl<PatentClaimMapper, PatentCla
         //装载历史
         patentClaimVOS.forEach(item -> {
             LambdaQueryWrapper<PatentClaimHistory> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.eq(PatentClaimHistory::getClaimId, item.getId());
+            queryWrapper.eq(PatentClaimHistory::getClaimId, item.getId())
+                    .last(" order by FIELD(if_first,2,0,1)");
             List<PatentClaimHistory> histories = patentClaimHistoryService.list(queryWrapper);
             item.setPatentClaimHistoryList(histories);
         });
@@ -284,67 +286,134 @@ public class PatentClaimService extends ServiceImpl<PatentClaimMapper, PatentCla
         return patentClaim;
     }
 
-    public List<PatentClaimVO> getVersionPatentClaim(QueryClaimDTO queryClaimDTO) {
+//    public List<PatentClaimVO> getVersionPatentClaim(QueryClaimDTO queryClaimDTO) {
+//        List<PatentClaimVO> patentClaimVOS = new ArrayList<>();
+//        Integer projectId = queryClaimDTO.getProjectId();
+//        Integer editVersion = queryClaimDTO.getEditVersion();
+//        if (editVersion == null || editVersion != 2) {
+//            editVersion = 1;
+//        }
+//
+//        //根据projectId查询出所有权利要求
+//        LambdaQueryWrapper<PatentClaim> queryWrapper = new LambdaQueryWrapper<>();
+//        queryWrapper.eq(PatentClaim::getProjectId, projectId).orderByAsc(PatentClaim::getSysOrder);
+//        List<PatentClaim> patentClaims = this.list(queryWrapper);
+//        if (patentClaims == null || patentClaims.size() == 0) {
+//            return patentClaimVOS;
+//        }
+//        List<Integer> claimIds = patentClaims.stream().map(PatentClaim::getId).collect(Collectors.toList());
+//
+//        // 查询无效历史
+//        LambdaQueryWrapper<PatentClaimHistory> queryWrapper1 = new LambdaQueryWrapper<>();
+//        queryWrapper1.ne(PatentClaimHistory::getOperateType, 2).
+//                in(PatentClaimHistory::getClaimId, claimIds);
+//        //如果只查询版本1
+//        if (editVersion == 1) {
+//            queryWrapper1.eq(PatentClaimHistory::getIfFirst, true);
+//        }
+//        List<PatentClaimHistory> patentClaimHistoryList = patentClaimHistoryService.list(queryWrapper1);
+//
+//        Integer index = 0;
+//        //遍历权利要求
+//        for (PatentClaim patentClaim : patentClaims) {
+//            PatentClaimVO patentClaimVO = new PatentClaimVO();
+//            patentClaimVO.setContent(patentClaim.getContent());
+//            patentClaimVO.setClaimType(patentClaim.getClaimType());
+//            patentClaimVO.setSysOrder(index);
+//            patentClaimVO.setId(patentClaim.getId());
+//            List<PatentClaimHistory> calimHistories = patentClaimHistoryList.stream().filter(item -> item.getClaimId().equals(patentClaim.getId())).collect(Collectors.toList());
+//
+//            PatentClaimHistory deleteClaimHistory = calimHistories.stream().filter(item -> item.getOperateType().equals(1)).findFirst().orElse(null);
+//            //查看是否有删除的历史记录,如果有则直接跳过
+//            if (deleteClaimHistory != null) {
+//                continue;
+//            }
+//
+//            List<PatentClaimHistory> editClaimHistories = calimHistories.stream().filter(item -> item.getOperateType().equals(0)).collect(Collectors.toList());
+//            if (editVersion == 1) {
+//                if (editClaimHistories != null && editClaimHistories.size() > 0) {
+//                    patentClaimVO.setContent(editClaimHistories.get(0).getContent());
+//                }
+//            } else if (editVersion == 2) {
+//                PatentClaimHistory editClaimHistory = editClaimHistories.stream().filter(item -> item.getIfFirst().equals(false)).findFirst().orElse(null);
+//                if (editClaimHistory == null) {
+//                    editClaimHistory = editClaimHistories.stream().filter(item -> item.getIfFirst().equals(true)).findFirst().orElse(null);
+//                }
+//                if (editClaimHistory != null) {
+//                    patentClaimVO.setContent(editClaimHistory.getContent());
+//                }
+//            }
+//            patentClaimVOS.add(patentClaimVO);
+//            index++;
+//        }
+//
+//        return patentClaimVOS;
+//    }
+
+    /**
+     * 查询带历史的权要
+     *
+     * @param claimIds
+     * @return
+     */
+    public List<PatentClaimVO> getPatentClaimVOWithHistory(List<Integer> claimIds) {
         List<PatentClaimVO> patentClaimVOS = new ArrayList<>();
-        Integer projectId = queryClaimDTO.getProjectId();
-        Integer editVersion = queryClaimDTO.getEditVersion();
-        if (editVersion == null || editVersion != 2) {
-            editVersion = 1;
-        }
-
-        //根据projectId查询出所有权利要求
         LambdaQueryWrapper<PatentClaim> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(PatentClaim::getProjectId, projectId).orderByAsc(PatentClaim::getSysOrder);
+        queryWrapper.in(PatentClaim::getId, claimIds);
         List<PatentClaim> patentClaims = this.list(queryWrapper);
-        if (patentClaims == null || patentClaims.size() == 0) {
-            return patentClaimVOS;
-        }
-        List<Integer> claimIds = patentClaims.stream().map(PatentClaim::getId).collect(Collectors.toList());
-
-        // 查询无效历史
-        LambdaQueryWrapper<PatentClaimHistory> queryWrapper1 = new LambdaQueryWrapper<>();
-        queryWrapper1.ne(PatentClaimHistory::getOperateType, 2).
-                in(PatentClaimHistory::getClaimId, claimIds);
-        //如果只查询版本1
-        if (editVersion == 1) {
-            queryWrapper1.eq(PatentClaimHistory::getIfFirst, true);
-        }
-        List<PatentClaimHistory> patentClaimHistoryList = patentClaimHistoryService.list(queryWrapper1);
-
-        Integer index = 0;
-        //遍历权利要求
-        for (PatentClaim patentClaim : patentClaims) {
+        patentClaims.forEach(item -> {
             PatentClaimVO patentClaimVO = new PatentClaimVO();
-            patentClaimVO.setContent(patentClaim.getContent());
-            patentClaimVO.setClaimType(patentClaim.getClaimType());
-            patentClaimVO.setSysOrder(index);
-            patentClaimVO.setId(patentClaim.getId());
-            List<PatentClaimHistory> calimHistories = patentClaimHistoryList.stream().filter(item -> item.getClaimId().equals(patentClaim.getId())).collect(Collectors.toList());
-
-            PatentClaimHistory deleteClaimHistory = calimHistories.stream().filter(item -> item.getOperateType().equals(1)).findFirst().orElse(null);
-            //查看是否有删除的历史记录,如果有则直接跳过
-            if (deleteClaimHistory != null) {
-                continue;
-            }
+            LambdaQueryWrapper<PatentClaimHistory> queryWrapper2 = new LambdaQueryWrapper<>();
+            queryWrapper2.eq(PatentClaimHistory::getClaimId, item.getId())
+                    .orderByDesc(PatentClaimHistory::getIfFirst);
+            List<PatentClaimHistory> histories = patentClaimHistoryService.list(queryWrapper2);
+            BeanUtils.copyProperties(item, patentClaimVO);
+            BeanUtils.copyProperties(item, patentClaimVO);
+            patentClaimVO.setPatentClaimHistoryList(histories);
+            patentClaimVOS.add(patentClaimVO);
 
-            List<PatentClaimHistory> editClaimHistories = calimHistories.stream().filter(item -> item.getOperateType().equals(0)).collect(Collectors.toList());
-            if (editVersion == 1) {
-                if (editClaimHistories != null && editClaimHistories.size() > 0) {
-                    patentClaimVO.setContent(editClaimHistories.get(0).getContent());
-                }
-            } else if (editVersion == 2) {
-                PatentClaimHistory editClaimHistory = editClaimHistories.stream().filter(item -> item.getIfFirst().equals(false)).findFirst().orElse(null);
-                if (editClaimHistory == null) {
-                    editClaimHistory = editClaimHistories.stream().filter(item -> item.getIfFirst().equals(true)).findFirst().orElse(null);
-                }
-                if (editClaimHistory != null) {
-                    patentClaimVO.setContent(editClaimHistory.getContent());
+        });
+
+        return patentClaimVOS;
+
+    }
+
+    public List<PatentClaimVO> getVersionPatentClaim(QueryClaimDTO queryClaimDTO) {
+        List<PatentClaimVO> rePatentCalimVOs=new ArrayList<>();
+        List<Integer> temList = Arrays.asList(1, 0, 2);
+        List<PatentClaimVO> patentClaimVOS = this.getPatentClaimVO(queryClaimDTO);
+        Integer maxCount = -1;
+        for (PatentClaimVO item : patentClaimVOS) {
+            List<PatentClaimHistory> patentClaimHistoryList = item.getPatentClaimHistoryList();
+            if (patentClaimHistoryList.size() != 0) {
+                Integer order = patentClaimHistoryList.get(0).getIfFirst();
+                Integer index = temList.indexOf(order);
+                if (index > maxCount) {
+                    maxCount = index;
                 }
             }
-            patentClaimVOS.add(patentClaimVO);
-            index++;
         }
-
-        return patentClaimVOS;
+        Integer type = null;
+        if (maxCount != -1) {
+            type= temList.get(maxCount);
+        }
+        for (PatentClaimVO item : patentClaimVOS) {
+            List<PatentClaimHistory> patentClaimHistoryList = item.getPatentClaimHistoryList();
+                   if(patentClaimHistoryList==null){
+                       patentClaimHistoryList =new ArrayList<>();
+                   }
+                   if(type!=null){
+                       Integer temType=type;
+                       PatentClaimHistory patentClaimHistory =patentClaimHistoryList.stream().filter(tem->tem.getIfFirst().equals(temType)).findFirst().orElse(null);
+                       if(patentClaimHistory!=null&&patentClaimHistory.getContent()!=null&&!patentClaimHistory.getContent().trim().equals("")){
+                           item.setContent(patentClaimHistory.getContent());
+                           rePatentCalimVOs.add(item);
+                       }
+                   }
+                   else {
+                       rePatentCalimVOs.add(item);
+                   }
+        }
+        return rePatentCalimVOs;
     }
 }

+ 44 - 30
src/main/java/cn/cslg/pas/service/report/MatchCasePersonService.java

@@ -67,6 +67,9 @@ public class MatchCasePersonService extends ServiceImpl<MatchCasePersonMapper, M
     public Integer updateMatchCasePerson(UpdateMatchCasePersonDTO updateMatchCasePersonDTO) {
         String name = updateMatchCasePersonDTO.getName();
         String email = updateMatchCasePersonDTO.getEmail();
+        if (email!=null&&email.trim().equals("")) {
+            email = null;
+        }
         Integer assoAccountId = updateMatchCasePersonDTO.getAssoAccountId();
         String remark = updateMatchCasePersonDTO.getRemark();
 
@@ -80,42 +83,53 @@ public class MatchCasePersonService extends ServiceImpl<MatchCasePersonMapper, M
         // 邮箱传入 即先添加ipr人员 再与报告关联
         // 判断邮箱是否存在
         // 邮箱不为空 则去新增ipr人员 并判断邮箱是否存在
+        if (type != 2) {
+            if (email == null) {
+                throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "邮箱不能为空");
+            }
+        }
         if (email != null) {
             Boolean isValid = this.isValidEmail(email);
             if (!isValid) {
                 throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "邮箱格式不正确");
             }
+        }
 
-            LambdaQueryWrapper<IprPerson> queryWrapper = new LambdaQueryWrapper<>();
+        LambdaQueryWrapper<IprPerson> queryWrapper = new LambdaQueryWrapper<>();
+        if (email != null) {
             queryWrapper.eq(IprPerson::getEmail, email);
-            queryWrapper.eq(IprPerson::getTenantId, tenantId);
-            IprPerson iprPerson = iprPersonService.getOne(queryWrapper, false);
-            if (iprPerson != null) {
-                if (!StringUtils.equals(name.trim(), iprPerson.getName().trim()) || ObjectUtils.notEqual(assoAccountId, iprPerson.getAssoAccountId())) {
-                    throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "禁止修改已存在邮箱的相关信息!请前往联系邮箱处");
+        } else {
+            queryWrapper.eq(IprPerson::getName, name);
+        }
+        queryWrapper.eq(IprPerson::getTenantId, tenantId);
+        IprPerson iprPerson = iprPersonService.getOne(queryWrapper, false);
+        if (iprPerson != null) {
+
+            if (!StringUtils.equals(name.trim(), iprPerson.getName().trim()) || ObjectUtils.notEqual(assoAccountId, iprPerson.getAssoAccountId())) {
+                if(type==2&&email==null){
+                    throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "代理所已存在!");
+
                 }
-                //邮箱存在
-                iprPersonId = iprPerson.getId();
-                assoId = iprPerson.getAssoAccountId();
-
-            } else {
-                IprPerson newIprPerson = new IprPerson();
-                newIprPerson.setName(updateMatchCasePersonDTO.getName());
-                newIprPerson.setEmail(email);
-
-                newIprPerson.setType(type);
-                newIprPerson.setAssoAccountId(assoAccountId);
-                newIprPerson.setRemark(remark);
-
-                newIprPerson.setIfDefault(false);
-                newIprPerson.setCreateId(personId);
-                newIprPerson.setTenantId(tenantId);
-                newIprPerson.insert();
-                iprPersonId = newIprPerson.getId();
+                throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "禁止修改已存在邮箱的相关信息!请前往联系邮箱处");
             }
+            //邮箱存在
+            iprPersonId = iprPerson.getId();
+            assoId = iprPerson.getAssoAccountId();
+
         } else {
-            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "邮箱不能为空");
+            IprPerson newIprPerson = new IprPerson();
+            newIprPerson.setName(updateMatchCasePersonDTO.getName());
+            newIprPerson.setEmail(email);
+            newIprPerson.setType(type);
+            newIprPerson.setAssoAccountId(assoAccountId);
+            newIprPerson.setRemark(remark);
+            newIprPerson.setIfDefault(false);
+            newIprPerson.setCreateId(personId);
+            newIprPerson.setTenantId(tenantId);
+            newIprPerson.insert();
+            iprPersonId = newIprPerson.getId();
         }
+
         updateMatchCasePersonDTO.setName(name);
         updateMatchCasePersonDTO.setType(type);
         updateMatchCasePersonDTO.setIprPersonId(iprPersonId);
@@ -123,7 +137,9 @@ public class MatchCasePersonService extends ServiceImpl<MatchCasePersonMapper, M
         if (type != null) {
             this.updateReport(updateMatchCasePersonDTO.getReportId(), type);
         }
-        sendReportMailService.sendMatchCasePersonMail(matchCasePerson.getProjectId(), name, email);
+        if (email != null) {
+            sendReportMailService.sendMatchCasePersonMail(matchCasePerson.getProjectId(), name, email);
+        }
         return matchCasePerson.getId();
     }
 
@@ -146,7 +162,7 @@ public class MatchCasePersonService extends ServiceImpl<MatchCasePersonMapper, M
 
             LambdaQueryWrapper<ReportProject> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.eq(ReportProject::getProjectId, projectId);
-            ReportProject reportProject = reportProjectService.getOne(queryWrapper,false);
+            ReportProject reportProject = reportProjectService.getOne(queryWrapper, false);
             if (reportProject != null) {
                 if (type.equals(2)) { // 代理所
                     Integer actType = reportProject.getActType();
@@ -293,7 +309,7 @@ public class MatchCasePersonService extends ServiceImpl<MatchCasePersonMapper, M
                         // 获取Integer类型的关联id
                         Integer targetId = queryMatchCasePersonVO.getAssoAccountId();
                         // 当目标id为空时 直接跳过匹配
-                        if (targetId == null)  return false;
+                        if (targetId == null) return false;
                         // 将Integer转换为String进行比较
                         return String.valueOf(targetId).equals(item.getId());
                     })
@@ -354,8 +370,6 @@ public class MatchCasePersonService extends ServiceImpl<MatchCasePersonMapper, M
 //    }
 
 
-
-
 }
 
 

+ 23 - 6
src/main/java/cn/cslg/pas/service/report/SendReportMailService.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.service.report;
 
+import cn.cslg.pas.common.dto.business.ReportAffairDTO;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.SystemFile;
 import cn.cslg.pas.common.model.report.ExtraEmailDTO;
@@ -7,6 +8,7 @@ import cn.cslg.pas.common.model.report.MailMessageDTO;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.domain.business.Project;
+import cn.cslg.pas.domain.business.ReportAffairCasePhase;
 import cn.cslg.pas.domain.business.ReportProject;
 import cn.cslg.pas.domain.report.AssoIprReportType;
 import cn.cslg.pas.domain.report.IprPerson;
@@ -14,6 +16,7 @@ import cn.cslg.pas.domain.report.MatchCasePerson;
 import cn.cslg.pas.exception.ExceptionEnum;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.service.MailSendService;
+import cn.cslg.pas.service.ReportAffairCasePhaseService;
 import cn.cslg.pas.service.business.ProjectService;
 import cn.cslg.pas.service.business.ReportProjectService;
 import cn.cslg.pas.service.common.FileManagerService;
@@ -43,13 +46,23 @@ public class SendReportMailService {
     private final CacheUtils cacheUtils;
     private final ReportProjectService reportProjectService;
     private final MailSendService mailSendService;
+    private final ReportAffairCasePhaseService affairCasePhaseService;
 
     //装载所需要的数据
-    public MailMessageDTO loadingData(Integer projectId, List<String> fileGuids) {
+    public MailMessageDTO loadingData(Integer projectId, List<String> fileGuids, ReportAffairDTO reportAffairDTO) {
         MailMessageDTO mailMessageDTO = new MailMessageDTO();
         List<String> names = new ArrayList<>();
         List<String> emails = new ArrayList<>();
-
+        String documentType = reportAffairDTO.getDocumentType();
+        Integer assoCaseId = reportAffairDTO.getAssoCasePhaseId();
+        if (documentType == null || documentType.trim().equals("")) {
+            if (assoCaseId != null) {
+                ReportAffairCasePhase reportAffairCasePhase = affairCasePhaseService.queryAssoCasePhase(assoCaseId);
+                if (reportAffairCasePhase != null) {
+                    documentType = reportAffairCasePhase.getDocumentType();
+                }
+            }
+        }
         PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
         if (personnelVO == null) {
             throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "租户查询错误");
@@ -130,7 +143,7 @@ public class SendReportMailService {
                 systemFiles = JSONObject.parseArray(res, SystemFile.class);
                 if (!systemFiles.isEmpty()) {
                     List<String> fileNames = systemFiles.stream().map(SystemFile::getOriginalName).collect(Collectors.toList());
-                    String fileName = this.appendStr(fileNames);
+                    String fileName = this.appendStr(fileNames, documentType);
                     mailMessageDTO.setFileName(fileName);
                     mailMessageDTO.setFileGuids(fileGuids);
                 }
@@ -148,12 +161,16 @@ public class SendReportMailService {
 
     /**
      * 拼接字符串
+     *
      * @param strings
      * @return
      */
-    public String appendStr(List<String> strings) {
+    public String appendStr(List<String> strings, String documentType) {
         StringBuilder result = new StringBuilder();
         for (String str : strings) {
+            if (documentType != null && !documentType.trim().equals("")) {
+                str = documentType + "-" + str;
+            }
             int lastDotIndex = str.lastIndexOf(".");
             if (lastDotIndex != -1) {
                 String subResult = str.substring(0, lastDotIndex);
@@ -174,8 +191,8 @@ public class SendReportMailService {
         return name + " <" + email + ">";
     }
 
-    public void finalSendEmail(Integer projectId, List<String> fileGuids, List<ExtraEmailDTO> extraEmailDTOS) {
-        MailMessageDTO mailMessageDTO = this.loadingData(projectId, fileGuids);
+    public void finalSendEmail(Integer projectId, List<String> fileGuids, List<ExtraEmailDTO> extraEmailDTOS, ReportAffairDTO reportAffairDTO) {
+        MailMessageDTO mailMessageDTO = this.loadingData(projectId, fileGuids, reportAffairDTO);
         if (mailMessageDTO != null) {
             mailSendService.sendReportEmail(mailMessageDTO);
             if (extraEmailDTOS != null && !extraEmailDTOS.isEmpty()) {

BIN
src/main/resources/file/reportTemple/patent.docx


+ 22 - 0
src/main/resources/jsons/claimManage.json

@@ -40,5 +40,27 @@
     "ifShow":"true",
     "ifAsCondition": "false",
     "defaultHidden": "true"
+  },
+  {"name":"第三次修改后权要内容",
+    "type":"String",
+    "value":"historyContent3",
+    "field":"historyContent3",
+    "sqlField": "",
+    "ifSearch":"false",
+    "ifGroup": "false",
+    "ifShow":"true",
+    "ifAsCondition": "false",
+    "defaultHidden": "true"
+  },
+  {"name":"第三次修改说明",
+    "type":"String",
+    "value":"historyDescription3",
+    "field":"historyDescription3",
+    "sqlField": "",
+    "ifSearch":"false",
+    "ifGroup": "false",
+    "ifShow":"true",
+    "ifAsCondition": "false",
+    "defaultHidden": "true"
   }
 ]

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

@@ -105,7 +105,7 @@ public class ProjectTaskServiceTests {
         alterPatentClaimDTO.setClaimId(74);
         alterPatentClaimDTO.setContent("第一次修改后文本");
         alterPatentClaimDTO.setDescription("第一次测试描述");
-        alterPatentClaimDTO.setIfFirst(true);
+        alterPatentClaimDTO.setIfFirst(0);
         patentClaimHistoryService.alterPatentClaim(alterPatentClaimDTO);
     }