add calenderweek to arraylist per week

main
Said Gedik 2023-06-15 10:20:00 +02:00
parent e73222d3ce
commit 9142a1e5e8
1 changed files with 55 additions and 7 deletions

View File

@ -1,13 +1,19 @@
package com.nttdata.calender.planTimes;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.IsoFields;
import java.time.temporal.TemporalAdjuster;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.Date;
import com.bmc.arsys.api.ARException;
import com.nttdata.calender.api.Query;
import com.nttdata.calender.api.RemedyJavaAPI;
import com.nttdata.calender.changes.ChangeItem;
public class PlanTimes {
private RemedyJavaAPI remedyJavaAPI;
@ -24,17 +30,59 @@ public class PlanTimes {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
LocalDate startDate = LocalDate.parse(req.getRenderStartDate(), formatter);
LocalDate endDate = LocalDate.parse(req.getRenderEndDate(), formatter);
int startWeek = startDate.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR);
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("ASF:WI_TAS_Paket").addFieldId("D2", 1000000350)
.addFieldId("ChangeNr", 1000000182).build();
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 changes = remedyJavaAPI.queryFieldsById("", queryChanges.getFieldIds(), queryChanges.getFormName(), null, 0,
0);
var queryChanges = new Query.QueryBuilder("ASF:WI_TAS_Paket").addFieldId("D2", 1000000350).build();
/*
* for (var c : changes) {
* var date = timestampToDate(c.get(queryChanges.getFieldId("D2")).toString());
* System.out.println(c.get(queryChanges.getFieldId("ChangeNr")) + " -> " +
* date);
* }
*/
var changes = remedyJavaAPI.queryFieldsById("", queryChanges.getFieldIds(), queryChanges.getFormName(), null, 0, 0);
for (var c : changes) System.out.println(c);
while (!startDate.isAfter(endDate)) {
CalendarWeek calendarWeek = new CalendarWeek();
System.out.println("endDate: " + req.getRenderEndDate());
int startWeek = startDate.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR);
int year = startDate.get(IsoFields.WEEK_BASED_YEAR);
calendarWeek.setWeek(year + "w" + startWeek);
calendarWeek.setPlanTime(0);
calendarWeek.setStartDate(startDate.format(formatter));
LocalDate endOfWeek = startDate.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
if (endOfWeek.isAfter(endDate))
endOfWeek = endDate;
calendarWeek.setEndDate(endOfWeek.format(formatter));
calenderWeeks.add(calendarWeek);
startDate = startDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
}
for (var v : calenderWeeks) System.out.println(v);
}
public String timestampToDate(String timestamp) {
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
String numericPart = timestamp.replaceAll("[^\\d]", "");
long ts = Long.parseLong(numericPart);
if (numericPart.length() <= 10)
ts *= 1000;
String date = sdf.format(new Date(ts));
return date;
}
}