clean up, check if date between week range

main
Said Gedik 2023-06-15 11:16:06 +02:00
parent 218e0087c9
commit e424a133c4
1 changed files with 22 additions and 30 deletions

View File

@ -11,6 +11,7 @@ import java.util.ArrayList;
import java.util.Date;
import com.bmc.arsys.api.ARException;
import com.bmc.thirdparty.org.springframework.cglib.core.Local;
import com.nttdata.calender.api.Query;
import com.nttdata.calender.api.RemedyJavaAPI;
import com.nttdata.calender.changes.ChangeItem;
@ -26,19 +27,10 @@ public class PlanTimes {
}
public void setPlanTimes(PlanTimesRequest req) throws ARException {
System.out.println("filter: " + req.getFilter());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
LocalDate startDate = LocalDate.parse(req.getRenderStartDate(), formatter);
LocalDate endDate = LocalDate.parse(req.getRenderEndDate(), formatter);
int endWeek = endDate.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR);
/*
* System.out.printf("startDate: %s (%dw%d)%n", req.getRenderStartDate(),
* startDate.getYear(), startWeek);
* System.out.printf("endDate: %s (%dw%d)%n", req.getRenderEndDate(),
* endDate.getYear(), endWeek);
*/
var queryChanges = new Query.QueryBuilder(formName).addFieldId("D2", 1000000350)
.addFieldId("ChangeNr", 1000000182).build();
@ -61,31 +53,31 @@ public class PlanTimes {
startDate = startDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
}
System.out.println(remedyJavaAPI.getFieldDatabaseName(formName, 1000000350));
var changesInDateRange = remedyJavaAPI.queryFieldsById("\'Scheduled Start Date\' > \"" + req.getRenderStartDate() + "\" AND \'Scheduled Start Date\' <= \""
+ req.getRenderEndDate() + "\"", queryChanges.getFieldIds(), formName, null, 0, 20);
for (var c : changesInDateRange) System.out.println(c);
var changesInDateRange = remedyJavaAPI.queryFieldsById(
"\'Scheduled Start Date\' > \"" + req.getRenderStartDate() + "\" AND \'Scheduled Start Date\' <= \""
+ req.getRenderEndDate() + "\"",
queryChanges.getFieldIds(), formName, null, 0, 0);
for (var week : calenderWeeks) {
System.out.println(week.getStartDate() + " ---> " + week.getEndDate());
for (var change : changesInDateRange) {
LocalDate d2 = timestampToDate(change.get(queryChanges.getFieldId("D2")).toString());
LocalDate dateStart = LocalDate.parse(week.getStartDate(), formatter);
LocalDate dateEnd = LocalDate.parse(week.getEndDate(), formatter);
if (d2.isAfter(dateStart) && (d2.isEqual(dateEnd) || d2.isBefore(dateEnd))) {
System.out.println(d2);
}
/*
* for (var c : changes) {
* var date = timestampToDate(c.get(queryChanges.getFieldId("D2")).toString());
* System.out.println(c.get(queryChanges.getFieldId("ChangeNr")) + " -> " +
* date);
* }
*/
for (var v : calenderWeeks) {
System.out
.println(v.getWeek() + " - " + v.getPlanTime() + " - " + v.getStartDate() + " - " + v.getEndDate());
}
}
public String timestampToDate(String timestamp) {
for (var v : calenderWeeks)
System.out.println(v.getWeek() + " - " + v.getPlanTime() + " - " + v.getStartDate() + " - " + v.getEndDate());
}
public LocalDate timestampToDate(String timestamp) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
String numericPart = timestamp.replaceAll("[^\\d]", "");
long ts = Long.parseLong(numericPart);
@ -94,6 +86,6 @@ public class PlanTimes {
ts *= 1000;
String date = sdf.format(new Date(ts));
return date;
return LocalDate.parse(date, formatter);
}
}