浏览代码

Fix project saving

tags/Baseline_30082024_BACKEND_UAT
Wayne 1年前
父节点
当前提交
f1c3787ac7
共有 4 个文件被更改,包括 26 次插入5 次删除
  1. +1
    -1
      src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt
  2. +13
    -3
      src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt
  3. +2
    -1
      src/main/java/com/ffii/tsms/modules/project/web/ProjectsController.kt
  4. +10
    -0
      src/main/java/com/ffii/tsms/modules/project/web/models/NewProjectResponse.kt

+ 1
- 1
src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt 查看文件

@@ -6,7 +6,7 @@ import com.ffii.tsms.modules.project.entity.projections.InvoiceSearchInfo
import com.ffii.tsms.modules.project.entity.projections.ProjectSearchInfo import com.ffii.tsms.modules.project.entity.projections.ProjectSearchInfo


interface ProjectRepository : AbstractRepository<Project, Long> { interface ProjectRepository : AbstractRepository<Project, Long> {
fun findProjectSearchInfoBy(): List<ProjectSearchInfo>
fun findProjectSearchInfoByOrderByCreatedDesc(): List<ProjectSearchInfo>


fun findInvoiceSearchInfoBy(): List<InvoiceSearchInfo> fun findInvoiceSearchInfoBy(): List<InvoiceSearchInfo>




+ 13
- 3
src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt 查看文件

@@ -12,6 +12,7 @@ import com.ffii.tsms.modules.project.entity.projections.InvoiceSearchInfo
import com.ffii.tsms.modules.project.web.models.AssignedProject import com.ffii.tsms.modules.project.web.models.AssignedProject
import com.ffii.tsms.modules.project.web.models.MilestoneInfo import com.ffii.tsms.modules.project.web.models.MilestoneInfo
import com.ffii.tsms.modules.project.web.models.NewProjectRequest import com.ffii.tsms.modules.project.web.models.NewProjectRequest
import com.ffii.tsms.modules.project.web.models.NewProjectResponse
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional import org.springframework.transaction.annotation.Transactional
import java.time.LocalDate import java.time.LocalDate
@@ -40,7 +41,7 @@ open class ProjectsService(
private val projectTaskRepository: ProjectTaskRepository private val projectTaskRepository: ProjectTaskRepository
) { ) {
open fun allProjects(): List<ProjectSearchInfo> { open fun allProjects(): List<ProjectSearchInfo> {
return projectRepository.findProjectSearchInfoBy()
return projectRepository.findProjectSearchInfoByOrderByCreatedDesc()
} }


open fun allInvoices(): List<InvoiceSearchInfo> { open fun allInvoices(): List<InvoiceSearchInfo> {
@@ -87,7 +88,7 @@ open class ProjectsService(
} }


@Transactional @Transactional
open fun saveProject(request: NewProjectRequest): Project {
open fun saveProject(request: NewProjectRequest): NewProjectResponse {
val projectCategory = val projectCategory =
projectCategoryRepository.findById(request.projectCategoryId).orElseThrow() projectCategoryRepository.findById(request.projectCategoryId).orElseThrow()
val fundingType = fundingTypeRepository.findById(request.fundingTypeId).orElseThrow() val fundingType = fundingTypeRepository.findById(request.fundingTypeId).orElseThrow()
@@ -184,7 +185,16 @@ open class ProjectsService(
} } } }
staffAllocationRepository.saveAll(staffAllocations) staffAllocationRepository.saveAll(staffAllocations)


return savedProject
return savedProject.let {
NewProjectResponse(
id = it.id,
code = it.code,
name = it.name,
client = it.customer?.name,
category = it.projectCategory?.name,
team = it.teamLead?.team?.code
)
}
} }


open fun allFundingTypes(): List<FundingType> { open fun allFundingTypes(): List<FundingType> {


+ 2
- 1
src/main/java/com/ffii/tsms/modules/project/web/ProjectsController.kt 查看文件

@@ -7,6 +7,7 @@ import com.ffii.tsms.modules.project.entity.ProjectCategory
import com.ffii.tsms.modules.project.service.ProjectsService import com.ffii.tsms.modules.project.service.ProjectsService
import com.ffii.tsms.modules.project.web.models.AssignedProject import com.ffii.tsms.modules.project.web.models.AssignedProject
import com.ffii.tsms.modules.project.web.models.NewProjectRequest import com.ffii.tsms.modules.project.web.models.NewProjectRequest
import com.ffii.tsms.modules.project.web.models.NewProjectResponse
import jakarta.validation.Valid import jakarta.validation.Valid
import org.springframework.web.bind.annotation.* import org.springframework.web.bind.annotation.*


@@ -29,7 +30,7 @@ class ProjectsController(private val projectsService: ProjectsService) {
} }


@PostMapping("/new") @PostMapping("/new")
fun saveProject(@Valid @RequestBody newProject: NewProjectRequest): Project {
fun saveProject(@Valid @RequestBody newProject: NewProjectRequest): NewProjectResponse {
return projectsService.saveProject(newProject) return projectsService.saveProject(newProject)
} }




+ 10
- 0
src/main/java/com/ffii/tsms/modules/project/web/models/NewProjectResponse.kt 查看文件

@@ -0,0 +1,10 @@
package com.ffii.tsms.modules.project.web.models

data class NewProjectResponse(
val id: Long?,
val name: String?,
val code: String?,
val category: String?,
val team: String?,
val client: String?,
)

正在加载...
取消
保存