summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java')
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java263
1 files changed, 132 insertions, 131 deletions
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java
index 8b9aabc2..3c871d87 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java
@@ -38,21 +38,20 @@
package org.onap.portalsdk.analytics.scheduler;
import java.math.BigDecimal;
-import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
-
import org.onap.portalsdk.analytics.error.RaptorException;
import org.onap.portalsdk.analytics.error.ReportSQLException;
import org.onap.portalsdk.analytics.scheduler.SchedulerUtil.Executor;
import org.onap.portalsdk.analytics.system.Globals;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
public class SendNotifications {
-
+
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SendNotifications.class);
SchedulerUtil schedulerUtil;
public SendEmail sendEmail;
@@ -63,7 +62,6 @@ public class SendNotifications {
init();
}
-
public void deInit() throws SQLException {
schedulerUtil.closeConnection();
}
@@ -71,133 +69,136 @@ public class SendNotifications {
public void init() throws SQLException, ReportSQLException {
schedulerUtil.init();
}
-
- public void send_notification(String p_mail_server, String p_sender, String p_system_name, String p_system_url, int connectionTimeout) throws RaptorException, Exception {
-
- System.out.println(p_mail_server + " " + p_sender + " " + p_system_name + " " + p_system_url);
- int p_time_interval = Globals.getSchedulerInterval();
- int v_num_recs = 0;
- String v_gen_key;
- BigDecimal v_id = null;
- String v_url;
- String v_r_action = "report.download.pdf";
- String v_email_msg;
- String v_formfields;
- // String error_m;
- // int transfer_timeout_limit = 1800;
- // boolean v_attach_email_yn = true;
- int v_schedule_id;
- Date v_touch_date;
- // Exception for_rec;
-
- Connection conn = schedulerUtil.getConnection();
- Statement stat = conn.createStatement();
-
- String CNotificationsql =
- /*
- "SELECT x.rep_id, x.schedule_id, x.conditional_yn, x.condition_large_sql, x.notify_type, x.max_row, x.initial_formfields, x.processed_formfields, r.title, x.user_id "
- + "FROM ("
- + "SELECT rs.rep_id, rs.schedule_id, rs.sched_user_id user_id, rs.conditional_yn, rs.condition_large_sql, "
- + "rs.notify_type, rs.max_row, rs.initial_formfields, rs.processed_formfields "
- + "FROM cr_report_schedule rs "
- + "WHERE rs.enabled_yn='Y' "
- + "AND rs.start_"
- + "date <= sysdate "
- + "AND (rs.end_date >= sysdate or rs.end_date is null ) "
- + "AND rs.run_date IS NOT NULL "
- + ") x, cr_report r "
- + "WHERE x.rep_id = r.rep_id ";
- */
-
- Globals.getAvailableSchedules().replace("[currentDate]", Globals.getCurrentDateString());
-
-
- ResultSet rs = stat.executeQuery(CNotificationsql);
-
- while (rs.next()) {
-
- v_schedule_id = rs.getInt("schedule_id");
- int offset = get_report_sched_offset(rs.getInt("rep_id"), v_schedule_id);
-
- if(offset >= p_time_interval) continue;
-
-
- v_touch_date = (Date) schedulerUtil.getSingleResult("select touch_date from cr_report_email_sent_log where schedule_id = " + v_schedule_id + " and log_id = (select max(log_id) from cr_report_email_sent_log where schedule_id = " + v_schedule_id + ")", "touch_date");
- if (v_touch_date != null) {
- if (Math.abs(System.currentTimeMillis() - v_touch_date.getTime()) /1000 < (p_time_interval - 1)) {
- return;
- }
- }
-
- if ("Y".equals(rs.getString("conditional_yn"))) {
- v_num_recs = (Integer) schedulerUtil.getSingleResult("select count(*) count from (" + rs.getString("condition_large_sql") + " )", "count");
- }
-
- if (v_num_recs > 0 || "N".equals(rs.getString("conditional_yn"))) {
-
- v_gen_key = ("Z" + UUID.randomUUID()).toString().substring(0,24); // 25 character string
- Object sequenceId = schedulerUtil.getSingleResult(Globals.getSequenceNextVal().replace("[sequenceName]", "seq_email_sent_log_id"), "id");
-
- if(sequenceId instanceof Long)
- v_id = new BigDecimal((Long)sequenceId);
- else if(sequenceId instanceof BigDecimal)
- v_id = (BigDecimal)sequenceId;
-
- schedulerUtil.insertOrUpdate("insert into cr_report_email_sent_log (log_id, gen_key, schedule_id, rep_id, user_id, touch_date) values (" + v_id + ",'" + v_gen_key + "'," + rs.getInt("schedule_id") + "," + rs.getInt("rep_id") + "," + rs.getInt("user_id") + ", " + Globals.getCurrentDateString() + " )");
-
- int notify_type = rs.getInt("notify_type");
- if (notify_type == 4)
- v_r_action = "report.download";
- else if (notify_type == 2)
- v_r_action = "report.download.pdf";
- else if (notify_type == 3)
- v_r_action = "report.csv.download";
- else if (notify_type == 5)
- v_r_action = "report.download.excel2007";
- else if (notify_type == 6)
- v_r_action = "download.all";
-
- if (rs.getObject("processed_formfields") != null)
- v_formfields = modify_formfields(v_schedule_id, rs.getString("processed_formFields"));
- else
- v_formfields = strip_formfields(v_schedule_id, rs.getString("initial_formfields"));
-
- v_url = p_system_url + "&r_action=" + v_r_action + "&log_id=" + v_id + "&user_id=" + rs.getString("user_id") + "&pdfAttachmentKey=" + v_gen_key + "&download_limit=" + rs.getInt("max_row") + v_formfields;
-
- boolean v_attach_email_yn = shouldSendAttachmentInEmail(v_schedule_id);
-
- v_email_msg = "<html><body><p><b><u><i>" + p_system_name + " System Notification</i></u></b></p>" + "<p>Report <b>" + rs.getString("title") + "</b> is available for viewing.</p><p>You can view the report if it is attached. </br>"
- + "If it is not attached, or you have problem to open it, you can log into Business Direct and run the report.</p>" + "</body></html>";
-
- if (rs.getInt("notify_type") != 6) {
-
- sendEmail.sendEmail(p_mail_server, p_sender, p_system_name + " System Notification: Report " + rs.getString("title") + " generated", v_email_msg, v_url, rs.getInt("notify_type"), v_schedule_id, p_time_interval, v_attach_email_yn,connectionTimeout);
-
- } else {
-
- // may not necessary
- schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + v_schedule_id + ",'" + v_url + "'," + "'Success: http request began.', " + Globals.getCurrentDateString() + " )");
- schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + v_schedule_id + ",'" + v_url + "'," + "'Success: http response recieved. Code resp.status_code '' desc '' resp.reason_phrase', " + Globals.getCurrentDateString() + " )");
-
- }
-
- schedulerUtil.insertOrUpdate("update cr_report_schedule set run_date = " + Globals.getCurrentDateString() +" where schedule_id=" + v_schedule_id);
-
- schedulerUtil.insertOrUpdate("update cr_report_email_sent_log set sent_date= " + Globals.getCurrentDateString() +" , access_flag='N' where log_id=" + v_id);
- schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + v_schedule_id + ",'" + v_url + "','Success: Email Sent', " + Globals.getCurrentDateString() + " )");
-
- }
-
- }
-
- if(rs!=null)
- rs.close();
- if(stat!=null)
- stat.close();
- //conn.close();
-
- }
+ public void send_notification(final String p_mail_server, final String p_sender, final String p_system_name,
+ final String p_system_url, final int connectionTimeout) throws RaptorException, Exception {
+
+ logger.info(p_mail_server + " " + p_sender + " " + p_system_name + " " + p_system_url);
+ final int p_time_interval = Globals.getSchedulerInterval();
+ int v_num_recs = 0;
+ BigDecimal v_id = null;
+ String v_r_action = "report.download.pdf";
+
+ final String CNotificationsql = Globals.getAvailableSchedules()
+ .replace("[currentDate]", Globals.getCurrentDateString());
+
+ try (final ResultSet rs = schedulerUtil.getConnection().createStatement().executeQuery(CNotificationsql);) {
+ while (rs.next()) {
+ final int v_schedule_id = rs.getInt("schedule_id");
+ final int offset = get_report_sched_offset(rs.getInt("rep_id"), v_schedule_id);
+
+ if (offset >= p_time_interval) {
+ continue;
+ }
+
+ final Date v_touch_date = (Date) schedulerUtil.getSingleResult(
+ "select touch_date from cr_report_email_sent_log where schedule_id = " + v_schedule_id
+ + " and log_id = (select max(log_id) from cr_report_email_sent_log where schedule_id = "
+ + v_schedule_id + ")", "touch_date");
+ if (v_touch_date != null) {
+ if (Math.abs(System.currentTimeMillis() - v_touch_date.getTime()) / 1000 < (p_time_interval - 1)) {
+ return;
+ }
+ }
+
+ if ("Y".equals(rs.getString("conditional_yn"))) {
+ v_num_recs = (Integer) schedulerUtil
+ .getSingleResult("select count(*) count from (" + rs.getString("condition_large_sql") + " )",
+ "count");
+ }
+
+ if (v_num_recs > 0 || "N".equals(rs.getString("conditional_yn"))) {
+ final String v_gen_key = ("Z" + UUID.randomUUID()).toString()
+ .substring(0, 24); // 25 character string
+ final Object sequenceId =
+ schedulerUtil.getSingleResult(
+ Globals.getSequenceNextVal().replace("[sequenceName]", "seq_email_sent_log_id"), "id");
+
+ if (sequenceId instanceof Long) {
+ v_id = new BigDecimal((Long) sequenceId);
+ } else if (sequenceId instanceof BigDecimal) {
+ v_id = (BigDecimal) sequenceId;
+ }
+
+ schedulerUtil.insertOrUpdate(
+ "insert into cr_report_email_sent_log (log_id, gen_key, schedule_id, rep_id, user_id, touch_date) values ("
+ + v_id + ",'" + v_gen_key + "'," + rs.getInt("schedule_id") + "," + rs.getInt("rep_id")
+ + ","
+ + rs.getInt("user_id") + ", " + Globals.getCurrentDateString() + " )");
+
+ final int notify_type = rs.getInt("notify_type");
+ if (notify_type == 4) {
+ v_r_action = "report.download";
+ } else if (notify_type == 2) {
+ v_r_action = "report.download.pdf";
+ } else if (notify_type == 3) {
+ v_r_action = "report.csv.download";
+ } else if (notify_type == 5) {
+ v_r_action = "report.download.excel2007";
+ } else if (notify_type == 6) {
+ v_r_action = "download.all";
+ }
+
+ final String v_formfields;
+ if (rs.getObject("processed_formfields") != null) {
+ v_formfields = modify_formfields(v_schedule_id, rs.getString("processed_formFields"));
+ } else {
+ v_formfields = strip_formfields(v_schedule_id, rs.getString("initial_formfields"));
+ }
+
+ final String v_url =
+ p_system_url + "&r_action=" + v_r_action + "&log_id=" + v_id + "&user_id=" + rs
+ .getString("user_id")
+ + "&pdfAttachmentKey=" + v_gen_key + "&download_limit=" + rs.getInt("max_row")
+ + v_formfields;
+
+ final boolean v_attach_email_yn = shouldSendAttachmentInEmail(v_schedule_id);
+
+ final String v_email_msg =
+ "<html><body><p><b><u><i>" + p_system_name + " System Notification</i></u></b></p>"
+ + "<p>Report <b>" + rs.getString("title")
+ + "</b> is available for viewing.</p><p>You can view the report if it is attached. </br>"
+ + "If it is not attached, or you have problem to open it, you can log into Business Direct and run the report.</p>"
+ + "</body></html>";
+
+ if (rs.getInt("notify_type") != 6) {
+ sendEmail.sendEmail(p_mail_server, p_sender,
+ p_system_name + " System Notification: Report " + rs.getString("title") + " generated",
+ v_email_msg, v_url, rs.getInt("notify_type"), v_schedule_id, p_time_interval,
+ v_attach_email_yn,
+ connectionTimeout);
+
+ } else {
+ // may not necessary
+ schedulerUtil.insertOrUpdate(
+ "insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values ("
+ + v_schedule_id + ",'" + v_url + "'," + "'Success: http request began.', " + Globals
+ .getCurrentDateString() + " )");
+ schedulerUtil.insertOrUpdate(
+ "insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values ("
+ + v_schedule_id + ",'" + v_url + "',"
+ + "'Success: http response recieved. Code resp.status_code '' desc '' resp.reason_phrase', "
+ + Globals.getCurrentDateString() + " )");
+ }
+
+ schedulerUtil.insertOrUpdate(
+ "update cr_report_schedule set run_date = " + Globals.getCurrentDateString()
+ + " where schedule_id="
+ + v_schedule_id);
+
+ schedulerUtil.insertOrUpdate(
+ "update cr_report_email_sent_log set sent_date= " + Globals.getCurrentDateString()
+ + " , access_flag='N' where log_id=" + v_id);
+ schedulerUtil.insertOrUpdate(
+ "insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values ("
+ + v_schedule_id
+ + ",'" + v_url + "','Success: Email Sent', " + Globals.getCurrentDateString() + " )");
+ }
+ }
+ } catch (final SQLException e) {
+ logger.warn("Failed to open connection", e);
+ }
+ }
private boolean shouldSendAttachmentInEmail(int v_schedule_id) throws SQLException, ReportSQLException {