Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

xiexiang před 6 měsíci
rodič
revize
e3343e0a7d

+ 4 - 4
src/main/java/cn/cslg/pas/common/config/WebSocketConfig.java

@@ -6,8 +6,8 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter;
 
 @Configuration
 public class WebSocketConfig {
-//    @Bean
-//    public ServerEndpointExporter serverEndpointExporter() {
-//        return new ServerEndpointExporter();
-//    }
+    @Bean
+    public ServerEndpointExporter serverEndpointExporter() {
+        return new ServerEndpointExporter();
+    }
 }

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

@@ -60,7 +60,7 @@ public class UpdateReportProjectDTO {
     @Schema(description = "结论论述")
     private String cronDescription;
     @Schema(description = "事件集合")
-    List<ProjectEventDTO> events;
+    private List<ProjectEventDTO> events;
     @Schema(description = "文件guids")
     private List<String> fileGuids;
     @Schema(description = "核心结论")
@@ -84,5 +84,6 @@ public class UpdateReportProjectDTO {
     private String caseStage;
     @Schema(description = "参与人id")
     private List<String> involvedPersonIds;
+    @Schema(description = "主被动类型")
     private Integer actType;
 }

+ 1 - 0
src/main/java/cn/cslg/pas/common/model/report/MailMessageDTO.java

@@ -14,6 +14,7 @@ public class MailMessageDTO {
     private String name;
     private List<String> names;
     // emails
+    private String email;
     private List<String> emails;
     // 1
     private String tenantName;

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

@@ -290,4 +290,22 @@ public class MailSendService {
             rabbitMQUtils.sendEmailMessage(map);
         }
     }
+
+    public void sendMatchCasePersonEmail(MailMessageDTO mailMessageDTO) {
+        List<String> emails = mailMessageDTO.getEmails();
+        if (emails != null && !emails.isEmpty()) {
+            Map<String, Object> map = new LinkedHashMap<>();
+            String title = "实际处理人分配通知:" + mailMessageDTO.getReportName();
+            map.put("title", title);
+            map.put("template", "mail/sendMatchCasePerson.html");
+            map.put("img", "/logo.png");
+            String[] emailArray = emails.toArray(new String[0]);
+            map.put("emails", emailArray);
+            map.put("value1", mailMessageDTO.getName());
+            map.put("value2", mailMessageDTO.getReportName());
+            map.put("value3", mailMessageDTO.getUrl());
+            rabbitMQUtils.sendEmailMessage(map);
+        }
+    }
+
 }

+ 16 - 0
src/main/java/cn/cslg/pas/service/report/MatchCasePersonService.java

@@ -3,19 +3,29 @@ package cn.cslg.pas.service.report;
 import cn.cslg.pas.common.model.cronModel.Personnel;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.report.*;
+import cn.cslg.pas.common.model.cronModel.SystemFile;
+import cn.cslg.pas.common.model.report.MailMessageDTO;
+import cn.cslg.pas.common.model.report.QueryMatchCasePersonVO;
+import cn.cslg.pas.common.model.report.UpdateIprPersonDTO;
+import cn.cslg.pas.common.model.report.UpdateMatchCasePersonDTO;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.domain.business.AssoProjectPerson;
 import cn.cslg.pas.domain.business.ReportProject;
+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.exception.ExceptionEnum;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.service.business.AssoProjectPersonService;
 import cn.cslg.pas.service.business.ReportProjectService;
+import cn.cslg.pas.service.business.ProjectService;
+import cn.cslg.pas.service.business.ReportProjectService;
 import cn.cslg.pas.service.permissions.PermissionService;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import cn.cslg.pas.domain.report.MatchCasePerson;
@@ -43,6 +53,10 @@ public class MatchCasePersonService extends ServiceImpl<MatchCasePersonMapper, M
     private final CacheUtils cacheUtils;
     @Autowired
     @Lazy
+    private SendReportMailService sendReportMailService;
+
+    @Autowired
+    @Lazy
     private IprPersonService iprPersonService;
     private final AssoProjectPersonService assoProjectPersonService;
     private final ReportProjectService reportProjectService;
@@ -107,6 +121,7 @@ public class MatchCasePersonService extends ServiceImpl<MatchCasePersonMapper, M
         if (type != null) {
             this.updateReport(updateMatchCasePersonDTO.getReportId(), type);
         }
+        sendReportMailService.sendMatchCasePersonMail(matchCasePerson.getProjectId(), name, email);
         return matchCasePerson.getId();
     }
 
@@ -337,6 +352,7 @@ public class MatchCasePersonService extends ServiceImpl<MatchCasePersonMapper, M
 
 
 
+
 }
 
 

+ 25 - 1
src/main/java/cn/cslg/pas/service/report/SendReportMailService.java

@@ -167,10 +167,12 @@ public class SendReportMailService {
 
 
     public String loadEmail(String name, String email) {
+        if (name == null) {
+            return email;
+        }
         return name + " <" + email + ">";
     }
 
-
     public void finalSendEmail(Integer projectId, List<String> fileGuids, List<ExtraEmailDTO> extraEmailDTOS) {
         MailMessageDTO mailMessageDTO = this.loadingData(projectId, fileGuids);
         if (mailMessageDTO != null) {
@@ -185,4 +187,26 @@ public class SendReportMailService {
             }
         }
     }
+
+    public void sendMatchCasePersonMail(Integer projectId, String name, String email) {
+        MailMessageDTO mailMessageDTO = this.loadMatchCaseData(projectId, name, email);
+        if (mailMessageDTO != null) {
+            mailSendService.sendMatchCasePersonEmail(mailMessageDTO);
+        }
+    }
+
+    public MailMessageDTO loadMatchCaseData(Integer projectId, String name, String email) {
+        MailMessageDTO mailMessageDTO = new MailMessageDTO();
+        List<String> emails = new ArrayList<>();
+        emails.add(email);
+        mailMessageDTO.setName(name);
+        mailMessageDTO.setEmail(email);
+        mailMessageDTO.setEmails(emails);
+        // url配置
+        mailMessageDTO.setUrl("https://www.xsip.cn/reportDetails?projectId=" + projectId);
+        //报告名称配置
+        Project project = projectService.getById(projectId);
+        mailMessageDTO.setReportName(project.getName());
+        return mailMessageDTO;
+    }
 }