diff --git a/pom.xml b/pom.xml
index 3881779..4226879 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
com.milmove.trdmlambda
trdm-lambda
- 1.0.0.4
+ 1.0.0.5
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 585c136..a559090 100644
--- a/src/main/java/com/milmove/trdmlambda/milmove/handler/TransportationAccountingCodesHandler.java
+++ b/src/main/java/com/milmove/trdmlambda/milmove/handler/TransportationAccountingCodesHandler.java
@@ -14,7 +14,10 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Set;
@@ -43,7 +46,8 @@ public class TransportationAccountingCodesHandler {
private final TransportationAccountingCodeParser tacParser;
private final Connection rdsConnection;
// TODO: Static table names
- private static final Set allowedTableNames = Set.of("transportation_accounting_codes", "lines_of_accounting"); // RDS
+ private static final Set allowedTableNames = Set.of("transportation_accounting_codes",
+ "lines_of_accounting"); // RDS
private static final Set allowedTrdmTableNames = Set.of("TRNSPRTN_ACNT", "LN_OF_ACCT"); // TRDM
private static final int yearsToReturnIfOurTableIsEmpty = 3;
@@ -63,7 +67,7 @@ public TransportationAccountingCodesHandler(
// This cron job will handle the entirety of ensuring the RDS db
// is up to date with proper TGET data.
- public void tacCron() throws SQLException, DatatypeConfigurationException, TableRequestException, IOException {
+ public void tacCron() throws SQLException, DatatypeConfigurationException, TableRequestException, IOException, ParseException {
// Gather the last update from TRDM
LastTableUpdateResponse response = lastTableUpdate("TRNSPRTN_ACNT");
XMLGregorianCalendar ourLastUpdate = getOurLastTGETUpdate("transportation_accounting_codes");
@@ -84,7 +88,7 @@ private LastTableUpdateResponse lastTableUpdate(String physicalName) throws Tabl
}
private XMLGregorianCalendar getOurLastTGETUpdate(String tableName)
- throws SQLException, DatatypeConfigurationException {
+ throws SQLException, DatatypeConfigurationException, ParseException {
if (!allowedTableNames.contains(tableName)) {
throw new IllegalArgumentException("Invalid table name");
}
@@ -95,13 +99,20 @@ private XMLGregorianCalendar getOurLastTGETUpdate(String tableName)
if (rs.next()) {
Timestamp lastUpdatedTimestamp = rs.getTimestamp("rds_last_updated");
- return DatatypeFactory.newInstance()
- .newXMLGregorianCalendar(lastUpdatedTimestamp.toString());
+
+ // Convert our last update pulled from the db into XML Gregorian Calendar friendly format
+ SimpleDateFormat xmlUnfriendlyLastUpdateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
+ SimpleDateFormat xmlFriendlyLastUpdateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
+
+ Date date = xmlUnfriendlyLastUpdateFormat.parse(lastUpdatedTimestamp.toString());
+ String xmlGregorianCalendarString = xmlFriendlyLastUpdateFormat.format(date);
+
+ return DatatypeFactory.newInstance().newXMLGregorianCalendar(xmlGregorianCalendarString);
}
// If table was empty, return default years to retrieve as we have no TGET data
GregorianCalendar calendar = new GregorianCalendar();
- calendar.add(Calendar.YEAR, yearsToReturnIfOurTableIsEmpty);
+ calendar.add(Calendar.YEAR, -yearsToReturnIfOurTableIsEmpty);
return DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar);
}
@@ -132,7 +143,7 @@ private void updateTGETData(XMLGregorianCalendar ourLastUpdate, String trdmTable
logger.info("finished inserting TACs into DB");
break;
case "lines_of_accounting":
- // TODO:
+ // TODO:
default:
throw new IllegalArgumentException("Invalid rds table name");
}