|
|
@@ -75,29 +75,27 @@ open class ProjectsService( |
|
|
|
open fun allAssignedProjects(): List<AssignedProject> { |
|
|
|
return SecurityUtils.getUser().getOrNull()?.let { user -> |
|
|
|
staffRepository.findByUserId(user.id).getOrNull()?.let { staff -> |
|
|
|
staffAllocationRepository.findAssignedProjectsByStaff(staff).mapNotNull { |
|
|
|
it.project?.let { project -> |
|
|
|
val timesheetHours = timesheetRepository.totalHoursConsumedByProject(project) |
|
|
|
|
|
|
|
AssignedProject(id = project.id!!, |
|
|
|
code = project.code!!, |
|
|
|
name = project.name!!, |
|
|
|
tasks = projectTaskRepository.findAllByProject(project).mapNotNull { pt -> pt.task }, |
|
|
|
milestones = milestoneRepository.findAllByProject(project) |
|
|
|
.filter { milestone -> milestone.taskGroup?.id != null } |
|
|
|
.associateBy { milestone -> milestone.taskGroup!!.id!! } |
|
|
|
.mapValues { (_, milestone) -> |
|
|
|
MilestoneInfo( |
|
|
|
startDate = milestone.startDate?.format(DateTimeFormatter.ISO_LOCAL_DATE), |
|
|
|
endDate = milestone.endDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) |
|
|
|
) |
|
|
|
}, |
|
|
|
hoursAllocated = project.totalManhour ?: 0.0, |
|
|
|
hoursAllocatedOther = 0.0, |
|
|
|
hoursSpent = timesheetHours.normalConsumed, |
|
|
|
hoursSpentOther = timesheetHours.otConsumed |
|
|
|
) |
|
|
|
} |
|
|
|
staffAllocationRepository.findOnGoingAssignedProjectsByStaff(staff).map { project -> |
|
|
|
val timesheetHours = timesheetRepository.totalHoursConsumedByProject(project) |
|
|
|
|
|
|
|
AssignedProject(id = project.id!!, |
|
|
|
code = project.code!!, |
|
|
|
name = project.name!!, |
|
|
|
tasks = projectTaskRepository.findAllByProject(project).mapNotNull { pt -> pt.task }, |
|
|
|
milestones = milestoneRepository.findAllByProject(project) |
|
|
|
.filter { milestone -> milestone.taskGroup?.id != null } |
|
|
|
.associateBy { milestone -> milestone.taskGroup!!.id!! } |
|
|
|
.mapValues { (_, milestone) -> |
|
|
|
MilestoneInfo( |
|
|
|
startDate = milestone.startDate?.format(DateTimeFormatter.ISO_LOCAL_DATE), |
|
|
|
endDate = milestone.endDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) |
|
|
|
) |
|
|
|
}, |
|
|
|
hoursAllocated = project.totalManhour ?: 0.0, |
|
|
|
hoursAllocatedOther = 0.0, |
|
|
|
hoursSpent = timesheetHours.normalConsumed, |
|
|
|
hoursSpentOther = timesheetHours.otConsumed |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
|
} ?: emptyList() |
|
|
@@ -108,6 +106,7 @@ open class ProjectsService( |
|
|
|
ProjectWithTasks(id = project.id!!, |
|
|
|
code = project.code!!, |
|
|
|
name = project.name!!, |
|
|
|
status = project.status, |
|
|
|
tasks = projectTaskRepository.findAllByProject(project).mapNotNull { pt -> pt.task }, |
|
|
|
milestones = milestoneRepository.findAllByProject(project) |
|
|
|
.filter { milestone -> milestone.taskGroup?.id != null } |
|
|
|