| @@ -0,0 +1,21 @@ | |||||
| package com.ffii.tsms.modules.data.entity.projections | |||||
| import org.springframework.beans.factory.annotation.Value | |||||
| /** | |||||
| * Projection for {@link com.ffii.tsms.modules.project.entity.Project} | |||||
| */ | |||||
| interface ProjectSearchInfo { | |||||
| val id: Long? | |||||
| val name: String? | |||||
| val code: String? | |||||
| @get:Value("#{target.projectCategory.name}") | |||||
| val category: String? | |||||
| @get:Value("#{target.teamLead.team.code}") | |||||
| val team: String? | |||||
| @get:Value("#{target.customer.name}") | |||||
| val client: String? | |||||
| } | |||||
| @@ -1,6 +1,8 @@ | |||||
| package com.ffii.tsms.modules.project.entity; | package com.ffii.tsms.modules.project.entity; | ||||
| import com.ffii.core.support.AbstractRepository | import com.ffii.core.support.AbstractRepository | ||||
| import com.ffii.tsms.modules.data.entity.projections.ProjectSearchInfo | |||||
| interface ProjectRepository : AbstractRepository<Project, Long> { | interface ProjectRepository : AbstractRepository<Project, Long> { | ||||
| fun findProjectSearchInfoBy(): List<ProjectSearchInfo> | |||||
| } | } | ||||
| @@ -1,6 +1,7 @@ | |||||
| package com.ffii.tsms.modules.project.service | package com.ffii.tsms.modules.project.service | ||||
| import com.ffii.tsms.modules.data.entity.StaffRepository | import com.ffii.tsms.modules.data.entity.StaffRepository | ||||
| import com.ffii.tsms.modules.data.entity.projections.ProjectSearchInfo | |||||
| import com.ffii.tsms.modules.data.service.CustomerService | import com.ffii.tsms.modules.data.service.CustomerService | ||||
| import com.ffii.tsms.modules.project.entity.Project | import com.ffii.tsms.modules.project.entity.Project | ||||
| import com.ffii.tsms.modules.project.entity.ProjectCategory | import com.ffii.tsms.modules.project.entity.ProjectCategory | ||||
| @@ -15,8 +16,8 @@ class ProjectsService( | |||||
| private val customerService: CustomerService, private val projectCategoryRepository: ProjectCategoryRepository, | private val customerService: CustomerService, private val projectCategoryRepository: ProjectCategoryRepository, | ||||
| private val staffRepository: StaffRepository | private val staffRepository: StaffRepository | ||||
| ) { | ) { | ||||
| fun allProjects(): List<Project> { | |||||
| return projectRepository.findAll() | |||||
| fun allProjects(): List<ProjectSearchInfo> { | |||||
| return projectRepository.findProjectSearchInfoBy() | |||||
| } | } | ||||
| fun allProjectCategories(): List<ProjectCategory> { | fun allProjectCategories(): List<ProjectCategory> { | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.ffii.tsms.modules.project.web | package com.ffii.tsms.modules.project.web | ||||
| import com.ffii.tsms.modules.data.entity.projections.ProjectSearchInfo | |||||
| import com.ffii.tsms.modules.project.entity.Project | import com.ffii.tsms.modules.project.entity.Project | ||||
| import com.ffii.tsms.modules.project.entity.ProjectCategory | import com.ffii.tsms.modules.project.entity.ProjectCategory | ||||
| import com.ffii.tsms.modules.project.service.ProjectsService | import com.ffii.tsms.modules.project.service.ProjectsService | ||||
| @@ -11,7 +12,7 @@ import org.springframework.web.bind.annotation.* | |||||
| @RequestMapping("/projects") | @RequestMapping("/projects") | ||||
| class ProjectsController(private val projectsService: ProjectsService) { | class ProjectsController(private val projectsService: ProjectsService) { | ||||
| @GetMapping | @GetMapping | ||||
| fun allProjects(): List<Project> { | |||||
| fun allProjects(): List<ProjectSearchInfo> { | |||||
| return projectsService.allProjects() | return projectsService.allProjects() | ||||
| } | } | ||||