Kaynağa Gözat

Edit Department adn Edit Position

tags/Baseline_30082024_BACKEND_UAT
MSI\2Fi 1 yıl önce
ebeveyn
işleme
44fba1ac66
7 değiştirilmiş dosya ile 68 ekleme ve 19 silme
  1. +5
    -1
      src/main/java/com/ffii/tsms/modules/data/entity/DepartmentRepository.java
  2. +22
    -7
      src/main/java/com/ffii/tsms/modules/data/service/DepartmentService.kt
  3. +14
    -6
      src/main/java/com/ffii/tsms/modules/data/service/PositionService.kt
  4. +14
    -0
      src/main/java/com/ffii/tsms/modules/data/web/DepartmentController.kt
  5. +7
    -0
      src/main/java/com/ffii/tsms/modules/data/web/PositionController.kt
  6. +3
    -2
      src/main/java/com/ffii/tsms/modules/data/web/models/NewDepartmentRequest.kt
  7. +3
    -3
      src/main/java/com/ffii/tsms/modules/data/web/models/NewPositionRequest.kt

+ 5
- 1
src/main/java/com/ffii/tsms/modules/data/entity/DepartmentRepository.java Dosyayı Görüntüle

@@ -4,7 +4,11 @@ import com.ffii.core.support.AbstractRepository;
import com.ffii.tsms.modules.data.entity.projections.DepartmentSearchInfo;

import java.util.List;
import java.util.Optional;

public interface DepartmentRepository extends AbstractRepository<Department, Long> {
List<DepartmentSearchInfo> findDepartmentSearchInfoBy();
List<DepartmentSearchInfo> findDepartmentSearchInfoByAndDeletedFalse();

Optional<DepartmentSearchInfo> findDepartmentSearchInfoById(Long departmentId);

}

+ 22
- 7
src/main/java/com/ffii/tsms/modules/data/service/DepartmentService.kt Dosyayı Görüntüle

@@ -6,7 +6,10 @@ import com.ffii.tsms.modules.data.entity.Department
import com.ffii.tsms.modules.data.entity.DepartmentRepository
import com.ffii.tsms.modules.data.entity.projections.DepartmentSearchInfo
import com.ffii.tsms.modules.data.web.models.NewDepartmentRequest
import com.ffii.tsms.modules.project.web.models.EditProjectDetails
import org.springframework.beans.BeanUtils
import org.springframework.stereotype.Service
import kotlin.jvm.optionals.getOrNull

@Service
open class DepartmentService(
@@ -14,20 +17,32 @@ open class DepartmentService(
private val jdbcDao: JdbcDao,
) : AbstractBaseEntityService<Department, Long, DepartmentRepository>(jdbcDao, departmentRepository) {
open fun allDepartments(): List<DepartmentSearchInfo>{
return departmentRepository.findDepartmentSearchInfoBy()
return departmentRepository.findDepartmentSearchInfoByAndDeletedFalse()
}

open fun saveDepartment(request: NewDepartmentRequest): Department {
val department =
Department().apply {
name = request.departmentName
code = request.departmentCode
description = request.description
}
var department = Department()

if (request.id != null && request.id > 0) {
department = departmentRepository.findById(request.id).orElseThrow()

BeanUtils.copyProperties(request, department)

}else{
department.name = request.name
department.code = request.code
department.description = request.description
}

return departmentRepository.save(department)
}

open fun getDepartmentDetails(departmentId: Long): DepartmentSearchInfo? {
val department = departmentRepository.findDepartmentSearchInfoById(departmentId).orElseThrow()

return department
}

open fun combo(args: Map<String, Any>): List<Map<String, Any>> {
val sql = StringBuilder("select"
+ " d.id as id,"


+ 14
- 6
src/main/java/com/ffii/tsms/modules/data/service/PositionService.kt Dosyayı Görüntüle

@@ -12,6 +12,7 @@ import com.ffii.tsms.modules.data.entity.projections.DepartmentSearchInfo
import com.ffii.tsms.modules.data.entity.projections.PositionSearchInfo
import com.ffii.tsms.modules.data.web.models.NewDepartmentRequest
import com.ffii.tsms.modules.data.web.models.NewPositionRequest
import org.springframework.beans.BeanUtils
import org.springframework.stereotype.Service
@Service
open class PositionService(
@@ -27,12 +28,19 @@ open class PositionService(
}

open fun savePosition(request: NewPositionRequest): Position {
val position =
Position().apply {
name = request.positionName
code = request.positionCode
description = request.description
}

var position = Position()

if (request.id != null && request.id > 0 ){
position = positionRepository.findById(request.id).orElseThrow()

BeanUtils.copyProperties(request, position)

}else{
position.name = request.name
position.code = request.code
position.description = request.description
}

return positionRepository.save(position)
}


+ 14
- 0
src/main/java/com/ffii/tsms/modules/data/web/DepartmentController.kt Dosyayı Görüntüle

@@ -1,5 +1,6 @@
package com.ffii.tsms.modules.data.web

import com.ffii.core.exception.NotFoundException
import com.ffii.core.response.RecordsRes
import com.ffii.core.utils.CriteriaArgsBuilder
import com.ffii.tsms.modules.data.entity.Department
@@ -7,9 +8,11 @@ import com.ffii.tsms.modules.data.entity.projections.DepartmentSearchInfo
import com.ffii.tsms.modules.data.service.DepartmentService
import com.ffii.tsms.modules.data.web.models.NewDepartmentRequest
import com.ffii.tsms.modules.project.entity.Project
import com.ffii.tsms.modules.project.web.models.EditProjectDetails
import com.ffii.tsms.modules.project.web.models.NewProjectRequest
import jakarta.servlet.http.HttpServletRequest
import jakarta.validation.Valid
import org.springframework.http.HttpStatus
import org.springframework.web.bind.ServletRequestBindingException
import org.springframework.web.bind.annotation.*

@@ -22,11 +25,22 @@ class DepartmentController(private val departmentService: DepartmentService
return departmentService.allDepartments()
}

@GetMapping("/departmentDetails/{id}")
fun departmentDetails(@PathVariable id: Long): DepartmentSearchInfo {
return departmentService.getDepartmentDetails(id) ?: throw NotFoundException()
}

@PostMapping("/new")
fun saveProject(@Valid @RequestBody newDepartment: NewDepartmentRequest): Department {
return departmentService.saveDepartment(newDepartment)
}

@DeleteMapping("/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
fun deleteDepartment(@PathVariable id: Long) {
departmentService.markDelete(id)
}

@GetMapping("/combo")
@Throws(ServletRequestBindingException::class)
fun combo(request: HttpServletRequest?): RecordsRes<Map<String, Any>> {


+ 7
- 0
src/main/java/com/ffii/tsms/modules/data/web/PositionController.kt Dosyayı Görüntüle

@@ -14,6 +14,7 @@ import com.ffii.tsms.modules.project.entity.Project
import com.ffii.tsms.modules.project.web.models.NewProjectRequest
import jakarta.servlet.http.HttpServletRequest
import jakarta.validation.Valid
import org.springframework.http.HttpStatus
import org.springframework.web.bind.ServletRequestBindingException
import org.springframework.web.bind.annotation.*

@@ -36,6 +37,12 @@ class PositionController(private val positionService: PositionService
return positionService.savePosition(newPosition)
}

@DeleteMapping("/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
fun deletePosition(@PathVariable id: Long) {
positionService.markDelete(id)
}

@GetMapping("/combo")
@Throws(ServletRequestBindingException::class)
fun combo(request: HttpServletRequest?): RecordsRes<Map<String, Any>> {


+ 3
- 2
src/main/java/com/ffii/tsms/modules/data/web/models/NewDepartmentRequest.kt Dosyayı Görüntüle

@@ -3,10 +3,11 @@ package com.ffii.tsms.modules.data.web.models
import jakarta.validation.constraints.NotBlank

data class NewDepartmentRequest (
val id: Long?,
@field: NotBlank(message = "Department code cannot be empty")
val departmentCode: String,
val code: String,
@field:NotBlank(message = "Department name cannot be empty")
val departmentName: String,
val name: String,

val description: String
)

+ 3
- 3
src/main/java/com/ffii/tsms/modules/data/web/models/NewPositionRequest.kt Dosyayı Görüntüle

@@ -4,12 +4,12 @@ import jakarta.validation.constraints.NotBlank

data class NewPositionRequest (

val id: Long,
val id: Long?,

@field: NotBlank(message = "Position code cannot be empty")
val positionCode: String,
val code: String,
@field:NotBlank(message = "Position name cannot be empty")
val positionName: String,
val name: String,

val description: String
)

Yükleniyor…
İptal
Kaydet