From 0a8ef491a957abc334d2ea64435fe39fc1173004 Mon Sep 17 00:00:00 2001 From: "cyril.tsui" Date: Thu, 9 May 2024 17:38:46 +0800 Subject: [PATCH] update tasktemplate --- .../modules/project/service/TasksService.kt | 17 +++++++++++++++++ .../tsms/modules/project/web/TasksController.kt | 7 +++++++ .../web/models/EditTaskTemplateDetails.kt | 9 +++++++++ 3 files changed, 33 insertions(+) create mode 100644 src/main/java/com/ffii/tsms/modules/project/web/models/EditTaskTemplateDetails.kt diff --git a/src/main/java/com/ffii/tsms/modules/project/service/TasksService.kt b/src/main/java/com/ffii/tsms/modules/project/service/TasksService.kt index bf0b9c9..4ac534b 100644 --- a/src/main/java/com/ffii/tsms/modules/project/service/TasksService.kt +++ b/src/main/java/com/ffii/tsms/modules/project/service/TasksService.kt @@ -2,7 +2,9 @@ package com.ffii.tsms.modules.project.service import com.ffii.core.support.JdbcDao import com.ffii.tsms.modules.project.entity.* +import com.ffii.tsms.modules.project.web.models.EditTaskTemplateDetails import org.springframework.stereotype.Service +import kotlin.jvm.optionals.getOrNull @Service class TasksService( @@ -26,6 +28,21 @@ class TasksService( fun deleteTaskTemplate(id: Long) { taskTemplateRepository.deleteById(id) } + + fun getTaskTemplateDetails(id: Long): EditTaskTemplateDetails? { + val taskTemplate = taskTemplateRepository.findById(id) + + return taskTemplate.getOrNull()?.let { + EditTaskTemplateDetails( + id = it.id, + code = it.code, + name = it.name, + + taskIds = it.tasks.map { task: Task -> task.id!! } + ) + } + } + fun saveTaskTemplate(code: String, name: String, taskIds: List, id: Long?): TaskTemplate { val taskTemplate = if (id != null && id > 0) findTaskTemplate(id) else TaskTemplate() diff --git a/src/main/java/com/ffii/tsms/modules/project/web/TasksController.kt b/src/main/java/com/ffii/tsms/modules/project/web/TasksController.kt index 74e4ca1..5621950 100644 --- a/src/main/java/com/ffii/tsms/modules/project/web/TasksController.kt +++ b/src/main/java/com/ffii/tsms/modules/project/web/TasksController.kt @@ -1,8 +1,10 @@ package com.ffii.tsms.modules.project.web +import com.ffii.core.exception.NotFoundException import com.ffii.tsms.modules.project.entity.Task import com.ffii.tsms.modules.project.entity.TaskTemplate import com.ffii.tsms.modules.project.service.TasksService +import com.ffii.tsms.modules.project.web.models.EditTaskTemplateDetails import com.ffii.tsms.modules.project.web.models.NewTaskTemplateRequest import jakarta.validation.Valid import org.springframework.http.HttpStatus @@ -26,6 +28,11 @@ class TasksController(private val tasksService: TasksService) { return tasksService.findTaskTemplate(id) } + @GetMapping("/templatesDetails/{id}") + fun taskTemplateDetails(@PathVariable id: Long): EditTaskTemplateDetails { + return tasksService.getTaskTemplateDetails(id) ?: throw NotFoundException() + } + @DeleteMapping("/templates/{id}") @ResponseStatus(HttpStatus.NO_CONTENT) fun deleteTaskTemplate(@PathVariable id: Long) { diff --git a/src/main/java/com/ffii/tsms/modules/project/web/models/EditTaskTemplateDetails.kt b/src/main/java/com/ffii/tsms/modules/project/web/models/EditTaskTemplateDetails.kt new file mode 100644 index 0000000..c0b497e --- /dev/null +++ b/src/main/java/com/ffii/tsms/modules/project/web/models/EditTaskTemplateDetails.kt @@ -0,0 +1,9 @@ +package com.ffii.tsms.modules.project.web.models + +data class EditTaskTemplateDetails ( + val id: Long?, + val code: String?, + val name: String?, + + val taskIds: List? +)