У меня проблема со сбором фактов DaySetting.
public class DaySetting {
String businessDate;
Integer weekNo;
Integer monthNo;
}
У меня очередная смена класса:
public class Shift {
@PlanningId
private String id;
private LocalDateTime start;
private LocalDateTime end;
public Long getShiftDuration() {
long minutes = ChronoUnit.MINUTES.between(start, end);
return minutes;
}
public String getStartDate() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String dateStr = getStart().toLocalDate().format(formatter);
return dateStr;
}
}
Настройка дня может принимать такие значения, как:
public class DaySetting {
String businessDate = 2024-06-01;
Integer weekNo = 1; // first week of June
Integer monthNo = 6;//June
}
public class DaySetting {
String businessDate = 2024-06-02;
Integer weekNo = 1; // first week of June
Integer monthNo = 6;//June
}
public class DaySetting {
String businessDate = 2024-06-09;
Integer weekNo = 2; // Second week of June
Integer monthNo = 6;//June
}
public class DaySetting {
String businessDate = 2024-06-10;
Integer weekNo = 2; // second week of June
Integer monthNo = 6;//June
}
Мне нужно суммировать продолжительность работы на основе значения WeekNo. на неделю№1 2 смены, будут суммироваться. Продолжительность первых двух смен будет суммироваться за 1 неделю,
Последние две смены будут суммироваться за 2 неделю.
Итак, далеко то, что я пробовал ниже:
Constraint workingHoursLessThanMaximumInContractPerWeek(ConstraintFactory constraintFactory) {
return constraintFactory.forEach(DaySetting.class)
.join(Shift.class)
.groupBy((daySetting, shift) -> day.getWeekNo(),
ConstraintCollectors.sumLong((daySetting, shift) -> shift.getShiftDuration()))
//Shift don't have weekNo field. It only have getStartDate() to get the business date,
//so we have to take the date value from DaySettings class and match with the date of Shift class. How to achieve this with the constraints.
.penalize(HardMediumSoftScore.ONE_SOFT, ((weekNo, sumValue))->{
return sumValue;
})
.asConstraint("Working Hours Greater Than Maximum In Contract Per Week");
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... for-a-week
Как подвести итоги продолжительности смен за неделю ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Изо всех сил пытаясь подвести итоги значений с SQL с левым соединением на нескольких таблицах
Anonymous » » в форуме Php - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я могу подвести итоги несколько столбцов в Spark DataFrame в Pyspark?
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-