diff --git a/pom.xml b/pom.xml index 909f55d..dce3fbc 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.milmove.trdmlambda trdm-lambda - 1.0.1.0 + 1.0.1.1 trdm java spring interface Project for deploying a Java TRDM interfacer for TGET data. diff --git a/src/main/java/com/milmove/trdmlambda/milmove/handler/TransportationAccountingCodesHandler.java b/src/main/java/com/milmove/trdmlambda/milmove/handler/TransportationAccountingCodesHandler.java index cf10cac..224df20 100644 --- a/src/main/java/com/milmove/trdmlambda/milmove/handler/TransportationAccountingCodesHandler.java +++ b/src/main/java/com/milmove/trdmlambda/milmove/handler/TransportationAccountingCodesHandler.java @@ -124,6 +124,17 @@ private XMLGregorianCalendar getOurLastTGETUpdate(String tableName) return DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar); } + public static XMLGregorianCalendar addOneWeek(XMLGregorianCalendar originalDate) throws DatatypeConfigurationException { + GregorianCalendar calendar = originalDate.toGregorianCalendar(); + calendar.add(GregorianCalendar.WEEK_OF_YEAR, 1); + + SimpleDateFormat xmlFriendlyLastUpdateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); + xmlFriendlyLastUpdateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + String xmlGregorianCalendarString = xmlFriendlyLastUpdateFormat.format(calendar.getTime()); + + return DatatypeFactory.newInstance().newXMLGregorianCalendar(xmlGregorianCalendarString); + } + private boolean isTGETDataOutOfDate(XMLGregorianCalendar ourLastUpdate, XMLGregorianCalendar trdmLastUpdate) { return ourLastUpdate.compare(trdmLastUpdate) < 0; } @@ -135,11 +146,15 @@ private void updateTGETData(XMLGregorianCalendar ourLastUpdate, String trdmTable throw new IllegalArgumentException("Invalid table name"); } logger.info("table {} is allowed, proceeding", trdmTable); + + XMLGregorianCalendar oneWeekLater = addOneWeek(ourLastUpdate); + // Request all TGET data from TRDM since our last update GetTableRequest getTableRequestBody = new GetTableRequest(); getTableRequestBody.setPhysicalName(trdmTable); getTableRequestBody.setContentUpdatedSinceDateTime(ourLastUpdate.toString()); getTableRequestBody.setReturnContent(true); + getTableRequestBody.setContentUpdatedOnOrBeforeDateTime(oneWeekLater.toString()); logger.info("calling TRDM getTable with provided body {}", getTableRequestBody); GetTableResponse getTableResponse = getTableService.getTableRequest(getTableRequestBody); logger.info("received response back from TRDM getTable, beginning to parse..");