From 6a162e8043a9132006e431f31fbc9b49e8e40d6c Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 9 Mar 2017 17:31:47 +0100 Subject: [PATCH] finishing visits for dead and resigned people added --- .../appointment/parse/AppointmentDao.java | 12 ++++++--- .../java/smash/appointment/parse/Main.java | 8 +----- .../java/smash/appointment/parse/Visit.java | 27 +++++++++++++++---- .../appointment/parse/VisitSqlExporter.java | 4 +-- 4 files changed, 34 insertions(+), 17 deletions(-) diff --git a/appointment-import/src/main/java/smash/appointment/parse/AppointmentDao.java b/appointment-import/src/main/java/smash/appointment/parse/AppointmentDao.java index 6f627c83..ab587150 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/AppointmentDao.java +++ b/appointment-import/src/main/java/smash/appointment/parse/AppointmentDao.java @@ -81,6 +81,9 @@ public class AppointmentDao { for (AppointmentEntry appointmentEntry : list) { if (appointmentEntry.getTypes().contains(AppointmentType.LEVEL_AQUEST) || appointmentEntry.getTypes().contains(AppointmentType.LEVEL_A_TQ)) { if (currentVisit.getAppointments().size() > 0) { + if (shouldBeFinished(currentVisit.getEndDate())) { + currentVisit.setFinished(true); + } result.add(currentVisit); } @@ -100,8 +103,11 @@ public class AppointmentDao { if (currentVisit.getAppointments().size() > 0) { result.add(currentVisit); } - if (shouldBeFinished(currentVisit.getEndDate()) && !subject.isDead() && !subject.isResigned()) { - result.add(createNextVisit(currentVisit)); + if (shouldBeFinished(currentVisit.getEndDate())) { + currentVisit.setFinished(true); + if (!subject.isDead() && !subject.isResigned()) { + result.add(createNextVisit(currentVisit)); + } } return result; } @@ -109,7 +115,7 @@ public class AppointmentDao { protected Visit createNextVisit(Visit currentVisit) throws ParseException { Visit visit = new Visit(currentVisit.getSubject()); Calendar date = Calendar.getInstance(); - String dateStr =currentVisit.getStartDate(); + String dateStr = currentVisit.getStartDate(); date.setTime(DATE_FORMATTER.parse(dateStr)); if (currentVisit.getSubject().getType().equals(SubjectType.CONTROL)) { date.add(Calendar.YEAR, 4); diff --git a/appointment-import/src/main/java/smash/appointment/parse/Main.java b/appointment-import/src/main/java/smash/appointment/parse/Main.java index 8f99f9ef..0d7c3423 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/Main.java +++ b/appointment-import/src/main/java/smash/appointment/parse/Main.java @@ -97,13 +97,7 @@ public class Main { List<Visit> visits = appointmentDao.getVisits(); for (int i = 0; i < visits.size(); i++) { Visit visit = visits.get(i); - boolean finished = false; - if (i < visits.size() - 1) { - if (visit.getSubject().equals(visits.get(i + 1).getSubject())) { - finished = true; - } - } - System.out.println(visitSqlExporter.toSql(visit, finished)); + System.out.println(visitSqlExporter.toSql(visit)); } } catch (ParseException exp) { diff --git a/appointment-import/src/main/java/smash/appointment/parse/Visit.java b/appointment-import/src/main/java/smash/appointment/parse/Visit.java index b585c524..98b2a896 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/Visit.java +++ b/appointment-import/src/main/java/smash/appointment/parse/Visit.java @@ -11,7 +11,7 @@ import org.apache.log4j.Logger; public class Visit { static Subject UNKNOWN; static { - UNKNOWN = new Subject("NOBODY","","","---"); + UNKNOWN = new Subject("NOBODY", "", "", "---"); UNKNOWN.setType(SubjectType.CONTROL); UNKNOWN.setAddDate("1900-01-01"); UNKNOWN.setAddress(""); @@ -28,11 +28,12 @@ public class Visit { private Subject subject; private List<AppointmentEntry> appointments = new ArrayList<>(); - - private String startDate; + + private String startDate; + private boolean finished = false; public Visit(Subject subject) { - if (subject==null) { + if (subject == null) { subject = UNKNOWN; } this.subject = subject; @@ -77,7 +78,7 @@ public class Visit { public String getStartDate() { if (appointments.size() > 0) { return appointments.get(0).getDay().substring(0, 10); - } else if (startDate==null){ + } else if (startDate == null) { return "1900-01-01"; } else { return startDate; @@ -114,4 +115,20 @@ public class Visit { this.startDate = newDate; } + /** + * @return the finished + * @see #finished + */ + public boolean isFinished() { + return finished; + } + + /** + * @param finished the finished to set + * @see #finished + */ + public void setFinished(boolean finished) { + this.finished = finished; + } + } diff --git a/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java index 9cd7dff0..6ffef703 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java +++ b/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java @@ -5,7 +5,7 @@ import java.util.Calendar; public class VisitSqlExporter extends SqlExporter { AppointmentSqlExporter appointmentSqlExporter = new AppointmentSqlExporter(); - public String toSql(Visit visit, boolean isFinished) throws ParseException { + public String toSql(Visit visit) throws ParseException { StringBuilder result = new StringBuilder(""); result.append("insert into web_visit ("); @@ -18,7 +18,7 @@ public class VisitSqlExporter extends SqlExporter { result.append("(SELECT id from web_subject where screening_number = "+getStringVal(visit.getSubject().getScreeningNumber()) + "),"); result.append(getStringVal(visit.getStartDate()) + ","); result.append(getStringVal(visit.getEndDate()) + ","); - result.append(isFinished); + result.append(visit.isFinished()); result.append(");\n"); for (AppointmentEntry entry: visit.getAppointments()) { result.append(appointmentSqlExporter.toSql(entry)+"\n"); -- GitLab