From 827a224f2612d7a92acb66e1d1614b96549c5160 Mon Sep 17 00:00:00 2001 From: kelvinsuen Date: Thu, 23 Oct 2025 19:04:50 +0800 Subject: [PATCH] update qc default --- .../com/ffii/fpsms/modules/master/entity/QcCategory.kt | 4 ++++ .../modules/master/entity/QcCategoryRepository.kt | 1 + .../ffii/fpsms/modules/master/service/ItemsService.kt | 3 ++- .../fpsms/modules/master/service/QcCategoryService.kt | 10 +++++++++- .../20251023_02_kelvinS/01_alter_qc_category.sql | 6 ++++++ 5 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/db/changelog/changes/20251023_02_kelvinS/01_alter_qc_category.sql diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/QcCategory.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/QcCategory.kt index 0946dd2..38d9a17 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/QcCategory.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/QcCategory.kt @@ -22,6 +22,10 @@ open class QcCategory : BaseEntity() { @Column(name = "description") open var description: String? = null + @NotNull + @Column(name = "isDefault") + open var isDefault: Boolean = false + // @OneToMany(cascade = [CascadeType.ALL]) // @JoinTable( // name = "qc_item_category", diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/QcCategoryRepository.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/QcCategoryRepository.kt index d25cd15..6283526 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/QcCategoryRepository.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/QcCategoryRepository.kt @@ -30,5 +30,6 @@ interface QcCategoryRepository : AbstractRepository { """ ) fun findQcCategoryInfoByItemIdAndType(itemId: Long, type: String): QcCategoryInfo?; + fun findQcCategoryInfoByIsDefault(isDefault: Boolean): QcCategoryInfo?; // fun findByItemIdAndType(itemId: Long, type: String): QcCategory?; } \ No newline at end of file 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 f51e840..fad1f66 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 @@ -379,7 +379,8 @@ open class ItemsService( + " i.id " + " FROM items i " + " INNER JOIN items_qc_category_mapping iqcm ON iqcm.itemId = i.id AND iqcm.type = :qcType " - + " WHERE i.deleted = false " + + " LEFT JOIN qc_category qcc ON qcc.id = iqcm.qcCategoryId " + + " WHERE i.deleted = false AND qcc.deleted = false" + " AND LEFT(i.code, 2) = (SELECT LEFT(code, 2) FROM items WHERE id = :itemId)" + " AND i.id != :itemId " ) diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/QcCategoryService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/QcCategoryService.kt index 4c76f02..0d1fb09 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/QcCategoryService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/QcCategoryService.kt @@ -28,7 +28,15 @@ open class QcCategoryService( "qcType" to type ) val similarItemIds = itemsService.getItemsIdWithSameCategoryForQc(args); - result = qcCategoryRepository.findQcCategoryInfoByItemIdAndType(similarItemIds[0].toLong(), type) + + // Comment the lines below to disable auto matching QC from similar items + result = if (similarItemIds.isNotEmpty()) + qcCategoryRepository.findQcCategoryInfoByItemIdAndType(similarItemIds[0].toLong(), type) + else null + // + if (result == null) { // Use Default Template + result = qcCategoryRepository.findQcCategoryInfoByIsDefault(true) + } } return result; } diff --git a/src/main/resources/db/changelog/changes/20251023_02_kelvinS/01_alter_qc_category.sql b/src/main/resources/db/changelog/changes/20251023_02_kelvinS/01_alter_qc_category.sql new file mode 100644 index 0000000..6b1504b --- /dev/null +++ b/src/main/resources/db/changelog/changes/20251023_02_kelvinS/01_alter_qc_category.sql @@ -0,0 +1,6 @@ +-- liquibase formatted sql +-- changeset kelvinS:alter qc category table + +ALTER TABLE `qc_category` +ADD COLUMN `isDefault` TINYINT(1) NOT NULL DEFAULT '0' AFTER `deleted`, +CHANGE COLUMN `name` `name` VARCHAR(255) NOT NULL ; \ No newline at end of file