22
33import com .metarash .dto .ReportDto ;
44import com .metarash .dto .TaskDto ;
5+ import com .metarash .model .TaskStatus ;
6+ import com .metarash .tasktrackerscheduler .entity .Task ;
57import com .metarash .tasktrackerscheduler .entity .User ;
68import com .metarash .tasktrackerscheduler .mapper .TaskMapper ;
79import lombok .RequiredArgsConstructor ;
@@ -17,49 +19,47 @@ public class ReportService {
1719 private final TaskMapper taskMapper ;
1820
1921 public ReportDto generateDayReport (User user ) {
20- List <TaskDto > unfinishedTasks = taskService .getUnfinishedTasksByUser (user ).stream ()
22+ List <Task > allTasks = taskService .getAllByUser (user );
23+ if (allTasks .isEmpty ()) {
24+ return null ;
25+ }
26+
27+ List <TaskDto > allTaskDtos = allTasks .stream ()
2128 .map (taskMapper ::toDto )
2229 .toList ();
23- List <TaskDto > allTasks = taskService .getAllByUser (user ).stream ()
30+
31+ List <TaskDto > finishedTasks = taskService .getFinishedTasksByUser (user ).stream ()
2432 .map (taskMapper ::toDto )
2533 .toList ();
26- List <TaskDto > finishedTasks = taskService .getFinishedTasksByUser (user ).stream ()
34+
35+ List <TaskDto > unfinishedTasks = taskService .getUnfinishedTasksByUser (user ).stream ()
2736 .map (taskMapper ::toDto )
2837 .toList ();
2938
3039 ReportDto dayReport = new ReportDto ();
3140 dayReport .setEmail (user .getEmail ());
3241
33- if (allTasks .isEmpty ()) {
34- return null ;
35- }
36-
37- if (finishedTasks .size () == allTasks .size ()) {
38- buildFinishedTasks (dayReport , finishedTasks );
39- } else if (unfinishedTasks .size () == allTasks .size ()) {
40- buildUnfinishedTasks (dayReport , unfinishedTasks );
41- } else {
42- buildAllTaskTasks (dayReport , finishedTasks , unfinishedTasks );
43- }
42+ buildReport (dayReport , finishedTasks , unfinishedTasks , allTaskDtos .size ());
4443
4544 return dayReport ;
4645 }
4746
48- private void buildAllTaskTasks (ReportDto dayReport , List <TaskDto > finishedTasks , List <TaskDto > unfinishedTasks ) {
49- dayReport .setFinishedCount (finishedTasks .size ());
50- dayReport .setUnfinishedCount (unfinishedTasks .size ());
47+ private void buildReport (ReportDto report ,
48+ List <TaskDto > finishedTasks ,
49+ List <TaskDto > unfinishedTasks ,
50+ int totalTasks ) {
51+ report .setFinishedCount (finishedTasks .size ());
52+ report .setUnfinishedCount (unfinishedTasks .size ());
5153
52- dayReport .setFinishedTasks (finishedTasks .size () > 5 ? finishedTasks .subList (0 , 5 ) : finishedTasks );
53- dayReport .setUnfinishedTasks (unfinishedTasks .size () > 5 ? unfinishedTasks .subList (0 , 5 ) : unfinishedTasks );
54- }
55-
56- private void buildUnfinishedTasks (ReportDto dayReport , List <TaskDto > unfinishedTasks ) {
57- dayReport .setUnfinishedCount (unfinishedTasks .size ());
58- dayReport .setUnfinishedTasks (unfinishedTasks .size () > 5 ? unfinishedTasks .subList (0 , 5 ) : unfinishedTasks );
54+ if (!finishedTasks .isEmpty ()) {
55+ report .setFinishedTasks (getFirstFive (finishedTasks ));
56+ }
57+ if (!unfinishedTasks .isEmpty ()) {
58+ report .setUnfinishedTasks (getFirstFive (unfinishedTasks ));
59+ }
5960 }
6061
61- private void buildFinishedTasks (ReportDto dayReport , List <TaskDto > finishedTasks ) {
62- dayReport .setFinishedCount (finishedTasks .size ());
63- dayReport .setFinishedTasks (finishedTasks .size () > 5 ? finishedTasks .subList (0 , 5 ) : finishedTasks );
62+ private List <TaskDto > getFirstFive (List <TaskDto > tasks ) {
63+ return tasks .size () > 5 ? tasks .subList (0 , 5 ) : tasks ;
6464 }
6565}
0 commit comments