diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt index 43be574..7d043f0 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt @@ -9,6 +9,7 @@ import com.ffii.fpsms.modules.master.web.models.MessageResponse import com.ffii.fpsms.modules.master.web.models.NewItemRequest import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional +import java.io.IOException import kotlin.jvm.optionals.getOrNull @Service @@ -26,6 +27,7 @@ open class ItemsService( open fun getItem(id: Long): Items? { return itemsRepository.findById(id).getOrNull() } + @Throws(IOException::class) @Transactional open fun saveItem(request: NewItemRequest): MessageResponse { val type = itemTypeRepository.findById(request.typeId).get() diff --git a/src/main/java/com/ffii/fpsms/modules/master/web/ItemsController.kt b/src/main/java/com/ffii/fpsms/modules/master/web/ItemsController.kt index 2398452..81c5903 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/web/ItemsController.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/web/ItemsController.kt @@ -11,18 +11,18 @@ import org.springframework.web.bind.annotation.* @RestController @RequestMapping("/items") class ItemsController( - private val materialService: ItemsService + private val itemsService: ItemsService ) { @GetMapping fun allItems(): List { - return materialService.allItems() + return itemsService.allItems() } @GetMapping("/details/{id}") fun getItems(@PathVariable id: Long): Items { - return materialService.getItem(id) ?: throw NotFoundException() + return itemsService.getItem(id) ?: throw NotFoundException() } @PostMapping("/new") fun saveItem(@Valid @RequestBody newItem: NewItemRequest): MessageResponse { - return materialService.saveItem(newItem) + return itemsService.saveItem(newItem) } } \ No newline at end of file diff --git a/src/main/resources/db/changelog/changes/20250310_01_cyril/01_qc_item.sql b/src/main/resources/db/changelog/changes/20250310_01_cyril/01_qc_item.sql index 574d25b..870988b 100644 --- a/src/main/resources/db/changelog/changes/20250310_01_cyril/01_qc_item.sql +++ b/src/main/resources/db/changelog/changes/20250310_01_cyril/01_qc_item.sql @@ -13,6 +13,5 @@ CREATE TABLE `qc_item` `code` VARCHAR(30) NOT NULL, `name` VARCHAR(30) NOT NULL, `description` VARCHAR(100) NULL, - `systemInput` TINYINT(1) NOT NULL, PRIMARY KEY (`id`) ); \ No newline at end of file diff --git a/src/main/resources/db/changelog/changes/20250320_01_derek/01_qc_check.sql b/src/main/resources/db/changelog/changes/20250320_01_derek/01_qc_check.sql new file mode 100644 index 0000000..a75466f --- /dev/null +++ b/src/main/resources/db/changelog/changes/20250320_01_derek/01_qc_check.sql @@ -0,0 +1,40 @@ +--liquibase formatted sql + +--changeset derek:qc check +CREATE TABLE `qc_check` ( + `id` INT NOT NULL AUTO_INCREMENT, + `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `createdBy` VARCHAR(30) NULL DEFAULT NULL, + `version` INT NOT NULL DEFAULT '0', + `modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `modifiedBy` VARCHAR(30) NULL DEFAULT NULL, + `deleted` TINYINT(1) NOT NULL DEFAULT '0', + `qcItemId` INT(1) NOT NULL, + `isRange` TINYINT(1) NOT NULL DEFAULT '0', + `description` VARCHAR(100) NULL, + `systemInput` TINYINT(1) NOT NULL DEFAULT '0', + `lowerLimit` DECIMAL(16,2) NULL, + `upperLimit` DECIMAL(16,2) NULL, + `itemId` INT NOT NULL, + PRIMARY KEY (`id`), + CONSTRAINT fk_check_qc_items FOREIGN KEY (`qcItemId`) REFERENCES `qc_item` (`id`), + CONSTRAINT fk_check_items FOREIGN KEY (`itemId`) REFERENCES `items` (`id`) +); + +CREATE TABLE `qc_result` ( + `id` INT NOT NULL AUTO_INCREMENT, + `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `createdBy` VARCHAR(30) NULL DEFAULT NULL, + `version` INT NOT NULL DEFAULT '0', + `modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `modifiedBy` VARCHAR(30) NULL DEFAULT NULL, + `deleted` TINYINT(1) NOT NULL DEFAULT '0', + itemId INT NOT NULL, + qcCheckId INT NOT NULL, + `recordDate` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `result_value` DECIMAL(16,2) NULL, + `result_bool` TINYINT(1) NULL, + `inspectorId` INT NOT NULL, + PRIMARY KEY (`id`), + CONSTRAINT fk_qc_check FOREIGN KEY (`qcCheckId`) REFERENCES `qc_check` (`id`) +); \ No newline at end of file