Skip to content
Snippets Groups Projects
Commit 6a162e80 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

finishing visits for dead and resigned people added

parent 14eccd59
No related branches found
No related tags found
1 merge request!5Appointments dev
...@@ -81,6 +81,9 @@ public class AppointmentDao { ...@@ -81,6 +81,9 @@ public class AppointmentDao {
for (AppointmentEntry appointmentEntry : list) { for (AppointmentEntry appointmentEntry : list) {
if (appointmentEntry.getTypes().contains(AppointmentType.LEVEL_AQUEST) || appointmentEntry.getTypes().contains(AppointmentType.LEVEL_A_TQ)) { if (appointmentEntry.getTypes().contains(AppointmentType.LEVEL_AQUEST) || appointmentEntry.getTypes().contains(AppointmentType.LEVEL_A_TQ)) {
if (currentVisit.getAppointments().size() > 0) { if (currentVisit.getAppointments().size() > 0) {
if (shouldBeFinished(currentVisit.getEndDate())) {
currentVisit.setFinished(true);
}
result.add(currentVisit); result.add(currentVisit);
} }
...@@ -100,8 +103,11 @@ public class AppointmentDao { ...@@ -100,8 +103,11 @@ public class AppointmentDao {
if (currentVisit.getAppointments().size() > 0) { if (currentVisit.getAppointments().size() > 0) {
result.add(currentVisit); result.add(currentVisit);
} }
if (shouldBeFinished(currentVisit.getEndDate()) && !subject.isDead() && !subject.isResigned()) { if (shouldBeFinished(currentVisit.getEndDate())) {
result.add(createNextVisit(currentVisit)); currentVisit.setFinished(true);
if (!subject.isDead() && !subject.isResigned()) {
result.add(createNextVisit(currentVisit));
}
} }
return result; return result;
} }
...@@ -109,7 +115,7 @@ public class AppointmentDao { ...@@ -109,7 +115,7 @@ public class AppointmentDao {
protected Visit createNextVisit(Visit currentVisit) throws ParseException { protected Visit createNextVisit(Visit currentVisit) throws ParseException {
Visit visit = new Visit(currentVisit.getSubject()); Visit visit = new Visit(currentVisit.getSubject());
Calendar date = Calendar.getInstance(); Calendar date = Calendar.getInstance();
String dateStr =currentVisit.getStartDate(); String dateStr = currentVisit.getStartDate();
date.setTime(DATE_FORMATTER.parse(dateStr)); date.setTime(DATE_FORMATTER.parse(dateStr));
if (currentVisit.getSubject().getType().equals(SubjectType.CONTROL)) { if (currentVisit.getSubject().getType().equals(SubjectType.CONTROL)) {
date.add(Calendar.YEAR, 4); date.add(Calendar.YEAR, 4);
......
...@@ -97,13 +97,7 @@ public class Main { ...@@ -97,13 +97,7 @@ public class Main {
List<Visit> visits = appointmentDao.getVisits(); List<Visit> visits = appointmentDao.getVisits();
for (int i = 0; i < visits.size(); i++) { for (int i = 0; i < visits.size(); i++) {
Visit visit = visits.get(i); Visit visit = visits.get(i);
boolean finished = false; System.out.println(visitSqlExporter.toSql(visit));
if (i < visits.size() - 1) {
if (visit.getSubject().equals(visits.get(i + 1).getSubject())) {
finished = true;
}
}
System.out.println(visitSqlExporter.toSql(visit, finished));
} }
} catch (ParseException exp) { } catch (ParseException exp) {
......
...@@ -11,7 +11,7 @@ import org.apache.log4j.Logger; ...@@ -11,7 +11,7 @@ import org.apache.log4j.Logger;
public class Visit { public class Visit {
static Subject UNKNOWN; static Subject UNKNOWN;
static { static {
UNKNOWN = new Subject("NOBODY","","","---"); UNKNOWN = new Subject("NOBODY", "", "", "---");
UNKNOWN.setType(SubjectType.CONTROL); UNKNOWN.setType(SubjectType.CONTROL);
UNKNOWN.setAddDate("1900-01-01"); UNKNOWN.setAddDate("1900-01-01");
UNKNOWN.setAddress(""); UNKNOWN.setAddress("");
...@@ -28,11 +28,12 @@ public class Visit { ...@@ -28,11 +28,12 @@ public class Visit {
private Subject subject; private Subject subject;
private List<AppointmentEntry> appointments = new ArrayList<>(); private List<AppointmentEntry> appointments = new ArrayList<>();
private String startDate; private String startDate;
private boolean finished = false;
public Visit(Subject subject) { public Visit(Subject subject) {
if (subject==null) { if (subject == null) {
subject = UNKNOWN; subject = UNKNOWN;
} }
this.subject = subject; this.subject = subject;
...@@ -77,7 +78,7 @@ public class Visit { ...@@ -77,7 +78,7 @@ public class Visit {
public String getStartDate() { public String getStartDate() {
if (appointments.size() > 0) { if (appointments.size() > 0) {
return appointments.get(0).getDay().substring(0, 10); return appointments.get(0).getDay().substring(0, 10);
} else if (startDate==null){ } else if (startDate == null) {
return "1900-01-01"; return "1900-01-01";
} else { } else {
return startDate; return startDate;
...@@ -114,4 +115,20 @@ public class Visit { ...@@ -114,4 +115,20 @@ public class Visit {
this.startDate = newDate; 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;
}
} }
...@@ -5,7 +5,7 @@ import java.util.Calendar; ...@@ -5,7 +5,7 @@ import java.util.Calendar;
public class VisitSqlExporter extends SqlExporter { public class VisitSqlExporter extends SqlExporter {
AppointmentSqlExporter appointmentSqlExporter = new AppointmentSqlExporter(); AppointmentSqlExporter appointmentSqlExporter = new AppointmentSqlExporter();
public String toSql(Visit visit, boolean isFinished) throws ParseException { public String toSql(Visit visit) throws ParseException {
StringBuilder result = new StringBuilder(""); StringBuilder result = new StringBuilder("");
result.append("insert into web_visit ("); result.append("insert into web_visit (");
...@@ -18,7 +18,7 @@ public class VisitSqlExporter extends SqlExporter { ...@@ -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("(SELECT id from web_subject where screening_number = "+getStringVal(visit.getSubject().getScreeningNumber()) + "),");
result.append(getStringVal(visit.getStartDate()) + ","); result.append(getStringVal(visit.getStartDate()) + ",");
result.append(getStringVal(visit.getEndDate()) + ","); result.append(getStringVal(visit.getEndDate()) + ",");
result.append(isFinished); result.append(visit.isFinished());
result.append(");\n"); result.append(");\n");
for (AppointmentEntry entry: visit.getAppointments()) { for (AppointmentEntry entry: visit.getAppointments()) {
result.append(appointmentSqlExporter.toSql(entry)+"\n"); result.append(appointmentSqlExporter.toSql(entry)+"\n");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment