@@ -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 | |||||
) |