diff --git a/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/ChangeRequestCsvPresenter.java b/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/ChangeRequestCsvPresenter.java index a03783e2a1..691363eedd 100644 --- a/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/ChangeRequestCsvPresenter.java +++ b/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/ChangeRequestCsvPresenter.java @@ -5,13 +5,16 @@ import java.io.IOException; import java.io.OutputStreamWriter; import java.nio.charset.StandardCharsets; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVPrinter; import org.apache.logging.log4j.Logger; import gov.healthit.chpl.changerequest.domain.ChangeRequest; +import gov.healthit.chpl.changerequest.domain.ChangeRequestStatus; public abstract class ChangeRequestCsvPresenter implements AutoCloseable { protected static final String DEV_NAME_HEADING = "Developer Name"; @@ -73,6 +76,14 @@ public synchronized void add(ChangeRequest data) throws IOException { } } + protected String getSubmitterEmail(ChangeRequest changeRequest) { + List orderedStatuses = changeRequest.getStatuses().stream() + .sorted(Comparator.comparing(ChangeRequestStatus::getStatusChangeDateTime)) + .collect(Collectors.toList()); + //the oldest status is the submitting user + return orderedStatuses.get(0).getActingUser() == null ? "" : orderedStatuses.get(0).getActingUser(); + } + public void close() throws IOException { logger.info("Closing the CSV file."); csvPrinter.close(); diff --git a/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/DownloadableDemographicsPresenter.java b/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/DownloadableDemographicsPresenter.java index e2b21c6865..2282e955da 100644 --- a/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/DownloadableDemographicsPresenter.java +++ b/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/DownloadableDemographicsPresenter.java @@ -29,6 +29,7 @@ protected List generateHeaderValues() { DEV_CONTACT_PHONE_HEADING, CR_TYPE_HEADING, CR_STATUS_HEADING, + CR_SUBMITTER_EMAIL_HEADING, CR_CREATED_DATE_HEADING, CR_LAST_UPDATED_DATE_HEADING, CR_ACBS_HEADING) @@ -50,6 +51,7 @@ protected List generateRowValue(ChangeRequest changeRequest) { } result.add(changeRequest.getChangeRequestType().getName()); result.add(changeRequest.getCurrentStatus().getChangeRequestStatusType().getName()); + result.add(getSubmitterEmail(changeRequest)); result.add(DateUtil.formatInEasternTime(changeRequest.getSubmittedDateTime())); result.add(DateUtil.formatInEasternTime(changeRequest.getCurrentStatus().getStatusChangeDateTime())); result.add(changeRequest.getCertificationBodies().stream() @@ -57,5 +59,4 @@ protected List generateRowValue(ChangeRequest changeRequest) { .collect(Collectors.joining("; "))); return result; } - } diff --git a/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/DownloadableListingUrlPresenter.java b/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/DownloadableListingUrlPresenter.java index e5b3271da4..cb1b3055e3 100644 --- a/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/DownloadableListingUrlPresenter.java +++ b/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/DownloadableListingUrlPresenter.java @@ -27,6 +27,7 @@ protected List generateHeaderValues() { DEV_CONTACT_PHONE_HEADING, CR_TYPE_HEADING, CR_STATUS_HEADING, + CR_SUBMITTER_EMAIL_HEADING, CR_CREATED_DATE_HEADING, CR_LAST_UPDATED_DATE_HEADING, CR_ACBS_HEADING, @@ -50,6 +51,7 @@ protected List generateRowValue(ChangeRequest changeRequest) { } result.add(changeRequest.getChangeRequestType().getName()); result.add(changeRequest.getCurrentStatus().getChangeRequestStatusType().getName()); + result.add(getSubmitterEmail(changeRequest)); result.add(DateUtil.formatInEasternTime(changeRequest.getSubmittedDateTime())); result.add(DateUtil.formatInEasternTime(changeRequest.getCurrentStatus().getStatusChangeDateTime())); result.add(changeRequest.getCertificationBodies().stream() diff --git a/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/PendingChangeRequestPresenter.java b/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/PendingChangeRequestPresenter.java index ed05e2d063..cde2798ea9 100644 --- a/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/PendingChangeRequestPresenter.java +++ b/chpl/chpl-service/src/main/java/gov/healthit/chpl/scheduler/job/changerequest/presenter/PendingChangeRequestPresenter.java @@ -42,6 +42,7 @@ protected List generateHeaderValues() { DEV_CONTACT_PHONE_HEADING, CR_TYPE_HEADING, CR_STATUS_HEADING, + CR_SUBMITTER_EMAIL_HEADING, CR_CREATED_DATE_HEADING, CR_DAYS_OPEN_HEADING, CR_LAST_UPDATED_DATE_HEADING, @@ -68,6 +69,7 @@ protected List generateRowValue(ChangeRequest changeRequest) { } row.add(changeRequest.getChangeRequestType().getName()); row.add(changeRequest.getCurrentStatus().getChangeRequestStatusType().getName()); + row.add(getSubmitterEmail(changeRequest)); row.add(DateUtil.formatInEasternTime(changeRequest.getSubmittedDateTime())); row.add(calculateDaysOpen(changeRequest)); row.add(DateUtil.formatInEasternTime(changeRequest.getCurrentStatus().getStatusChangeDateTime()));