diff --git a/src/main/java/neatlogic/framework/systemnotice/dao/mapper/SystemNoticeMapper.xml b/src/main/java/neatlogic/framework/systemnotice/dao/mapper/SystemNoticeMapper.xml index e5413bc076c58c268899ee92b59423015ff3d5ea..c35eca87f578a9b199d61eb635ca447de9c3dc19 100755 --- a/src/main/java/neatlogic/framework/systemnotice/dao/mapper/SystemNoticeMapper.xml +++ b/src/main/java/neatlogic/framework/systemnotice/dao/mapper/SystemNoticeMapper.xml @@ -381,7 +381,7 @@ SELECT `id` FROM `system_notice` - WHERE `status` = 'not_issued' + WHERE `status` IN ('not_issued', 'stopped') AND `start_time` != NULL diff --git a/src/main/java/neatlogic/module/framework/systemnotice/schedule/IssueSystemNoticeJob.java b/src/main/java/neatlogic/module/framework/systemnotice/schedule/IssueSystemNoticeJob.java index b0ae2fd3beabb3331f26c4ea8cffd5ed66cc328b..f24b7bb3ee6a9d69ae4771356c934570bd3c8751 100644 --- a/src/main/java/neatlogic/module/framework/systemnotice/schedule/IssueSystemNoticeJob.java +++ b/src/main/java/neatlogic/module/framework/systemnotice/schedule/IssueSystemNoticeJob.java @@ -52,7 +52,8 @@ public class IssueSystemNoticeJob extends JobBase { TenantContext.get().switchTenant(tenantUuid); Long noticeId = Long.valueOf(jobObject.getJobName()); SystemNoticeVo systemNotice = systemNoticeMapper.getSystemNoticeById(noticeId); - if (systemNotice != null && Objects.equals(systemNotice.getStatus(), SystemNoticeVo.Status.NOTISSUED.getValue()) && systemNotice.getStartTime() != null) { + if (systemNotice != null && systemNotice.getStartTime() != null + && (Objects.equals(systemNotice.getStatus(), SystemNoticeVo.Status.NOTISSUED.getValue()) || Objects.equals(systemNotice.getStatus(), SystemNoticeVo.Status.STOPPED.getValue()))) { JobObject.Builder newJobObjectBuilder = new JobObject.Builder(noticeId.toString(), this.getGroupName(), this.getClassName(), TenantContext.get().getTenantUuid()) .withBeginTime(systemNotice.getStartTime()) .withIntervalInSeconds(60 * 60) @@ -77,7 +78,8 @@ public class IssueSystemNoticeJob extends JobBase { protected Boolean isMyHealthy(JobObject jobObject) { Long noticeId = Long.valueOf(jobObject.getJobName()); SystemNoticeVo systemNotice = systemNoticeMapper.getSystemNoticeById(noticeId); - if (systemNotice != null && Objects.equals(systemNotice.getStatus(), SystemNoticeVo.Status.NOTISSUED.getValue()) && systemNotice.getStartTime() != null) { + if (systemNotice != null && systemNotice.getStartTime() != null + && (Objects.equals(systemNotice.getStatus(), SystemNoticeVo.Status.NOTISSUED.getValue()) || Objects.equals(systemNotice.getStatus(), SystemNoticeVo.Status.STOPPED.getValue()))) { return true; } return false; @@ -87,7 +89,8 @@ public class IssueSystemNoticeJob extends JobBase { public void executeInternal(JobExecutionContext context, JobObject jobObject) throws Exception { Long noticeId = Long.valueOf(jobObject.getJobName()); SystemNoticeVo systemNotice = systemNoticeMapper.getSystemNoticeById(noticeId); - if (systemNotice != null && Objects.equals(systemNotice.getStatus(), SystemNoticeVo.Status.NOTISSUED.getValue()) && systemNotice.getStartTime() != null) { + if (systemNotice != null && systemNotice.getStartTime() != null + && (Objects.equals(systemNotice.getStatus(), SystemNoticeVo.Status.NOTISSUED.getValue()) || Objects.equals(systemNotice.getStatus(), SystemNoticeVo.Status.STOPPED.getValue()))) { systemNoticeService.issueSystemNotice(systemNotice); systemNotice.setStatus(SystemNoticeVo.Status.ISSUED.getValue()); systemNotice.setIssueTime(systemNotice.getStartTime());