diff --git a/appointment-import/src/main/java/smash/appointment/parse/LihControlMappingParser.java b/appointment-import/src/main/java/smash/appointment/parse/LihControlMappingParser.java index 3163eed9966d052bea816326d4ae3632ff2406bc..f0dc3de54d5f514defb6c882e3a20abb4d7dbd47 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/LihControlMappingParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/LihControlMappingParser.java @@ -154,4 +154,9 @@ public class LihControlMappingParser extends SubjectParser { return false; } + @Override + protected boolean parsePostponed(Row row) { + return false; + } + } diff --git a/appointment-import/src/main/java/smash/appointment/parse/LihControlParser.java b/appointment-import/src/main/java/smash/appointment/parse/LihControlParser.java index c5b587f466ee3e91a4eceabf1236072d493512bf..a99ba461e07858392db5d4947a68e25a36aa8a1a 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/LihControlParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/LihControlParser.java @@ -5,7 +5,9 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; +import org.apache.poi.ss.usermodel.Color; import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.xssf.usermodel.XSSFColor; public class LihControlParser extends SubjectParser { @@ -54,7 +56,7 @@ public class LihControlParser extends SubjectParser { return ""; } - private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd"); + private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd"); @Override protected String parseAddDate(Row row) { @@ -123,6 +125,7 @@ public class LihControlParser extends SubjectParser { remarks.add(getComments(row.getCell(14))); remarks.add(getComments(row.getCell(15))); remarks.add(getComments(row.getCell(16))); + remarks.add("Inclusion="+getString(row.getCell(17))); remarks.add(getString(row.getCell(18))); remarks.add(getString(row.getCell(19))); String result = ""; @@ -208,8 +211,51 @@ public class LihControlParser extends SubjectParser { return false; } + @Override + protected boolean parsePostponed(Row row) { + Color color = row.getCell(0).getCellStyle().getFillForegroundColorColor(); + if (color == null) { + return false; + } + + XSSFColor c = (XSSFColor) color; + String colorString = c.getARGBHex().substring(2); + switch (colorString) { + case ("FFC000"):// orange + return false; + case ("FFFF00"):// yellow + return false; + case ("FF0000"):// red + return false; + case ("FF3399"):// pink + return true; + case ("00B050"):// green + return false; + } + throw new RuntimeException(parseName(row) + " " + parseSurname(row) + ": Unknown color: " + colorString); + } + @Override protected boolean parseResigned(Row row) { - return false; + Color color = row.getCell(0).getCellStyle().getFillForegroundColorColor(); + if (color == null) { + return false; + } + + XSSFColor c = (XSSFColor) color; + String colorString = c.getARGBHex().substring(2); + switch (colorString) { + case ("FFC000"):// orange + return false; + case ("FFFF00"):// yellow + return false; + case ("FF0000"):// red + return true; + case ("FF3399"):// pink + return false; + case ("00B050"):// green + return false; + } + throw new RuntimeException(parseName(row) + " " + parseSurname(row) + ": Unknown color: " + colorString); } } diff --git a/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java b/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java index e5802c237d7caf2c35655f27037bcafdbd151e87..7a7ec376543578b77ca3db1e2fb2206e79479f89 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java @@ -157,4 +157,9 @@ public class PrcControlParser extends SubjectParser { protected boolean parseResigned(Row row) { return false; } + + @Override + protected boolean parsePostponed(Row row) { + return false; + } } diff --git a/appointment-import/src/main/java/smash/appointment/parse/PrcFlyingParser.java b/appointment-import/src/main/java/smash/appointment/parse/PrcFlyingParser.java index 168a3cfdd2d3443641e12d449d819fb6bcd439be..1ee25fa2de02e448063e86233b9bf137288c0a65 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/PrcFlyingParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/PrcFlyingParser.java @@ -163,5 +163,9 @@ public class PrcFlyingParser extends SubjectParser { protected boolean parseResigned(Row row) { return false; } + @Override + protected boolean parsePostponed(Row row) { + return false; + } } diff --git a/appointment-import/src/main/java/smash/appointment/parse/PrcSubjectsParser.java b/appointment-import/src/main/java/smash/appointment/parse/PrcSubjectsParser.java index a06e088395e0e174ea3625507faf7affb26e1b3a..5badd40394a25d065d17796f3547427dc34c6d42 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/PrcSubjectsParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/PrcSubjectsParser.java @@ -205,4 +205,9 @@ public class PrcSubjectsParser extends SubjectParser { return false; } } + + @Override + protected boolean parsePostponed(Row row) { + return false; + } } diff --git a/appointment-import/src/main/java/smash/appointment/parse/Subject.java b/appointment-import/src/main/java/smash/appointment/parse/Subject.java index 893fbfd450461c84d13f68ebd85ccb4c3162e942..3921389cef0d569764e03ca6d4df4f0ec86cd4f7 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/Subject.java +++ b/appointment-import/src/main/java/smash/appointment/parse/Subject.java @@ -32,6 +32,7 @@ public class Subject { private String toBeSeenAt; private boolean dead = false; private boolean resigned = false; + private boolean postponed = false; private List<String> languages = new ArrayList<>(); @@ -476,6 +477,9 @@ public class Subject { setAddDate(getMergedValue("addDate", this.getAddDate(), subject.getAddDate(), errorPrefix)); setmPowerId(getMergedValue("mPowerId", this.getmPowerId(), subject.getmPowerId(), errorPrefix)); setType(getMergedValue("type", this.getType(), subject.getType(), errorPrefix)); + setResigned(this.isResigned()|| subject.isResigned()); + setDead(this.isDead()|| subject.isDead()); + setPostponed(this.isPostponed()|| subject.isPostponed()); // override only when to be seen by flying team if (subject.getToBeSeenAt().equals("F")) { setToBeSeenAt(subject.getToBeSeenAt()); @@ -566,4 +570,20 @@ public class Subject { } } + /** + * @return the postponed + * @see #postponed + */ + public boolean isPostponed() { + return postponed; + } + + /** + * @param postponed the postponed to set + * @see #postponed + */ + public void setPostponed(boolean postponed) { + this.postponed = postponed; + } + } diff --git a/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java b/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java index 6292d3cb961547a986c42b59c3b0d665d2225bd9..f979012b76b8562a4757c6fa63ba1e6e3a408bbe 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java @@ -91,11 +91,13 @@ public abstract class SubjectParser { result.setToBeSeenAt(parseToBeSeenAt(row)); result.setDead(parseDead(row)); result.setResigned(parseResigned(row)); + result.setPostponed(parsePostponed(row)); return result; } protected abstract boolean parseDead(Row row); + protected abstract boolean parsePostponed(Row row); protected abstract boolean parseResigned(Row row); diff --git a/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java index ebbd5866b0fa122704b3a0ef8a160a234372147b..5c59412dfbd387afab381b8e4d824dc47a7baa4d 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java +++ b/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java @@ -30,6 +30,7 @@ public class SubjectSqlExporter extends SqlExporter { result.append("dead,"); result.append("default_written_communication_language_id,"); result.append("resigned,"); + result.append("postponed,"); result.append("date_born) "); result.append("values ("); @@ -74,6 +75,7 @@ public class SubjectSqlExporter extends SqlExporter { result.append("null,"); } result.append(subject.isResigned() + ","); + result.append(subject.isPostponed() + ","); result.append(getDateVal(subject.getBirthDate())); result.append(");\n"); diff --git a/appointment-import/src/test/java/smash/appointment/parse/LihControlParserTest.java b/appointment-import/src/test/java/smash/appointment/parse/LihControlParserTest.java index bce5ee61b716e85c661cbae9db0ff0c792362469..05845e0558f5930907eaf9443d413a37d35762d8 100644 --- a/appointment-import/src/test/java/smash/appointment/parse/LihControlParserTest.java +++ b/appointment-import/src/test/java/smash/appointment/parse/LihControlParserTest.java @@ -1,6 +1,8 @@ package smash.appointment.parse; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import java.util.List; @@ -11,17 +13,16 @@ import org.junit.Before; import org.junit.Test; public class LihControlParserTest extends TestBase { - Logger logger = Logger.getLogger(LihControlParserTest.class); - - LihControlParser processor = new LihControlParser(); + Logger logger = Logger.getLogger(LihControlParserTest.class); + LihControlParser processor = new LihControlParser(); @AfterClass public static void tearDownAfterClass() throws Exception { } @Before - public void setUp() { + public void setUp() { super.setUp(); } @@ -31,8 +32,9 @@ public class LihControlParserTest extends TestBase { @Test public void testParseLang() throws Exception { - assertEquals("English",processor.getMappedLanguage("EN")); + assertEquals("English", processor.getMappedLanguage("EN")); } + @Test public void test() throws Exception { List<Subject> entries = processor.processExcel("testFiles/lihControlExample.xlsx"); @@ -43,7 +45,7 @@ public class LihControlParserTest extends TestBase { assertEquals("Name", subject.getName()); assertEquals("Surname", subject.getSurname()); assertTrue(subject.getRemarks().contains("001 rdv 01/09/2015 9h jyf")); - assertTrue(subject.getRemarks().contains("PD family relation=pd info")); + assertTrue(subject.getRemarks().contains("PD family relation=pd info")); assertEquals("11, Rue blabla", subject.getAddress()); assertEquals("L-3322", subject.getZipCode()); assertEquals("Luxembourg", subject.getCity()); @@ -58,11 +60,9 @@ public class LihControlParserTest extends TestBase { assertNotNull(subject.getAddDate()); assertEquals("", subject.getNdNumber()); assertEquals("1937-01-03", subject.getBirthDate()); - assertTrue(subject.getRemarks().contains("some other remark")); - assertTrue(subject.getRemarks().contains("at home: NMS + RFQ 1 + RFQ 2 + REM + PDSS: manque une page ds RFQ => Linda pr level b 09/09/15")); - assertTrue(subject.getLanguages().contains("French")); - assertTrue(subject.getLanguages().contains("German")); + assertTrue(subject.getRemarks().contains("some other remark")); + assertTrue(subject.getRemarks().contains("at home: NMS + RFQ 1 + RFQ 2 + REM + PDSS: manque une page ds RFQ => Linda pr level b 09/09/15")); + assertTrue(subject.getLanguages().contains("French")); + assertTrue(subject.getLanguages().contains("German")); } - - }