Как написать функцию java в производной данных Spring - PullRequest
0 голосов
/ 24 февраля 2020

Прямо сейчас я пишу функцию, чтобы получить количество рабочих дней самостоятельно. Вместо этого гораздо лучше использовать данные Spring и позволить базе данных производить вычисления.

Итак, как мне написать вторую функцию в данных Spring.

Это должно быть что-то вроде , Посчитать по дате Отличить группу по дате от WorkingDay. WorkingDayObject может происходить более одного раза в день, если кто-то работал над разными проектами. Таким образом я использую хэш-набор в своей функции, чтобы получать только дни.

private double calculateOvertimeHours(WorkingMonth month) 
{   
    double workedHours = Util.convertTimeToDoubleDecimal(month.getWorkedHours());

    //Here I use a Spring data method as you can see
    List<WorkingDay> lstWorkingDays = workingDayDao.findByWorkingMonthOrderByDateAsc(month);        

    return workedHours - calcNumberWorkDays(lstWorkingDays) * 8;
}

private int calcNumberWorkDays(List<WorkingDay> lstWorkingDays)
{
    Set<Integer> hashSetDays = new HashSet<Integer>(); 
    Calendar cal = Calendar.getInstance();

    for(WorkingDay workingDay :  lstWorkingDays)
    {
        cal.setTime(workingDay.getDate());
        hashSetDays.add(cal.get(Calendar.DAY_OF_MONTH));
    }

    return hashSetDays.size();
}
...