HOTFIX: moved planned date from weekend to weekday

This commit is contained in:
Mustapha Zorgati 2019-11-30 14:44:43 +01:00
parent f62bd7d158
commit dd2859c320
2 changed files with 13 additions and 10 deletions

View File

@ -182,7 +182,7 @@ public final class DaysToWorkingDaysConverter {
} }
public long convertWorkingDaysToDays(Instant startTime, long numberOfDays) { public long convertWorkingDaysToDays(Instant startTime, long numberOfDays) {
int direction = numberOfDays > 0 ? 1 : -1; int direction = numberOfDays >= 0 ? 1 : -1;
long limit = Math.abs(numberOfDays); long limit = Math.abs(numberOfDays);
return LongStream.iterate(0, i -> i + direction) return LongStream.iterate(0, i -> i + direction)
.filter(day -> isWorkingDay(day, startTime)) .filter(day -> isWorkingDay(day, startTime))
@ -293,12 +293,12 @@ public final class DaysToWorkingDaysConverter {
@Override @Override
public String toString() { public String toString() {
return "DaysToWorkingDaysConverter [instance= " + instance return "DaysToWorkingDaysConverter{"
+ ", positiveDaysToWorkingDays= " + positiveDaysToWorkingDays + "positiveDaysToWorkingDays=" + positiveDaysToWorkingDays
+ ", negativeDaysToWorkingDays= " + negativeDaysToWorkingDays + ", negativeDaysToWorkingDays=" + negativeDaysToWorkingDays
+ ", dateCreated= " + dateCreated + ", easterSunday= " + easterSunday + ", dateCreated=" + dateCreated
+ ", germanHolidaysEnabled= " + germanHolidaysEnabled + ", easterSunday=" + easterSunday
+ ", customHolidays= " + LoggerUtils.setToString(customHolidays) + "]"; + '}';
} }
/** /**

View File

@ -162,10 +162,13 @@ class CreateTaskAccTest extends AbstractAccTest {
newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", "1234567")); newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", "1234567"));
newTask.setOwner("user_1_1"); newTask.setOwner("user_1_1");
newTask.setPlanned(instantPlanned); Optional<DaysToWorkingDaysConverter> converter = DaysToWorkingDaysConverter.getLastCreatedInstance();
//TODO: this is a temporal bug fix because we did not define what happens when a task is planned on the weekend.
long i = converter.get().convertWorkingDaysToDays(instantPlanned, 0);
newTask.setPlanned(instantPlanned.plus(Duration.ofDays(i)));
//due date according to service level //due date according to service level
Instant shouldBeDueDate = DaysToWorkingDaysConverter.getLastCreatedInstance() Instant shouldBeDueDate = converter
.map(converter -> converter.convertWorkingDaysToDays(newTask.getPlanned(), serviceLevelDays)) .map(c -> c.convertWorkingDaysToDays(newTask.getPlanned(), serviceLevelDays))
.map( .map(
calendarDays -> newTask.getPlanned().plus(Duration.ofDays(calendarDays))).orElseThrow( calendarDays -> newTask.getPlanned().plus(Duration.ofDays(calendarDays))).orElseThrow(
RuntimeException::new); RuntimeException::new);