manueltauber 2023-05-22 11:31:49 +02:00
commit 1d3715e7a9
2 changed files with 46 additions and 36 deletions

View File

@ -1,5 +1,7 @@
package com.nttdata.calender.changes;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import com.bmc.arsys.api.ARException;
@ -122,51 +124,59 @@ public class ChangeRequest {
if (column.equals("D2")) {
var startFrom = filter.get(i).getCriteria()[0];
var startTo = filter.get(i).getCriteria()[1];
if (!startFrom.isEmpty() && !startTo.isEmpty()) {
String inputFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
String outputFormat = "dd/MM/yyyy";
LocalDateTime dateTimeFrom = LocalDateTime.parse(startFrom, DateTimeFormatter.ofPattern(inputFormat));
LocalDateTime dateTimeTo = LocalDateTime.parse(startTo, DateTimeFormatter.ofPattern(inputFormat));
String startFromFormatted = dateTimeFrom.format(DateTimeFormatter.ofPattern(outputFormat));
String startToFormatted = dateTimeTo.format(DateTimeFormatter.ofPattern(outputFormat));
if (!startFromFormatted.isEmpty() && !startToFormatted.isEmpty()) {
var dateColumn = api.getFieldDatabaseName(query.getFormName(), query.getFieldId(column));
// Same day changes need to startFrom=day and startTo=day+24h 60m 60s
if (startFrom.equals(startTo)) {
startTo = "\' < (\"" + startTo + "\"" + " + (24 * (60 * 60)))";
if (startFromFormatted.equals(startToFormatted)) {
startToFormatted = "\' < (\"" + startToFormatted + "\"" + " + (24 * (60 * 60)))";
} else
startTo = "\' <= \"" + startTo + "\"";
startToFormatted = "\' <= \"" + startToFormatted + "\"";
qualifier += "\'" + dateColumn + "\' >= \"" + startFrom + "\" AND ";
qualifier += "\'" + dateColumn + startTo;
qualifier += "\'" + dateColumn + "\' >= \"" + startFromFormatted + "\" AND ";
qualifier += "\'" + dateColumn + startToFormatted;
}
qualifier = "(" + qualifier + ")";
continue;
}
} else {
column = api.getFieldDatabaseName(query.getFormName(), query.getFieldId(column));
column = api.getFieldDatabaseName(query.getFormName(), query.getFieldId(column));
var inner_filter = "\'" + column + "\' ";
var criterias = filter.get(i).getCriteria();
var inner_concat = " OR ";
var inner_criteria_prefix = "";
var inner_filter = "\'" + column + "\' ";
var criterias = filter.get(i).getCriteria();
var inner_concat = " OR ";
var inner_criteria_prefix = "";
switch (filter.get(i).getFilter()) {
case "equals":
inner_filter += "= ";
break;
case "contains":
inner_filter += "LIKE ";
inner_concat = " AND ";
inner_criteria_prefix = "%";
break;
default:
throw new ARException();
}
for (int j = 0; j < criterias.length; j++) {
criterias[j] = inner_criteria_prefix + criterias[j] + inner_criteria_prefix;
inner_qualifier += "(" + inner_filter + "\"" + criterias[j] + "\")";
if (j < criterias.length - 1) {
inner_qualifier += inner_concat;
switch (filter.get(i).getFilter()) {
case "equals":
inner_filter += "= ";
break;
case "contains":
inner_filter += "LIKE ";
inner_concat = " AND ";
inner_criteria_prefix = "%";
break;
default:
throw new ARException();
}
for (int j = 0; j < criterias.length; j++) {
criterias[j] = inner_criteria_prefix + criterias[j] + inner_criteria_prefix;
inner_qualifier += "(" + inner_filter + "\"" + criterias[j] + "\")";
if (j < criterias.length - 1) {
inner_qualifier += inner_concat;
}
}
qualifier += "(" + inner_qualifier + ")";
}
qualifier += "(" + inner_qualifier + ")";
if (i < filter.size() - 1) {
qualifier += " AND ";
}

View File

@ -2,7 +2,7 @@
<Configuration status="info">
<Appenders>
<RollingFile name="application"
fileName="./backend/log/application.log" filePattern="application-%d{yyyy-MM-dd-HH-mm}-%i.log">
fileName="./backend/log/application.log" filePattern="backend/log/application-%d{yyyy-MM-dd-HH-mm}-%i.log">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd-HH:mm:ss} %-5p %m%n%ex{full}</Pattern>
</PatternLayout>
@ -11,7 +11,7 @@
</Policies>
</RollingFile>
<RollingFile name="error"
fileName="./backend/log/error.log" filePattern="error-%d{yyyy-MM-dd-HH-mm}-%i.log">
fileName="./backend/log/error.log" filePattern="backend/log/error-%d{yyyy-MM-dd-HH-mm}-%i.log">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd-HH:mm:ss} %-5p %m%n%ex{full}</Pattern>
</PatternLayout>
@ -20,7 +20,7 @@
</Policies>
</RollingFile>
<RollingFile name="warn"
fileName="./backend/log/warn.log" filePattern="warn-%d{yyyy-MM-dd-HH-mm}-%i.log">
fileName="./backend/log/warn.log" filePattern="backend/log/warn-%d{yyyy-MM-dd-HH-mm}-%i.log">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd-HH:mm:ss} %-5p %m%n</Pattern>
</PatternLayout>