From e1adaa5a09f919ff72e3758fb05da00c1df329a4 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Wed, 11 Jun 2025 19:18:08 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=AE=A1=E7=90=86=E9=A1=B5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=B8=80=E5=88=97=E6=98=BE=E7=A4=BA=E4=BD=9C=E4=B8=9A=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=B7=B2=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1441426846482432]定时作业管理页增加一列显示作业是否已加载 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1441426846482432 --- .../api/schedule/ReportSendJobSearchApi.java | 22 +++++++++--- .../module/report/dto/ReportSendJobVo.java | 10 ++++++ .../report/schedule/plugin/ReportSendJob.java | 35 +++++++++++-------- 3 files changed, 47 insertions(+), 20 deletions(-) diff --git a/src/main/java/neatlogic/module/report/api/schedule/ReportSendJobSearchApi.java b/src/main/java/neatlogic/module/report/api/schedule/ReportSendJobSearchApi.java index 1640090..4b2bf83 100644 --- a/src/main/java/neatlogic/module/report/api/schedule/ReportSendJobSearchApi.java +++ b/src/main/java/neatlogic/module/report/api/schedule/ReportSendJobSearchApi.java @@ -15,6 +15,9 @@ along with this program. If not, see .*/ package neatlogic.module.report.api.schedule; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.common.dto.BaseEditorVo; @@ -22,14 +25,14 @@ import neatlogic.framework.common.util.PageUtil; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import neatlogic.framework.scheduler.core.IJob; +import neatlogic.framework.scheduler.core.SchedulerManager; import neatlogic.framework.scheduler.dao.mapper.SchedulerMapper; import neatlogic.framework.scheduler.dto.JobAuditVo; import neatlogic.module.report.auth.label.REPORT_BASE; import neatlogic.module.report.dao.mapper.ReportSendJobMapper; import neatlogic.module.report.dto.ReportSendJobVo; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.TypeReference; +import neatlogic.module.report.schedule.plugin.ReportSendJob; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; @@ -48,6 +51,9 @@ public class ReportSendJobSearchApi extends PrivateApiComponentBase { @Resource private SchedulerMapper schedulerMapper; + @Resource + private SchedulerManager schedulerManager; + @Override public String getToken() { return "report/sendjob/search"; @@ -102,8 +108,8 @@ public class ReportSendJobSearchApi extends PrivateApiComponentBase { /* 查询发送次数与收件人 */ if (CollectionUtils.isNotEmpty(jobList)) { List toList = reportSendJobMapper.getReportToList(jobList.stream().map(ReportSendJobVo::getId).collect(Collectors.toList())); - if (CollectionUtils.isNotEmpty(toList)) { - for (ReportSendJobVo job : jobList) { + for (ReportSendJobVo job : jobList) { + if (CollectionUtils.isNotEmpty(toList)) { for (ReportSendJobVo to : toList) { JobAuditVo jobAuditVo = new JobAuditVo(); jobAuditVo.setJobUuid(job.getId().toString()); @@ -114,6 +120,12 @@ public class ReportSendJobSearchApi extends PrivateApiComponentBase { } } } + boolean isLoad = false; + IJob jobHandler = SchedulerManager.getHandler(ReportSendJob.class.getName()); + if (jobHandler != null) { + isLoad = schedulerManager.checkJobIsExists(job.getId().toString(), jobHandler.getGroupName()); + } + job.setIsLoad(isLoad ? 1 : 0); } } returnObj.put("jobList", jobList); diff --git a/src/main/java/neatlogic/module/report/dto/ReportSendJobVo.java b/src/main/java/neatlogic/module/report/dto/ReportSendJobVo.java index 26c07b4..986fdbf 100755 --- a/src/main/java/neatlogic/module/report/dto/ReportSendJobVo.java +++ b/src/main/java/neatlogic/module/report/dto/ReportSendJobVo.java @@ -43,6 +43,8 @@ public class ReportSendJobVo extends BaseEditorVo { private List reportRelationList; @EntityField(name = "报表列表", type = ApiParamType.JSONARRAY) private List reportList; + @EntityField(name = "是否已加载", type = ApiParamType.INTEGER) + private Integer isLoad; public Long getId() { if (id == null) { @@ -174,4 +176,12 @@ public class ReportSendJobVo extends BaseEditorVo { public void setReportList(List reportList) { this.reportList = reportList; } + + public Integer getIsLoad() { + return isLoad; + } + + public void setIsLoad(Integer isLoad) { + this.isLoad = isLoad; + } } diff --git a/src/main/java/neatlogic/module/report/schedule/plugin/ReportSendJob.java b/src/main/java/neatlogic/module/report/schedule/plugin/ReportSendJob.java index 7a4ffd4..91f616a 100644 --- a/src/main/java/neatlogic/module/report/schedule/plugin/ReportSendJob.java +++ b/src/main/java/neatlogic/module/report/schedule/plugin/ReportSendJob.java @@ -15,6 +15,7 @@ along with this program. If not, see .*/ package neatlogic.module.report.schedule.plugin; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.asynchronization.threadlocal.TenantContext; import neatlogic.framework.dao.mapper.UserMapper; import neatlogic.framework.dto.UserVo; @@ -31,7 +32,6 @@ import neatlogic.module.report.dto.ReportSendJobVo; import neatlogic.module.report.dto.ReportVo; import neatlogic.module.report.service.ReportService; import neatlogic.module.report.util.ReportFreemarkerUtil; -import com.alibaba.fastjson.JSONObject; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -110,8 +110,10 @@ public class ReportSendJob extends JobBase { /* 获取报表发送计划*/ ReportSendJobVo sendJob = reportSendJobMapper.getJobById(id); Map reportMap = null; - String to = null; - String cc = null; + List toEmailList = new ArrayList<>(); + List ccEmailList = new ArrayList<>(); +// String to = null; +// String cc = null; boolean canExec = false; if (sendJob != null && Objects.equals(sendJob.getIsActive(), 1)) { List relatedReportList = sendJob.getReportRelationList(); @@ -121,24 +123,23 @@ public class ReportSendJob extends JobBase { } /* 获取收件人与抄送人 */ List receiverList = sendJob.getReceiverList(); - List toEmailList = new ArrayList<>(); - List ccEmailList = new ArrayList<>(); getReceiverList(receiverList, toEmailList, ccEmailList); - if (CollectionUtils.isNotEmpty(toEmailList)) { - to = String.join(",", toEmailList); - } - if (CollectionUtils.isNotEmpty(ccEmailList)) { - cc = String.join(",", ccEmailList); - } - if (MapUtils.isNotEmpty(reportMap) && StringUtils.isNotBlank(to)) { +// if (CollectionUtils.isNotEmpty(toEmailList)) { +// to = String.join(",", toEmailList); +// } +// if (CollectionUtils.isNotEmpty(ccEmailList)) { +// cc = String.join(",", ccEmailList); +// } + if (MapUtils.isNotEmpty(reportMap) && CollectionUtils.isNotEmpty(toEmailList)) { canExec = true; } } if (canExec) { /* 发送邮件 */ try { - EmailUtil.sendEmailWithFile(sendJob.getEmailTitle(), sendJob.getEmailContent(), to, cc, reportMap); + EmailUtil.sendEmailWithFile(sendJob.getEmailTitle(), sendJob.getEmailContent(), toEmailList, ccEmailList, reportMap); } catch (Exception e) { + logger.error(e.getMessage(), e); throw new JobExecutionException(e.getMessage()); } @@ -162,14 +163,18 @@ public class ReportSendJob extends JobBase { if ("to".equals(vo.getType())) { //收件人 if (!vo.getReceiver().contains("@")) { UserVo user = userMapper.getUserBaseInfoByUuid(vo.getReceiver()); - toEmailList.add(user.getEmail()); + if (user != null && StringUtils.isNotBlank(user.getEmail())) { + toEmailList.add(user.getEmail()); + } } else { toEmailList.add(vo.getReceiver()); } } else if ("cc".equals(vo.getType())) { //抄送人 if (!vo.getReceiver().contains("@")) { UserVo user = userMapper.getUserBaseInfoByUuid(vo.getReceiver()); - ccEmailList.add(user.getEmail()); + if (user != null && StringUtils.isNotBlank(user.getEmail())) { + ccEmailList.add(user.getEmail()); + } } else { ccEmailList.add(vo.getReceiver()); } -- Gitee