@@ -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() | ||||
} | } | ||||