ソースを参照

update team master

tags/Baseline_30082024_BACKEND_UAT
MSI\derek 1年前
コミット
d83f620595
7個のファイルの変更105行の追加8行の削除
  1. +2
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/StaffRepository.java
  2. +4
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/TeamRepository.java
  3. +21
    -5
      src/main/java/com/ffii/tsms/modules/data/service/StaffsService.kt
  4. +34
    -0
      src/main/java/com/ffii/tsms/modules/data/service/TeamService.kt
  5. +17
    -0
      src/main/java/com/ffii/tsms/modules/data/web/StaffsController.kt
  6. +17
    -3
      src/main/java/com/ffii/tsms/modules/data/web/TeamController.kt
  7. +10
    -0
      src/main/java/com/ffii/tsms/modules/data/web/models/NewTeamRequest.kt

+ 2
- 0
src/main/java/com/ffii/tsms/modules/data/entity/StaffRepository.java ファイルの表示

@@ -7,9 +7,11 @@ import org.springframework.data.repository.query.Param;

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

public interface StaffRepository extends AbstractRepository<Staff, Long> {
List<StaffSearchInfo> findStaffSearchInfoByAndDeletedFalse();

List<StaffSearchInfo> findAllStaffSearchInfoByIdIn(List<Long> ids);
Optional<Staff> findByStaffId(@Param("staffId") String staffId);
}

+ 4
- 0
src/main/java/com/ffii/tsms/modules/data/entity/TeamRepository.java ファイルの表示

@@ -1,6 +1,10 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;
import com.ffii.tsms.modules.data.entity.projections.StaffSearchInfo;

import java.util.List;

public interface TeamRepository extends AbstractRepository<Team, Long> {
List<Team> findByDeletedFalse();
}

+ 21
- 5
src/main/java/com/ffii/tsms/modules/data/service/StaffsService.kt ファイルの表示

@@ -4,13 +4,16 @@ import com.ffii.core.support.AbstractBaseEntityService
import com.ffii.core.support.JdbcDao
import com.ffii.tsms.modules.data.entity.*
import com.ffii.tsms.modules.data.entity.projections.StaffSearchInfo
//import com.ffii.tsms.modules.data.web.models.NewCustomerResponse
import com.ffii.tsms.modules.data.web.models.NewStaffRequest
import com.ffii.tsms.modules.data.web.models.NewStaffResponse
import com.ffii.tsms.modules.user.entity.User
import com.ffii.tsms.modules.user.entity.UserRepository
import org.springframework.beans.BeanUtils
import org.springframework.security.crypto.password.PasswordEncoder
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import java.util.*


@Service
@@ -63,13 +66,17 @@ open class StaffsService(
// return jdbcDao.queryForList(sql.toString(), args)
// }

open fun findByStaffId(id: String): Optional<Staff> {
return staffRepository.findByStaffId(id);
}

@Transactional(rollbackFor = [Exception::class])
open fun saveStaff(req: NewStaffRequest): Staff {
val user = userRepository.saveAndFlush(
User().apply {
username = req.name
password = passwordEncoder.encode("mms1234")
name = req.name
username = req.name
password = passwordEncoder.encode("mms1234")
name = req.name
}
)
val currentPosition = positionRepository.findById(req.currentPositionId).orElseThrow()
@@ -113,7 +120,6 @@ open class StaffsService(
logger.info(staff.id)
return staff
}

@Transactional(rollbackFor = [Exception::class])
open fun updateStaff(req: NewStaffRequest, staff: Staff): Staff {
val currentPosition = positionRepository.findById(req.currentPositionId).orElseThrow()
@@ -152,7 +158,7 @@ open class StaffsService(
salaryEffectiveService.saveSalaryEffective(staff.id!!, salary.id!!)

return staffRepository.save(staff)
}
}

@Transactional(rollbackFor = [Exception::class])
open fun saveOrUpdate(req: NewStaffRequest): Staff {
@@ -164,4 +170,14 @@ open class StaffsService(
}
return staff;
}

open fun combo(args: Map<String, Any>): List<Map<String, Any>> {
val sql = StringBuilder("select"
+ " s.id as id,"
+ " s.name as label"
+ " from staff s"
+ " where s.deleted = false "
)
return jdbcDao.queryForList(sql.toString(), args)
}
}

+ 34
- 0
src/main/java/com/ffii/tsms/modules/data/service/TeamService.kt ファイルの表示

@@ -2,16 +2,50 @@ package com.ffii.tsms.modules.data.service

import com.ffii.core.support.AbstractBaseEntityService
import com.ffii.core.support.JdbcDao
import com.ffii.tsms.modules.data.entity.Staff
import com.ffii.tsms.modules.data.entity.StaffRepository
import com.ffii.tsms.modules.data.entity.Team
import com.ffii.tsms.modules.data.entity.TeamRepository
import com.ffii.tsms.modules.data.entity.projections.StaffSearchInfo
import com.ffii.tsms.modules.data.web.models.NewTeamRequest
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional

@Service
open class TeamService(
private val teamRepository: TeamRepository,
private val staffRepository: StaffRepository,
private val jdbcDao: JdbcDao,
) : AbstractBaseEntityService<Team, Long, TeamRepository>(jdbcDao, teamRepository) {

open fun allTeam(): List<Team> {
return teamRepository.findByDeletedFalse();
}

@Transactional(rollbackFor = [Exception::class])
open fun saveTeam(req: NewTeamRequest): Team {
val ids = req.addStaffIds
val teamLead = staffRepository.findById(ids[0]).orElseThrow()
val teamName = "Team " + teamLead.name

val initials = teamLead.name.split(" ").map { it.first() }
val teamCode = initials.joinToString("")

val team = Team().apply {
name = teamName
code = teamCode
}
teamRepository.saveAndFlush(team)
for (id in ids) {
val staff = staffRepository.findById(id).orElseThrow()
staff.apply {
this.team = team
}
staffRepository.save(staff)
}
return team
}

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


+ 17
- 0
src/main/java/com/ffii/tsms/modules/data/web/StaffsController.kt ファイルの表示

@@ -1,13 +1,18 @@
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.core.utils.Params
import com.ffii.tsms.modules.data.entity.Staff
import com.ffii.tsms.modules.data.entity.projections.StaffSearchInfo
import com.ffii.tsms.modules.data.service.StaffsService
import com.ffii.tsms.modules.data.web.models.NewStaffRequest
import com.ffii.tsms.modules.data.web.models.NewStaffResponse
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.*


@@ -38,6 +43,18 @@ class StaffsController(private val staffsService: StaffsService) {
fun delete(@PathVariable id: Long?) {
staffsService.markDelete(id)
}

@GetMapping("/combo")
@Throws(ServletRequestBindingException::class)
fun combo(request: HttpServletRequest?): RecordsRes<Map<String, Any>> {
println(request)
return RecordsRes<Map<String, Any>>(
staffsService.combo(
CriteriaArgsBuilder.withRequest(request)
.build()
)
)
}
@PostMapping("/save")
fun saveStaff(@Valid @RequestBody newStaff: NewStaffRequest): Staff {
return staffsService.saveOrUpdate(newStaff)


+ 17
- 3
src/main/java/com/ffii/tsms/modules/data/web/TeamController.kt ファイルの表示

@@ -2,18 +2,32 @@ package com.ffii.tsms.modules.data.web

import com.ffii.core.response.RecordsRes
import com.ffii.core.utils.CriteriaArgsBuilder
import com.ffii.tsms.modules.data.entity.Staff
import com.ffii.tsms.modules.data.entity.Team
import com.ffii.tsms.modules.data.entity.projections.StaffSearchInfo
import com.ffii.tsms.modules.data.service.TeamService
import com.ffii.tsms.modules.data.web.models.NewStaffRequest
import com.ffii.tsms.modules.data.web.models.NewTeamRequest
import jakarta.servlet.http.HttpServletRequest
import jakarta.validation.Valid
import org.springframework.web.bind.ServletRequestBindingException
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
import org.springframework.web.bind.annotation.*


@RestController
@RequestMapping("/team")
class TeamController(private val teamService: TeamService) {

@GetMapping
fun allStaff(): List<Team> {
return teamService.allTeam()
}

@PostMapping("/save")
fun saveStaff(@Valid @RequestBody newTeam: NewTeamRequest): Team {
return teamService.saveTeam(newTeam)
}

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


+ 10
- 0
src/main/java/com/ffii/tsms/modules/data/web/models/NewTeamRequest.kt ファイルの表示

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

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

data class NewTeamRequest (
@field:NotNull(message = "ids cannot be empty")
val addStaffIds: List<Long>
)

読み込み中…
キャンセル
保存