26
26
import org .slf4j .Logger ;
27
27
import org .slf4j .LoggerFactory ;
28
28
29
- import java .util .UUID ;
30
- import java .util .List ;
31
- import java .util .ArrayList ;
32
- import java .util .Map ;
33
- import java .util .Set ;
34
- import java .util .HashMap ;
29
+ import java .util .*;
35
30
import java .time .LocalDate ;
36
31
import java .time .Month ;
37
32
import java .nio .ByteBuffer ;
@@ -222,28 +217,27 @@ public ReportHours getReportHours() {
222
217
private List <Feedback > getFeedbackType (FeedbackType type ) {
223
218
List <Feedback > feedback = new ArrayList <Feedback >();
224
219
220
+ ReviewPeriod reviewPeriod = reviewPeriodServices .findById (reviewPeriodId );
225
221
// Get the list of requests for the member and review period.
226
222
// We will need to cross-reference the templates.
227
223
LocalDateRange dateRange = getDateRange ();
228
224
List <FeedbackRequest > requests =
229
225
feedbackRequestServices .findByValues (null , memberId , null ,
230
- null , null , null , null );
231
-
226
+ reviewPeriod . getPeriodStartDate (). toLocalDate () , null , null , null );
227
+ List < FeedbackRequest > filtered = new LinkedList <>();
232
228
// Iterate over each request and find the template. Determine the purpose
233
229
// of the template.
234
- ReviewPeriod reviewPeriod = reviewPeriodServices .findById (reviewPeriodId );
235
230
Map <UUID , String > templates = new HashMap <UUID , String >();
236
231
for (FeedbackRequest request : requests ) {
237
232
// Make sure we haven't already considered this template.
238
233
// Also, require that the request either be directly associated with
239
234
// our review period or that the request was submitted within the time
240
235
// range of our review period.
241
- if (!templates .containsKey (request .getTemplateId ()) &&
242
- ((request .getReviewPeriodId () != null &&
236
+ if ((request .getReviewPeriodId () != null &&
243
237
request .getReviewPeriodId ().equals (reviewPeriod .getId ())) ||
244
- (request .getSubmitDate () != null &&
245
- dateInRange ( request .getSubmitDate (), dateRange . start ,
246
- dateRange . end )))) {
238
+ (request .getStatus (). equalsIgnoreCase ( "submitted" ) &&
239
+ request .getSendDate () != null &&
240
+ request . getSendDate (). isBefore ( reviewPeriod . getCloseDate (). toLocalDate ( )))) {
247
241
try {
248
242
FeedbackTemplate template =
249
243
feedbackTemplateServices .getById (request .getTemplateId ());
@@ -260,13 +254,14 @@ private List<Feedback> getFeedbackType(FeedbackType type) {
260
254
reviewPeriod .getReviewTemplateId ());
261
255
break ;
262
256
case FeedbackType .feedback :
263
- use = !template .getIsReview () && request .getStatus ().equalsIgnoreCase ("submitted" ) &&
264
- request .getSendDate () != null && request .getSendDate ().isAfter (reviewPeriod .getPeriodStartDate ().toLocalDate ()) &&
265
- request .getSendDate ().isBefore (reviewPeriod .getCloseDate ().toLocalDate ());
257
+ use = !template .getIsReview ();
266
258
break ;
267
259
}
268
260
if (use ) {
269
- templates .put (template .getId (), template .getTitle ());
261
+ filtered .add (request );
262
+ if (!templates .containsKey (template .getId ())) {
263
+ templates .put (template .getId (), template .getTitle ());
264
+ }
270
265
}
271
266
} catch (NotFoundException ex ) {
272
267
LOG .error (ex .toString ());
@@ -280,7 +275,7 @@ private List<Feedback> getFeedbackType(FeedbackType type) {
280
275
String templateTitle = templates .get (templateId );
281
276
List <Feedback .Answer > feedbackAnswers =
282
277
new ArrayList <Feedback .Answer >();
283
- for (FeedbackRequest request : requests ) {
278
+ for (FeedbackRequest request : filtered ) {
284
279
if (request .getTemplateId ().equals (templateId )) {
285
280
UUID recipientId = request .getRecipientId ();
286
281
MemberProfile recipient = memberProfileServices .getById (
0 commit comments