xiexiang преди 9 месеца
родител
ревизия
24b6bc2d71
променени са 27 файла, в които са добавени 144 реда и са изтрити 78 реда
  1. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddAdminProceedDTO.java
  2. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddClaimHistoryDTO.java
  3. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddInvalidDecisionFileDTO.java
  4. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddInvalidRequestFileDTO.java
  5. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddJudgmentDTO.java
  6. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddOralTrailDTO.java
  7. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddOtherDocumentsDTO.java
  8. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddStateOpinionDTO.java
  9. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddSupplyEvidenceDTO.java
  10. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateAdminProceedDTO.java
  11. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateClaimHistoryDTO.java
  12. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateInvalidDecisionFileDTO.java
  13. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateInvalidRequestFileDTO.java
  14. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateJudgmentDTO.java
  15. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateOralTrailDTO.java
  16. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateOtherDocumentsDTO.java
  17. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateStateOpinionDTO.java
  18. 3 0
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateSupplyEvidenceDTO.java
  19. 13 0
      src/main/java/cn/cslg/pas/common/model/report/ExtraEmailDTO.java
  20. 5 0
      src/main/java/cn/cslg/pas/service/MailSendService.java
  21. 6 16
      src/main/java/cn/cslg/pas/service/business/AdminProceedService.java
  22. 4 8
      src/main/java/cn/cslg/pas/service/business/InvalidDecisionFileService.java
  23. 3 8
      src/main/java/cn/cslg/pas/service/business/InvalidRequestFileService.java
  24. 4 8
      src/main/java/cn/cslg/pas/service/business/OralTrailService.java
  25. 6 9
      src/main/java/cn/cslg/pas/service/business/OtherDocumentsService.java
  26. 7 24
      src/main/java/cn/cslg/pas/service/business/ReportAffairService.java
  27. 42 5
      src/main/java/cn/cslg/pas/service/report/SendReportMailService.java

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddAdminProceedDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
@@ -27,4 +28,6 @@ public class AddAdminProceedDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddClaimHistoryDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -25,4 +26,6 @@ public class AddClaimHistoryDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddInvalidDecisionFileDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import cn.cslg.pas.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -46,4 +47,6 @@ public class AddInvalidDecisionFileDTO {
 
     private Boolean ifSendEmail;
 
+    private List<ExtraEmailDTO> extraEmailDTOS;
+
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddInvalidRequestFileDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -28,4 +29,6 @@ public class AddInvalidRequestFileDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddJudgmentDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -27,4 +28,6 @@ public class AddJudgmentDTO {
     private String conclusion;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddOralTrailDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -31,4 +32,6 @@ public class AddOralTrailDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddOtherDocumentsDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -26,4 +27,6 @@ public class AddOtherDocumentsDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddStateOpinionDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -24,4 +25,6 @@ public class AddStateOpinionDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddSupplyEvidenceDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -25,4 +26,6 @@ public class AddSupplyEvidenceDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateAdminProceedDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -27,4 +28,6 @@ public class UpdateAdminProceedDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateClaimHistoryDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -26,4 +27,6 @@ public class UpdateClaimHistoryDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateInvalidDecisionFileDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -44,4 +45,6 @@ public class UpdateInvalidDecisionFileDTO {
 
     private Boolean ifSendEmail;
 
+    private List<ExtraEmailDTO> extraEmailDTOS;
+
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateInvalidRequestFileDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -30,4 +31,6 @@ public class UpdateInvalidRequestFileDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateJudgmentDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -28,4 +29,6 @@ public class UpdateJudgmentDTO {
     private String conclusion;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateOralTrailDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -32,4 +33,6 @@ public class UpdateOralTrailDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateOtherDocumentsDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -27,4 +28,6 @@ public class UpdateOtherDocumentsDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateStateOpinionDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -25,4 +26,6 @@ public class UpdateStateOpinionDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateSupplyEvidenceDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.invalidDTO;
 
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -26,4 +27,6 @@ public class UpdateSupplyEvidenceDTO {
     private String description;
 
     private Boolean ifSendEmail;
+
+    private List<ExtraEmailDTO> extraEmailDTOS;
 }

+ 13 - 0
src/main/java/cn/cslg/pas/common/model/report/ExtraEmailDTO.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.common.model.report;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2025/1/2
+ */
+@Data
+public class ExtraEmailDTO {
+    private String name;
+    private String email;
+}

+ 5 - 0
src/main/java/cn/cslg/pas/service/MailSendService.java

@@ -276,6 +276,11 @@ public class MailSendService {
             map.put("img", "/logo.png");
             String[] emailArray = emails.toArray(new String[0]);
             map.put("emails", emailArray);
+            List<String> fileGuids = mailMessageDTO.getFileGuids();
+            if (fileGuids != null && !fileGuids.isEmpty()) {
+                String[] filesArray = fileGuids.toArray(new String[0]);
+                map.put("files", filesArray);
+            }
             map.put("value1", mailMessageDTO.getName());
             map.put("value2", mailMessageDTO.getTenantName());
             map.put("value3", mailMessageDTO.getFileName());

+ 6 - 16
src/main/java/cn/cslg/pas/service/business/AdminProceedService.java

@@ -5,6 +5,7 @@ import cn.cslg.pas.common.dto.invalidDTO.AddAdminProceedDTO;
 import cn.cslg.pas.common.dto.invalidDTO.AddJudgmentDTO;
 import cn.cslg.pas.common.dto.invalidDTO.UpdateAdminProceedDTO;
 import cn.cslg.pas.common.dto.invalidDTO.UpdateJudgmentDTO;
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import cn.cslg.pas.common.model.report.MailMessageDTO;
 import cn.cslg.pas.common.vo.invalidVO.AdminProceedVO;
 import cn.cslg.pas.common.vo.invalidVO.JudgementVO;
@@ -26,6 +27,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Author xiexiang
@@ -94,10 +96,7 @@ public class AdminProceedService extends ServiceImpl<AdminProceedMapper, AdminPr
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addDto.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addDto.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -158,10 +157,7 @@ public class AdminProceedService extends ServiceImpl<AdminProceedMapper, AdminPr
         List<String> fileGuids = updateDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -213,10 +209,7 @@ public class AdminProceedService extends ServiceImpl<AdminProceedMapper, AdminPr
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addJudgmentDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addJudgmentDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -261,10 +254,7 @@ public class AdminProceedService extends ServiceImpl<AdminProceedMapper, AdminPr
         List<String> fileGuids = updateJudgmentDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateJudgmentDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateJudgmentDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }

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

@@ -3,6 +3,7 @@ package cn.cslg.pas.service.business;
 import cn.cslg.pas.common.dto.business.ReportAffairDTO;
 import cn.cslg.pas.common.dto.invalidDTO.AddInvalidDecisionFileDTO;
 import cn.cslg.pas.common.dto.invalidDTO.UpdateInvalidDecisionFileDTO;
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import cn.cslg.pas.common.model.report.MailMessageDTO;
 import cn.cslg.pas.common.vo.invalidVO.InvalidDecisionFileVO;
 import cn.cslg.pas.common.vo.invalidVO.OralTrailVO;
@@ -23,6 +24,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Author xiexiang
@@ -86,10 +88,7 @@ public class InvalidDecisionFileService extends ServiceImpl<InvalidDecisionFileM
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addInvalidDecisionFileDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addInvalidDecisionFileDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -143,10 +142,7 @@ public class InvalidDecisionFileService extends ServiceImpl<InvalidDecisionFileM
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (updateInvalidDecisionFileDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateInvalidDecisionFileDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }

+ 3 - 8
src/main/java/cn/cslg/pas/service/business/InvalidRequestFileService.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.service.business;
 import cn.cslg.pas.common.dto.business.ReportAffairDTO;
 import cn.cslg.pas.common.dto.invalidDTO.AddInvalidRequestFileDTO;
 import cn.cslg.pas.common.dto.invalidDTO.UpdateInvalidRequestFileDTO;
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import cn.cslg.pas.common.model.report.MailMessageDTO;
 import cn.cslg.pas.common.vo.invalidVO.InvalidRequestFileVO;
 import cn.cslg.pas.domain.business.AssoReportAffairFile;
@@ -89,10 +90,7 @@ public class InvalidRequestFileService extends ServiceImpl<InvalidRequestFileMap
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addInvalidRequestFileDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addInvalidRequestFileDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -146,10 +144,7 @@ public class InvalidRequestFileService extends ServiceImpl<InvalidRequestFileMap
         List<String> fileGuids = updateInvalidRequestFileDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateInvalidRequestFileDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateInvalidRequestFileDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }

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

@@ -3,6 +3,7 @@ package cn.cslg.pas.service.business;
 import cn.cslg.pas.common.dto.business.ReportAffairDTO;
 import cn.cslg.pas.common.dto.invalidDTO.AddOralTrailDTO;
 import cn.cslg.pas.common.dto.invalidDTO.UpdateOralTrailDTO;
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import cn.cslg.pas.common.model.report.MailMessageDTO;
 import cn.cslg.pas.common.vo.invalidVO.InvalidRequestFileVO;
 import cn.cslg.pas.common.vo.invalidVO.OralTrailVO;
@@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 口审记录Service
@@ -88,10 +90,7 @@ public class OralTrailService extends ServiceImpl<OralTrailMapper, OralTrail> {
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addOralTrailDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addOralTrailDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -149,10 +148,7 @@ public class OralTrailService extends ServiceImpl<OralTrailMapper, OralTrail> {
         List<String> fileGuids = updateOralTrailDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateOralTrailDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateOralTrailDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }

+ 6 - 9
src/main/java/cn/cslg/pas/service/business/OtherDocumentsService.java

@@ -2,6 +2,7 @@ package cn.cslg.pas.service.business;
 
 import cn.cslg.pas.common.dto.business.ReportAffairDTO;
 import cn.cslg.pas.common.dto.invalidDTO.*;
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import cn.cslg.pas.common.model.report.MailMessageDTO;
 import cn.cslg.pas.common.vo.invalidVO.InvalidDecisionFileVO;
 import cn.cslg.pas.common.vo.invalidVO.OralTrailVO;
@@ -20,6 +21,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 其他文档
@@ -84,11 +86,9 @@ public class OtherDocumentsService extends ServiceImpl<OtherDocumentsMapper, Oth
                 assoReportAffairFiles.add(assoReportAffairFile);
             });
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
-        }
-        if (addOtherDocumentsDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
+
+            if (addOtherDocumentsDTO.getIfSendEmail()) {
+                sendReportMailService.finalSendEmail(projectId, fileGuids, addOtherDocumentsDTO.getExtraEmailDTOS());
             }
         }
         return reportAffairId;
@@ -143,10 +143,7 @@ public class OtherDocumentsService extends ServiceImpl<OtherDocumentsMapper, Oth
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (updateOtherDocumentsDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateOtherDocumentsDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }

+ 7 - 24
src/main/java/cn/cslg/pas/service/business/ReportAffairService.java

@@ -5,6 +5,7 @@ import cn.cslg.pas.common.dto.invalidDTO.*;
 import cn.cslg.pas.common.model.cronModel.Personnel;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.SystemFile;
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import cn.cslg.pas.common.model.report.MailMessageDTO;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
@@ -340,10 +341,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addStateOpinionDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addStateOpinionDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -377,10 +375,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
         List<String> fileGuids = updateStateOpinionDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateStateOpinionDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateStateOpinionDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -460,10 +455,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addClaimHistoryDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addClaimHistoryDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -497,10 +489,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
         List<String> fileGuids = updateClaimHistoryDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateClaimHistoryDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateClaimHistoryDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -545,10 +534,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
         if (addSupplyEvidenceDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, addSupplyEvidenceDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }
@@ -582,10 +568,7 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
         List<String> fileGuids = updateSupplyEvidenceDTO.getFileGuids();
         assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
         if (updateSupplyEvidenceDTO.getIfSendEmail()) {
-            MailMessageDTO mailMessageDTO = sendReportMailService.loadingData(7, projectId, fileGuids);
-            if (mailMessageDTO != null) {
-                mailSendService.sendReportEmail(mailMessageDTO);
-            }
+            sendReportMailService.finalSendEmail(projectId, fileGuids, updateSupplyEvidenceDTO.getExtraEmailDTOS());
         }
         return reportAffairId;
     }

+ 42 - 5
src/main/java/cn/cslg/pas/service/report/SendReportMailService.java

@@ -2,16 +2,20 @@ package cn.cslg.pas.service.report;
 
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.SystemFile;
+import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 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.ReportProject;
 import cn.cslg.pas.domain.report.AssoIprReportType;
 import cn.cslg.pas.domain.report.IprPerson;
 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.business.ProjectService;
+import cn.cslg.pas.service.business.ReportProjectService;
 import cn.cslg.pas.service.common.FileManagerService;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -37,9 +41,11 @@ public class SendReportMailService {
     private final FileManagerService fileManagerService;
     private final LoginUtils loginUtils;
     private final CacheUtils cacheUtils;
+    private final ReportProjectService reportProjectService;
+    private final MailSendService mailSendService;
 
     //装载所需要的数据
-    public MailMessageDTO loadingData(Integer reportType, Integer projectId, List<String> fileGuids) {
+    public MailMessageDTO loadingData(Integer projectId, List<String> fileGuids) {
         MailMessageDTO mailMessageDTO = new MailMessageDTO();
         List<String> names = new ArrayList<>();
         List<String> emails = new ArrayList<>();
@@ -63,11 +69,18 @@ public class SendReportMailService {
             }
             IprPerson iprPerson = iprPersonService.getById(matchCasePerson.getIprPersonId());
             names.add(iprPerson.getName());
-            emails.add(iprPerson.getEmail());
+            emails.add(this.loadEmail(iprPerson.getName(), iprPerson.getEmail()));
         }
 
 
         // 根据报告类型查询默认邮箱发送人员
+        LambdaQueryWrapper<ReportProject> reportWrapper = new LambdaQueryWrapper<>();
+        reportWrapper.eq(ReportProject::getProjectId, projectId);
+        ReportProject reportProject = reportProjectService.getOne(reportWrapper, false);
+        if (reportProject == null) {
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "报告查询错误");
+        }
+        Integer reportType = reportProject.getReportType();
         LambdaQueryWrapper<AssoIprReportType> queryWrapper2 = new LambdaQueryWrapper<>();
         queryWrapper2.eq(AssoIprReportType::getReportType, reportType);
         List<AssoIprReportType> assoIprReportTypes = assoIprReportTypeService.list(queryWrapper2);
@@ -78,11 +91,13 @@ public class SendReportMailService {
             iprPersonIds.addAll(defaultIprPersonIds);
             LambdaQueryWrapper<IprPerson> queryWrapper3 = new LambdaQueryWrapper<>();
             queryWrapper3.in(IprPerson::getId, iprPersonIds)
-                    .eq(IprPerson::getIfDefault, 1);
+                    .eq(IprPerson::getIfDefault, true);
             List<IprPerson> iprPersonList = iprPersonService.list(queryWrapper3);
             if (iprPersonList != null && !iprPersonList.isEmpty()) {
-                names.addAll(iprPersonList.stream().map(IprPerson::getName).collect(Collectors.toList()));
-                emails.addAll(iprPersonList.stream().map(IprPerson::getEmail).collect(Collectors.toList()));
+                for (IprPerson iprPerson : iprPersonList) {
+                    names.add(iprPerson.getName());
+                    emails.add(this.loadEmail(iprPerson.getName(), iprPerson.getEmail()));
+                }
             }
         }
         names = names.stream().distinct().collect(Collectors.toList());
@@ -101,6 +116,7 @@ public class SendReportMailService {
                     List<String> fileNames = systemFiles.stream().map(SystemFile::getOriginalName).collect(Collectors.toList());
                     String fileName = this.appendStr(fileNames);
                     mailMessageDTO.setFileName(fileName);
+                    mailMessageDTO.setFileGuids(fileGuids);
                 }
             } catch (Exception e) {
                 throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "文件查询错误");
@@ -133,4 +149,25 @@ public class SendReportMailService {
         }
         return result.toString();
     }
+
+
+    public String loadEmail(String name, String email) {
+        return name + " <" + email + ">";
+    }
+
+
+    public void finalSendEmail(Integer projectId, List<String> fileGuids, List<ExtraEmailDTO> extraEmailDTOS) {
+        MailMessageDTO mailMessageDTO = this.loadingData(projectId, fileGuids);
+        if (mailMessageDTO != null) {
+            mailSendService.sendReportEmail(mailMessageDTO);
+            if (extraEmailDTOS != null && !extraEmailDTOS.isEmpty()) {
+                List<String> emails = new ArrayList<>();
+                for (ExtraEmailDTO extraEmailDTO : extraEmailDTOS) {
+                    emails.add(this.loadEmail(extraEmailDTO.getName(), extraEmailDTO.getEmail()));
+                }
+                mailMessageDTO.setEmails(emails);
+                mailSendService.sendReportEmail(mailMessageDTO);
+            }
+        }
+    }
 }