From e9a7f06ea151b397783659679264c5173dd07413 Mon Sep 17 00:00:00 2001 From: "CANCERYS\\kw093" Date: Wed, 8 Apr 2026 22:18:52 +0800 Subject: [PATCH] update --- .../jobOrder/service/JoPickOrderService.kt | 10 +++++--- .../jobOrder/web/JobOrderController.kt | 4 ++-- .../ffii/fpsms/modules/master/entity/Bom.kt | 2 ++ .../service/ProductProcessService.kt | 24 ++++++++++--------- .../web/ProductProcessController.kt | 8 +++---- .../20260408_01_Enson/02_alter_stock_take.sql | 9 +++++++ .../20260408_01_Enson/03_alter_stock_take.sql | 15 ++++++++++++ 7 files changed, 52 insertions(+), 20 deletions(-) create mode 100644 src/main/resources/db/changelog/changes/20260408_01_Enson/02_alter_stock_take.sql create mode 100644 src/main/resources/db/changelog/changes/20260408_01_Enson/03_alter_stock_take.sql diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt index 2711e91..79a011e 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt @@ -1770,7 +1770,7 @@ private fun normalizeFloor(raw: String): String { val num = cleaned.replace(Regex("[^0-9]"), "") return if (num.isNotEmpty()) "${num}F" else cleaned } -open fun getAllJoPickOrders(isDrink: Boolean?, floor: String?): List { +open fun getAllJoPickOrders(bomType: String?, floor: String?): List { println("=== getAllJoPickOrders ===") return try { @@ -1879,8 +1879,12 @@ open fun getAllJoPickOrders(isDrink: Boolean?, floor: String?): List { - return joPickOrderService.getAllJoPickOrders(isDrink, floor) + return joPickOrderService.getAllJoPickOrders(bomType, floor) } @GetMapping("/all-lots-hierarchical-by-pick-order/{pickOrderId}") diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/Bom.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/Bom.kt index f230bc3..fd094e8 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/Bom.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/Bom.kt @@ -28,6 +28,8 @@ open class Bom : BaseEntity() { @Column open var allergicSubstances: Int? = null + @Column + open var type: String? = null @Column open var timeSequence: Int? = null @Column diff --git a/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt b/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt index 464e406..0218cac 100644 --- a/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt +++ b/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt @@ -1407,11 +1407,15 @@ open class ProductProcessService( ) } - open fun getAllJoborderProductProcessInfo(isDrink: Boolean?): List { + open fun getAllJoborderProductProcessInfo(bomType: String?): List { val productProcesses = productProcessRepository.findAllByDeletedIsFalse() - val productProcessIds = productProcesses.map { it.id } + val normalizedType = bomType?.trim()?.lowercase()?.takeIf { it.isNotBlank() } + val filteredProductProcesses = productProcesses.filter { process -> + if (normalizedType == null) return@filter true + process.bom?.type?.trim()?.lowercase() == normalizedType + } - return productProcesses.map { productProcesses -> + return filteredProductProcesses.map { productProcesses -> val productProcessLines = productProcessLineRepository.findByProductProcess_Id(productProcesses.id ?: 0L) val jobOrder = jobOrderRepository.findById(productProcesses.jobOrder?.id ?: 0L).orElse(null) val FinishedProductProcessLineCount = @@ -1478,9 +1482,6 @@ open class ProductProcessService( ) }.filter { response -> // 过滤掉已完成上架的 job order - if (isDrink != null && response.isDrink != isDrink) { - return@filter false - } val jobOrder = jobOrderRepository.findById(response.jobOrderId ?: 0L).orElse(null) val stockInLineStatus = jobOrder?.stockInLines?.firstOrNull()?.status stockInLineStatus != "completed" @@ -1504,7 +1505,7 @@ open class ProductProcessService( jobOrderCode: String?, bomIds: List?, qcReady: Boolean?, - isDrink: Boolean?, + bomType: String?, page: Int, size: Int ): JobOrderProductProcessPageResponse { @@ -1514,7 +1515,7 @@ open class ProductProcessService( val trimmedItemCode = itemCode?.trim()?.takeIf { it.isNotBlank() } val trimmedJobOrderCode = jobOrderCode?.trim()?.takeIf { it.isNotBlank() } - // 1) 找出候选 jobOrder:用 date/itemCode/jobOrderCode/bomIds/isDrink 先把数据缩小到今天等范围 + // 1) 找出候选 jobOrder:用 date/itemCode/jobOrderCode/bomIds/type 先把数据缩小到今天等范围 val candidateProcesses = if (date != null) { productProcessRepository.findAllByDeletedIsFalseAndDate(date) } else { @@ -1523,9 +1524,10 @@ open class ProductProcessService( val filteredCandidateProcesses = candidateProcesses.filter { p -> if (p.jobOrder?.isHidden == true) return@filter false - if (isDrink != null) { - val bomIsDrink = p.bom?.isDrink - if (bomIsDrink != isDrink) return@filter false + val normalizedType = bomType?.trim()?.lowercase()?.takeIf { it.isNotBlank() } + if (normalizedType != null) { + val currentType = p.bom?.type?.trim()?.lowercase() + if (currentType != normalizedType) return@filter false } if (trimmedItemCode != null) { val code = p.item?.code diff --git a/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt b/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt index f9177f8..90b7a49 100644 --- a/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt +++ b/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt @@ -194,9 +194,9 @@ class ProductProcessController( @GetMapping("/Demo/Process/all") fun demoprocessall( - @RequestParam(required = false) isDrink: Boolean? + @RequestParam(name = "type", required = false) bomType: String? ): List { - return productProcessService.getAllJoborderProductProcessInfo(isDrink) + return productProcessService.getAllJoborderProductProcessInfo(bomType) } @GetMapping("/Demo/Process/search") @@ -206,7 +206,7 @@ class ProductProcessController( @RequestParam(required = false) jobOrderCode: String?, @RequestParam(required = false) bomIds: String?, @RequestParam(required = false) qcReady: Boolean?, - @RequestParam(required = false) isDrink: Boolean?, + @RequestParam(name = "type", required = false) bomType: String?, @RequestParam(defaultValue = "0") page: Int, @RequestParam(defaultValue = "50") size: Int ): JobOrderProductProcessPageResponse { @@ -225,7 +225,7 @@ class ProductProcessController( jobOrderCode = jobOrderCode, bomIds = parsedBomIds, qcReady = qcReady, - isDrink = isDrink, + bomType = bomType, page = page, size = size ) diff --git a/src/main/resources/db/changelog/changes/20260408_01_Enson/02_alter_stock_take.sql b/src/main/resources/db/changelog/changes/20260408_01_Enson/02_alter_stock_take.sql new file mode 100644 index 0000000..e784535 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20260408_01_Enson/02_alter_stock_take.sql @@ -0,0 +1,9 @@ +-- liquibase formatted sql +-- changeset Enson:alter_bom_type +-- preconditions onFail:MARK_RAN +-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM information_schema.columns WHERE table_schema='fpsmsdb' AND table_name='bom' AND column_name='type' + + +ALTER TABLE `fpsmsdb`.`bom` +Add COLUMN `type` varchar(255); + diff --git a/src/main/resources/db/changelog/changes/20260408_01_Enson/03_alter_stock_take.sql b/src/main/resources/db/changelog/changes/20260408_01_Enson/03_alter_stock_take.sql new file mode 100644 index 0000000..0625b31 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20260408_01_Enson/03_alter_stock_take.sql @@ -0,0 +1,15 @@ +-- liquibase formatted sql +-- changeset Enson:update_bom_type_by_code_and_isDrink_20260408 + +UPDATE `fpsmsdb`.`bom` +SET `type` = CASE + WHEN isDrink = 1 THEN 'Drink' + WHEN code IN ( + 'PP2255','PP2257','PP2258','PP2259','PP2261','PP2263','PP2264','PP2266', + 'PP2270','PP2275','PP2280','PP2281','PP2283', + 'PP2291','PP2295','PP2296','PP2297','PP2299','PP2302','PP2303','PP2304', + 'PP2305','PP2339','PP2340' + ) THEN 'Powder_Mixture' + ELSE 'Other' +END +WHERE `type` IS NULL OR `type` = ''; \ No newline at end of file