diff --git a/WebContent/jsp/onl/apim/messagerequest/messageRequestMan.jsp b/WebContent/jsp/onl/apim/messagerequest/messageRequestMan.jsp index 603aa47..5df54c8 100644 --- a/WebContent/jsp/onl/apim/messagerequest/messageRequestMan.jsp +++ b/WebContent/jsp/onl/apim/messagerequest/messageRequestMan.jsp @@ -62,7 +62,19 @@ return '' + escapeHtmlJs(rowObject.sentDateShort || '') + ''; } + function toDashDate(yyyymmdd) { + return yyyymmdd.substring(0, 4) + "-" + yyyymmdd.substring(4, 6) + "-" + yyyymmdd.substring(6, 8); + } + function init() { + $("#startDatepicker").datepicker().inputmask("yyyy-mm-dd",{'autoUnmask':true}); + $("#endDatepicker").datepicker().inputmask("yyyy-mm-dd",{'autoUnmask':true}); + + var today = getToday(); + + $("input[name=searchFromDate]").val(toDashDate(today.substring(0,6)+"01")); + $("input[name=searchToDate]").val(toDashDate(today)); + $.ajax({ type: "POST", url: url, dataType: "json", data: {cmd: 'LIST_INIT_COMBO'}, @@ -145,6 +157,20 @@ init(); $("#btn_search").click(function () { + var start = $("input[name=searchFromDate]").val().replace(/-/gi, ""); + var end = $("input[name=searchToDate]").val().replace(/-/gi, ""); + + if (start && start > getToday()) { + alert("시작일이 오늘 이후입니다. 시작일을 확인해주세요."); + $("input[name=searchFromDate]").focus(); + return false; + } + if (start && end && start > end) { + alert("조회기간 종료일은 시작일보다 커야합니다."); + $("input[name=searchToDate]").focus(); + return false; + } + var postData = getSearchForJqgrid("cmd", "LIST"); $("#grid").setGridParam({url: url, postData: postData, page: 1}).trigger("reloadGrid"); }); @@ -198,7 +224,9 @@ 요청기간 - ~ + + ~ + diff --git a/WebContent/jsp/onl/apim/webhook/webhookSendLogMan.jsp b/WebContent/jsp/onl/apim/webhook/webhookSendLogMan.jsp index fba0ece..1007a35 100644 --- a/WebContent/jsp/onl/apim/webhook/webhookSendLogMan.jsp +++ b/WebContent/jsp/onl/apim/webhook/webhookSendLogMan.jsp @@ -222,9 +222,9 @@ 발송기간 - + ~ - + diff --git a/src/main/java/com/eactive/eai/rms/common/scheduler/ClusteredSchedulerConfig.java b/src/main/java/com/eactive/eai/rms/common/scheduler/ClusteredSchedulerConfig.java index 333dbd7..7d3ff53 100644 --- a/src/main/java/com/eactive/eai/rms/common/scheduler/ClusteredSchedulerConfig.java +++ b/src/main/java/com/eactive/eai/rms/common/scheduler/ClusteredSchedulerConfig.java @@ -19,23 +19,7 @@ public class ClusteredSchedulerConfig { @Autowired @Qualifier("MONITORING") private DataSourceType monitoringDatasource; - - /* - public class AutowiringSpringBeanJobFactory extends SpringBeanJobFactory { - @Override - protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception { - Object job = super.createJobInstance(bundle); - applicationContext.getAutowireCapableBeanFactory().autowireBean(job); - return job; - } - } - - @Bean - public SpringBeanJobFactory springBeanJobFactory() { - return new AutowiringSpringBeanJobFactory(); - } - */ - + @Bean(name = "clusteredScheduler") public SchedulerFactoryBean clusteredScheduler() { @@ -81,11 +65,15 @@ public class ClusteredSchedulerConfig { factory.setQuartzProperties(quartzProperties); factory.setAutoStartup(true); factory.setSchedulerName("EMS_ClusteredScheduler"); -// factory.setJobFactory(springBeanJobFactory()); - + + AutoWiringSpringBeanJobFactory jobFactory = + new AutoWiringSpringBeanJobFactory(applicationContext.getAutowireCapableBeanFactory()); + jobFactory.setApplicationContext(applicationContext); + factory.setJobFactory(jobFactory); + factory.setApplicationContextSchedulerContextKey("applicationContext"); factory.setApplicationContext(applicationContext); - + return factory; } diff --git a/src/main/java/com/eactive/eai/rms/onl/apim/messagerequest/MessageRequestManService.java b/src/main/java/com/eactive/eai/rms/onl/apim/messagerequest/MessageRequestManService.java index 6629c40..f4e5dd8 100644 --- a/src/main/java/com/eactive/eai/rms/onl/apim/messagerequest/MessageRequestManService.java +++ b/src/main/java/com/eactive/eai/rms/onl/apim/messagerequest/MessageRequestManService.java @@ -58,7 +58,11 @@ public class MessageRequestManService extends BaseService { ui.setMessageType(e.getMessageType()); // 본문: 패턴 마스킹 + 색상강조 안전 HTML - ui.setMessageHtml(MessagePatternMaskingUtils.maskAndHighlight(e.getMessage())); + if (e.getMessageCode() == MessageCode.API_STATUS_CHANGED) { + ui.setMessageHtml(e.getMessage()); + } else { + ui.setMessageHtml(MessagePatternMaskingUtils.maskAndHighlight(e.getMessage())); + } // 수신자 마스킹 (email/phone 은 @Convert 로 이미 복호화된 평문) ui.setUsername(MaskingUtils.maskName(e.getUsername())); diff --git a/src/main/java/com/eactive/eai/rms/onl/common/service/UmsDispatchJob.java b/src/main/java/com/eactive/eai/rms/onl/common/service/UmsDispatchJob.java index 993e165..af91e13 100644 --- a/src/main/java/com/eactive/eai/rms/onl/common/service/UmsDispatchJob.java +++ b/src/main/java/com/eactive/eai/rms/onl/common/service/UmsDispatchJob.java @@ -3,6 +3,7 @@ package com.eactive.eai.rms.onl.common.service; import com.eactive.eai.rms.onl.common.service.ums.UmsDispatchService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.quartz.DisallowConcurrentExecution; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; @@ -21,6 +22,7 @@ import java.util.stream.Collectors; */ // Cron Expression: */5 * * * * ? @Slf4j +@DisallowConcurrentExecution public class UmsDispatchJob implements Job { private final UmsDispatchService umsDispatchService;