diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/QcItemRepository.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/QcItemRepository.kt index eace3af..5044a7e 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/QcItemRepository.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/QcItemRepository.kt @@ -8,4 +8,6 @@ interface QcItemRepository : AbstractRepository { fun findAllByDeletedIsFalse(): List fun findByCodeAndDeletedIsFalse(code: String): QcItem? + + fun findByIdAndDeletedIsFalse(id: Long): QcItem? } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/QcItemService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/QcItemService.kt index fb11960..7f4fd00 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/QcItemService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/QcItemService.kt @@ -1,12 +1,14 @@ package com.ffii.fpsms.modules.master.service +import com.ffii.core.support.AbstractBaseEntityService +import com.ffii.core.support.JdbcDao import com.ffii.fpsms.modules.master.entity.QcItem import com.ffii.fpsms.modules.master.entity.QcItemRepository import org.springframework.stereotype.Service @Service open class QcItemService( - private val qcItemRepository: QcItemRepository + private val qcItemRepository: QcItemRepository, ) { open fun allQcItems(): List { return qcItemRepository.findAllByDeletedIsFalse() @@ -15,4 +17,18 @@ open class QcItemService( open fun findQcItemByCode(code: String): QcItem? { return qcItemRepository.findByCodeAndDeletedIsFalse(code) } + + open fun findQcItemById(id: Long): QcItem? { + return qcItemRepository.findByIdAndDeletedIsFalse(id) + } + + open fun markDeleted(id: Long): List { + val qcItem = qcItemRepository.findById(id).orElseThrow().apply { + deleted = true + } + + qcItemRepository.save(qcItem) + + return allQcItems() + } } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/master/web/QcItemController.kt b/src/main/java/com/ffii/fpsms/modules/master/web/QcItemController.kt index 0d1744c..5bed80d 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/web/QcItemController.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/web/QcItemController.kt @@ -1,21 +1,16 @@ package com.ffii.fpsms.modules.master.web +import com.ffii.core.exception.NotFoundException +import com.ffii.core.utils.JwtTokenUtil import com.ffii.fpsms.modules.master.entity.QcItem import com.ffii.fpsms.modules.master.entity.QcItemRepository import com.ffii.fpsms.modules.master.service.QcItemService import com.ffii.fpsms.modules.master.web.models.SaveQcItemRequest import com.ffii.fpsms.modules.master.web.models.SaveQcItemResponse import jakarta.validation.Valid -import org.springframework.web.bind.annotation.GetMapping -import org.springframework.web.bind.annotation.PostMapping -import org.springframework.web.bind.annotation.RequestBody -import org.springframework.web.bind.annotation.RequestMapping -import org.springframework.web.bind.annotation.RestController -import kotlin.reflect.KClass -import kotlin.reflect.KProperty -import kotlin.reflect.KParameter -import kotlin.reflect.KTypeParameter -import kotlin.reflect.typeOf +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.web.bind.annotation.* @RestController @RequestMapping("/qcItems") @@ -23,11 +18,25 @@ class QcItemController( private val qcItemService: QcItemService, private val qcItemRepository: QcItemRepository, ) { + + var logger: Logger = LoggerFactory.getLogger(JwtTokenUtil::class.java) @GetMapping fun allQcItems(): List { return qcItemService.allQcItems() } + @DeleteMapping("/{id}") +// @ResponseStatus(HttpStatus.NO_CONTENT) + fun deleteQcItem(@PathVariable id: Long): List { + return qcItemService.markDeleted(id) + } + + @GetMapping("/qcItemDetails/{id}") + fun qcItemDetails(@PathVariable id: Long): QcItem { + logger.info(qcItemService.findQcItemById(id)?.code) + return qcItemService.findQcItemById(id) ?: throw NotFoundException() + } + @PostMapping("/save") fun saveQcItem(@Valid @RequestBody request: SaveQcItemRequest): SaveQcItemResponse {