From 9142a1e5e835ea2480bd2530da5eb1cb757e9794 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Thu, 15 Jun 2023 10:20:00 +0200 Subject: [PATCH] add calenderweek to arraylist per week --- .../nttdata/calender/planTimes/PlanTimes.java | 62 ++++++++++++++++--- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/planTimes/PlanTimes.java b/backend/src/main/java/com/nttdata/calender/planTimes/PlanTimes.java index ccb3453..2401654 100644 --- a/backend/src/main/java/com/nttdata/calender/planTimes/PlanTimes.java +++ b/backend/src/main/java/com/nttdata/calender/planTimes/PlanTimes.java @@ -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; } }