Bläddra i källkod

update expense create function

add_swagger
MSI\derek 11 månader sedan
förälder
incheckning
f2ab33b058
3 ändrade filer med 57 tillägg och 3 borttagningar
  1. +26
    -0
      src/main/java/com/ffii/tsms/modules/project/service/ProjectExpenseService.kt
  2. +9
    -3
      src/main/java/com/ffii/tsms/modules/project/web/ProjectExpenseController.kt
  3. +22
    -0
      src/main/java/com/ffii/tsms/modules/project/web/models/ProjectExpenseRequest.kt

+ 26
- 0
src/main/java/com/ffii/tsms/modules/project/service/ProjectExpenseService.kt Visa fil

@@ -4,11 +4,14 @@ import com.ffii.core.support.AbstractIdEntityService
import com.ffii.core.support.JdbcDao
import com.ffii.tsms.modules.project.entity.ProjectExpense
import com.ffii.tsms.modules.project.entity.ProjectExpenseRepository
import com.ffii.tsms.modules.project.entity.ProjectRepository
import com.ffii.tsms.modules.project.entity.projections.ProjectExpenseSearchInfo
import com.ffii.tsms.modules.project.web.models.ProjectExpenseRequest
import org.springframework.stereotype.Service

@Service
open class ProjectExpenseService(
private val projectRepository: ProjectRepository,
private val projectExpenseRepository: ProjectExpenseRepository,
private val jdbcDao: JdbcDao,
) : AbstractIdEntityService<ProjectExpense, Long, ProjectExpenseRepository>(jdbcDao, projectExpenseRepository){
@@ -16,4 +19,27 @@ open class ProjectExpenseService(
return projectExpenseRepository.findExpenseSearchInfoByDeletedFalse()
}

open fun createProjectExpense(projectExpenseList: List<ProjectExpenseRequest>): Boolean {
try {
for (projectExpense in projectExpenseList) {
val project = projectRepository.findAll().filter { it.deleted == false && it.id == projectExpense.projectId }[0]
val team = project.teamLead!!.team
val newProjectExpense = ProjectExpense().apply {
expenseNo = projectExpense.expenseNo
issueDate = projectExpense.issueDate
receiptDate = projectExpense.receiptDate
amount = projectExpense.amount
this.project = project
this.team = team
remarks = projectExpense.remarks
}
projectExpenseRepository.save(newProjectExpense)
}
} catch (e: Exception) {
println(e)
return false
}
return true
}

}

+ 9
- 3
src/main/java/com/ffii/tsms/modules/project/web/ProjectExpenseController.kt Visa fil

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

import com.ffii.tsms.modules.data.entity.Staff
import com.ffii.tsms.modules.data.web.models.NewStaffRequest
import com.ffii.tsms.modules.project.entity.projections.ProjectExpenseSearchInfo
import com.ffii.tsms.modules.project.service.ProjectExpenseService
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
import com.ffii.tsms.modules.project.web.models.ProjectExpenseRequest
import jakarta.validation.Valid
import org.springframework.web.bind.annotation.*

@RestController
@RequestMapping("/project-expense")
@@ -15,4 +17,8 @@ class ProjectExpenseController(
fun allProjectExpense(): List<ProjectExpenseSearchInfo> {
return projectExpenseService.findProjectExpenseSearchInfo()
}
@PostMapping("/create")
fun saveProjectExpense(@Valid @RequestBody newProjectExpense: List<ProjectExpenseRequest>): Boolean {
return projectExpenseService.createProjectExpense(newProjectExpense)
}
}

+ 22
- 0
src/main/java/com/ffii/tsms/modules/project/web/models/ProjectExpenseRequest.kt Visa fil

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

import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull
import java.time.LocalDate

data class ProjectExpenseRequest (
val id: Long?,
val expenseNo: String?,

@field:NotNull(message = "projectId cannot be empty")
val projectId: Long,

@field:NotNull(message = "issueDate cannot be empty")
val issueDate: LocalDate,

val receiptDate: LocalDate?,

@field:NotNull(message = "amount cannot be empty")
val amount: Double,
val remarks: String?,
)

Laddar…
Avbryt
Spara