| @@ -2,10 +2,9 @@ package com.ffii.tsms.modules.data.service | |||||
| import com.ffii.core.support.AbstractBaseEntityService | import com.ffii.core.support.AbstractBaseEntityService | ||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import com.ffii.tsms.modules.data.entity.Department | |||||
| import com.ffii.tsms.modules.data.entity.DepartmentRepository | |||||
| import com.ffii.tsms.modules.data.entity.Skill | |||||
| import com.ffii.tsms.modules.data.entity.SkillRepository | |||||
| import com.ffii.tsms.modules.data.entity.* | |||||
| import com.ffii.tsms.modules.data.web.models.NewSkillRequest | |||||
| import com.ffii.tsms.modules.data.web.models.NewTeamRequest | |||||
| import org.springframework.stereotype.Service | import org.springframework.stereotype.Service | ||||
| @@ -15,6 +14,34 @@ open class SkillService( | |||||
| private val jdbcDao: JdbcDao, | private val jdbcDao: JdbcDao, | ||||
| ) : AbstractBaseEntityService<Skill, Long, SkillRepository>(jdbcDao, skillRepository) { | ) : AbstractBaseEntityService<Skill, Long, SkillRepository>(jdbcDao, skillRepository) { | ||||
| open fun saveSkill(req: NewSkillRequest): Skill { | |||||
| val skill = Skill().apply { | |||||
| name = req.name | |||||
| code = req.code | |||||
| description = req.description | |||||
| } | |||||
| skillRepository.save(skill) | |||||
| return skill | |||||
| } | |||||
| open fun saveOrUpdate(req: NewSkillRequest): Skill { | |||||
| val skill = if(req.id != null) find(req.id).get() else Skill() | |||||
| if (req.id != null) { | |||||
| // updateSkill(req, skill) | |||||
| } else { | |||||
| saveSkill(req) | |||||
| } | |||||
| return skill | |||||
| } | |||||
| open fun list(args: Map<String, Any>): List<Map<String, Any>> { | |||||
| val sql = StringBuilder("select" | |||||
| + " * " | |||||
| + " from skill s " | |||||
| + " where s.deleted = false " | |||||
| ) | |||||
| return jdbcDao.queryForList(sql.toString(), args) | |||||
| } | |||||
| open fun combo(args: Map<String, Any>): List<Map<String, Any>> { | open fun combo(args: Map<String, Any>): List<Map<String, Any>> { | ||||
| val sql = StringBuilder("select" | val sql = StringBuilder("select" | ||||
| + " id as id," | + " id as id," | ||||
| @@ -2,19 +2,28 @@ package com.ffii.tsms.modules.data.web | |||||
| import com.ffii.core.response.RecordsRes | import com.ffii.core.response.RecordsRes | ||||
| import com.ffii.core.utils.CriteriaArgsBuilder | import com.ffii.core.utils.CriteriaArgsBuilder | ||||
| import com.ffii.tsms.modules.data.service.DepartmentService | |||||
| import com.ffii.tsms.modules.data.entity.Skill | |||||
| import com.ffii.tsms.modules.data.service.SkillService | import com.ffii.tsms.modules.data.service.SkillService | ||||
| import com.ffii.tsms.modules.data.web.models.NewSkillRequest | |||||
| import jakarta.servlet.http.HttpServletRequest | import jakarta.servlet.http.HttpServletRequest | ||||
| import jakarta.validation.Valid | |||||
| import org.springframework.web.bind.ServletRequestBindingException | 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 | @RestController | ||||
| @RequestMapping("/skill") | @RequestMapping("/skill") | ||||
| class SkillController(private val skillService: SkillService) { | |||||
| class SkillController(private val skillService: SkillService) { | |||||
| @PostMapping("/save") | |||||
| fun saveSkill(@Valid @RequestBody newSkill: NewSkillRequest): Skill { | |||||
| return skillService.saveOrUpdate(newSkill) | |||||
| } | |||||
| @GetMapping | |||||
| fun list(): List<Map<String, Any>> { | |||||
| val args: MutableMap<String, Any> = HashMap() | |||||
| return skillService.list(args); | |||||
| } | |||||
| @GetMapping("/combo") | @GetMapping("/combo") | ||||
| @Throws(ServletRequestBindingException::class) | @Throws(ServletRequestBindingException::class) | ||||
| fun combo(request: HttpServletRequest?): RecordsRes<Map<String, Any>> { | fun combo(request: HttpServletRequest?): RecordsRes<Map<String, Any>> { | ||||
| @@ -0,0 +1,15 @@ | |||||
| package com.ffii.tsms.modules.data.web.models | |||||
| import jakarta.validation.constraints.NotBlank | |||||
| data class NewSkillRequest ( | |||||
| val id: Long?, | |||||
| @field: NotBlank(message = "Position code cannot be empty") | |||||
| val name: String, | |||||
| @field:NotBlank(message = "Position name cannot be empty") | |||||
| val code: String, | |||||
| val description: String | |||||
| ) | |||||