2626import org .slf4j .Logger ;
2727import org .slf4j .LoggerFactory ;
2828
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 .*;
3530import java .time .LocalDate ;
3631import java .time .Month ;
3732import java .nio .ByteBuffer ;
@@ -222,28 +217,27 @@ public ReportHours getReportHours() {
222217 private List <Feedback > getFeedbackType (FeedbackType type ) {
223218 List <Feedback > feedback = new ArrayList <Feedback >();
224219
220+ ReviewPeriod reviewPeriod = reviewPeriodServices .findById (reviewPeriodId );
225221 // Get the list of requests for the member and review period.
226222 // We will need to cross-reference the templates.
227223 LocalDateRange dateRange = getDateRange ();
228224 List <FeedbackRequest > requests =
229225 feedbackRequestServices .findByValues (null , memberId , null ,
230- null , null , null , null );
231-
226+ reviewPeriod . getPeriodStartDate (). toLocalDate () , null , null , null );
227+ List < FeedbackRequest > filtered = new LinkedList <>();
232228 // Iterate over each request and find the template. Determine the purpose
233229 // of the template.
234- ReviewPeriod reviewPeriod = reviewPeriodServices .findById (reviewPeriodId );
235230 Map <UUID , String > templates = new HashMap <UUID , String >();
236231 for (FeedbackRequest request : requests ) {
237232 // Make sure we haven't already considered this template.
238233 // Also, require that the request either be directly associated with
239234 // our review period or that the request was submitted within the time
240235 // range of our review period.
241- if (!templates .containsKey (request .getTemplateId ()) &&
242- ((request .getReviewPeriodId () != null &&
236+ if ((request .getReviewPeriodId () != null &&
243237 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 ( )))) {
247241 try {
248242 FeedbackTemplate template =
249243 feedbackTemplateServices .getById (request .getTemplateId ());
@@ -260,13 +254,14 @@ private List<Feedback> getFeedbackType(FeedbackType type) {
260254 reviewPeriod .getReviewTemplateId ());
261255 break ;
262256 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 ();
266258 break ;
267259 }
268260 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+ }
270265 }
271266 } catch (NotFoundException ex ) {
272267 LOG .error (ex .toString ());
@@ -280,7 +275,7 @@ private List<Feedback> getFeedbackType(FeedbackType type) {
280275 String templateTitle = templates .get (templateId );
281276 List <Feedback .Answer > feedbackAnswers =
282277 new ArrayList <Feedback .Answer >();
283- for (FeedbackRequest request : requests ) {
278+ for (FeedbackRequest request : filtered ) {
284279 if (request .getTemplateId ().equals (templateId )) {
285280 UUID recipientId = request .getRecipientId ();
286281 MemberProfile recipient = memberProfileServices .getById (
0 commit comments