fix(X-Pack): 定时报告pdf文件名根据仪表板名称生成

This commit is contained in:
fit2cloud-chenyw 2024-09-14 16:58:22 +08:00
parent 052dd1e86e
commit 508d79a74a
2 changed files with 9 additions and 5 deletions

View File

@ -9,6 +9,7 @@ import io.dataease.commons.model.AuthURD;
import io.dataease.commons.utils.*;
import io.dataease.dto.PermissionProxy;
import io.dataease.dto.chart.ViewOption;
import io.dataease.dto.panel.PanelGroupDTO;
import io.dataease.ext.ExtTaskMapper;
import io.dataease.job.sechedule.ScheduleManager;
import io.dataease.job.sechedule.strategy.TaskHandler;
@ -31,6 +32,7 @@ import io.dataease.plugins.xpack.wecom.dto.entity.WecomMsgResult;
import io.dataease.plugins.xpack.wecom.service.WecomXpackService;
import io.dataease.service.chart.ChartViewService;
import io.dataease.service.chart.ViewExportExcel;
import io.dataease.service.panel.PanelGroupService;
import io.dataease.service.sys.SysUserService;
import io.dataease.service.system.EmailService;
import org.apache.commons.collections4.CollectionUtils;
@ -269,7 +271,9 @@ public class EmailTaskHandler extends TaskHandler implements Job {
emailService.sendWithImageAndFiles(recipients, emailTemplateDTO.getTitle(), contentStr, bytes, files);
} else {
bytes = emailXpackService.printPdf(url, token, xpackPixelEntity, false, true);
emailService.sendPdfWithFiles(recipients, emailTemplateDTO.getTitle(), contentStr, bytes, files);
PanelGroupDTO panelInfo = CommonBeanFactory.getBean(PanelGroupService.class).findOne(panelId);
String pdfFileName = panelInfo.getName() + "pdf";
emailService.sendPdfWithFiles(recipients, emailTemplateDTO.getTitle(), contentStr, bytes, files, pdfFileName);
}
} catch (Exception e) {

View File

@ -83,7 +83,7 @@ public class EmailService {
}
public void sendPdfWithFiles(String to, String title, String content, byte[] bytes, List<File> files) {
public void sendPdfWithFiles(String to, String title, String content, byte[] bytes, List<File> files, String pdfFileName) {
if (ArrayUtils.isEmpty(bytes)) {
send(to, title, content);
return;
@ -98,7 +98,7 @@ public class EmailService {
MimeMessage mimeMessage = driver.createMimeMessage();
try {
multipart = addContent(multipart, content);
multipart = addPdf(multipart, bytes);
multipart = addPdf(multipart, bytes, pdfFileName);
if (CollectionUtils.isNotEmpty(files)) {
multipart = addFiles(multipart, files);
}
@ -165,11 +165,11 @@ public class EmailService {
return multipart;
}
private MimeMultipart addPdf(MimeMultipart multipart, byte[] bytes) throws Exception {
private MimeMultipart addPdf(MimeMultipart multipart, byte[] bytes, String pdfFileName) throws Exception {
MimeBodyPart attach = new MimeBodyPart();
ByteArrayDataSource fileDataSource = new ByteArrayDataSource(bytes, "application/pdf");
attach.setDataHandler(new DataHandler(fileDataSource));
attach.setFileName(MimeUtility.encodeText("panel.pdf", "gb2312", null));
attach.setFileName(MimeUtility.encodeText(pdfFileName, "gb2312", null));
multipart.addBodyPart(attach);
multipart.setSubType("related");
return multipart;