| | |
| | | |
| | | @Override |
| | | public Boolean isStrategy24Hour(List<TAccountingStrategyDetail> accountingStrategyDetails) { |
| | | List<TAccountingStrategyDetail> accountingStrategyDetailList = accountingStrategyDetails.stream() |
| | | .sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)).collect(Collectors.toList()); |
| | | boolean flag = false; |
| | | for (int i = 0; i < accountingStrategyDetailList.size(); i++) { |
| | | if(i != 0){ |
| | | if(!accountingStrategyDetailList.get(i).getStartTime().equals(accountingStrategyDetailList.get(i-1).getEndTime())) { |
| | | flag = true; |
| | | } |
| | | } |
| | | } |
| | | return flag; |
| | | String START_OF_DAY = "00:00:00"; |
| | | String END_OF_DAY = "24:00:00"; |
| | | List<TAccountingStrategyDetail> sortedDetails = accountingStrategyDetails.stream() |
| | | .sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)) |
| | | .collect(Collectors.toList()); |
| | | |
| | | boolean isFirstElementValid = sortedDetails.isEmpty() || !START_OF_DAY.equals(sortedDetails.get(0).getStartTime()); |
| | | boolean isLastElementValid = sortedDetails.isEmpty() || !END_OF_DAY.equals(sortedDetails.get(sortedDetails.size() - 1).getEndTime()); |
| | | |
| | | boolean isTimeContinuous = sortedDetails.stream() |
| | | .skip(1) |
| | | .allMatch(detail -> detail.getStartTime().equals(sortedDetails.get(sortedDetails.indexOf(detail) - 1).getEndTime())); |
| | | |
| | | return isFirstElementValid || isLastElementValid || !isTimeContinuous; |
| | | } |
| | | } |