diff --git a/src/main/java/com/ffii/tsms/modules/data/entity/projections/ProjectSearchInfo.kt b/src/main/java/com/ffii/tsms/modules/data/entity/projections/ProjectSearchInfo.kt new file mode 100644 index 0000000..57bd257 --- /dev/null +++ b/src/main/java/com/ffii/tsms/modules/data/entity/projections/ProjectSearchInfo.kt @@ -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? +} diff --git a/src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt b/src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt index 2fbadce..d24d436 100644 --- a/src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt +++ b/src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt @@ -1,6 +1,8 @@ package com.ffii.tsms.modules.project.entity; import com.ffii.core.support.AbstractRepository +import com.ffii.tsms.modules.data.entity.projections.ProjectSearchInfo interface ProjectRepository : AbstractRepository { + fun findProjectSearchInfoBy(): List } \ No newline at end of file diff --git a/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt b/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt index 65e70cc..ff3aaec 100644 --- a/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt +++ b/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt @@ -1,6 +1,7 @@ package com.ffii.tsms.modules.project.service 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.project.entity.Project import com.ffii.tsms.modules.project.entity.ProjectCategory @@ -15,8 +16,8 @@ class ProjectsService( private val customerService: CustomerService, private val projectCategoryRepository: ProjectCategoryRepository, private val staffRepository: StaffRepository ) { - fun allProjects(): List { - return projectRepository.findAll() + fun allProjects(): List { + return projectRepository.findProjectSearchInfoBy() } fun allProjectCategories(): List { diff --git a/src/main/java/com/ffii/tsms/modules/project/web/ProjectsController.kt b/src/main/java/com/ffii/tsms/modules/project/web/ProjectsController.kt index e89c3a8..7f0f455 100644 --- a/src/main/java/com/ffii/tsms/modules/project/web/ProjectsController.kt +++ b/src/main/java/com/ffii/tsms/modules/project/web/ProjectsController.kt @@ -1,5 +1,6 @@ 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.ProjectCategory import com.ffii.tsms.modules.project.service.ProjectsService @@ -11,7 +12,7 @@ import org.springframework.web.bind.annotation.* @RequestMapping("/projects") class ProjectsController(private val projectsService: ProjectsService) { @GetMapping - fun allProjects(): List { + fun allProjects(): List { return projectsService.allProjects() }