From 2592c43ae4bff79302f59970909bc82a7b547e9a Mon Sep 17 00:00:00 2001 From: "CANCERYS\\kw093" Date: Sun, 12 Oct 2025 23:14:09 +0800 Subject: [PATCH] update --- .../entity/PickExecutionIssueRepository.kt | 30 +++++++++++++ .../service/PickExecutionIssueService.kt | 43 +++++++++++++++++++ .../web/PickExecutionIssueController.kt | 7 +++ 3 files changed, 80 insertions(+) diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickExecutionIssueRepository.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickExecutionIssueRepository.kt index 69840c1..783e684 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickExecutionIssueRepository.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickExecutionIssueRepository.kt @@ -23,4 +23,34 @@ interface PickExecutionIssueRepository : JpaRepository LIMIT 1 """) fun findLatestIssueNoByYearMonth(@Param("yearMonth") yearMonth: String): String? + +fun findByDeletedFalse(): List + +// 只返回 Job Order 的 issues (joPickOrderId 不为空) +@Query(""" + SELECT p FROM PickExecutionIssue p + WHERE p.joPickOrderId IS NOT NULL + AND p.deleted = false + ORDER BY p.created DESC +""") +fun findJoIssues(): List + +// 只返回 Delivery Order 的 issues (doPickOrderId 不为空) +@Query(""" + SELECT p FROM PickExecutionIssue p + WHERE p.doPickOrderId IS NOT NULL + AND p.deleted = false + ORDER BY p.created DESC +""") +fun findDoIssues(): List + +// 只返回 Material 的 issues (两者都为空) +@Query(""" + SELECT p FROM PickExecutionIssue p + WHERE p.joPickOrderId IS NULL + AND p.doPickOrderId IS NULL + AND p.deleted = false + ORDER BY p.created DESC +""") +fun findMaterialIssues(): List } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickExecutionIssueService.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickExecutionIssueService.kt index ff67ece..e3ba26d 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickExecutionIssueService.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickExecutionIssueService.kt @@ -471,4 +471,47 @@ private fun handleBothMissAndBadItem(request: PickExecutionIssueRequest, missQty open fun getPickExecutionIssuesByPickOrderLine(pickOrderLineId: Long): List { return pickExecutionIssueRepository.findByPickOrderLineIdAndDeletedFalse(pickOrderLineId) } + open fun getAllPickExecutionIssues(type: String? = null): List { + println("=== getAllPickExecutionIssues Debug ===") + println("Requested type: $type") + + val result = when (type?.lowercase()) { + "jo" -> { + // Case 1: 只返回 Job Order 的 issues + val joIssues = pickExecutionIssueRepository.findJoIssues() + println("✅ Finding JO issues: ${joIssues.size} records") + joIssues.forEach { + println(" - ID=${it.id}, joPickOrderId=${it.joPickOrderId}, doPickOrderId=${it.doPickOrderId}") + } + joIssues + } + "do" -> { + // Case 2: 只返回 Delivery Order 的 issues + val doIssues = pickExecutionIssueRepository.findDoIssues() + println("✅ Finding DO issues: ${doIssues.size} records") + doIssues.forEach { + println(" - ID=${it.id}, joPickOrderId=${it.joPickOrderId}, doPickOrderId=${it.doPickOrderId}") + } + doIssues + } + "material" -> { + // Case 3: 只返回 Material 的 issues (普通 pick order) + val materialIssues = pickExecutionIssueRepository.findMaterialIssues() + println("✅ Finding Material issues: ${materialIssues.size} records") + materialIssues.forEach { + println(" - ID=${it.id}, joPickOrderId=${it.joPickOrderId}, doPickOrderId=${it.doPickOrderId}") + } + materialIssues + } + else -> { + // Case 4: 返回所有 issues + val allIssues = pickExecutionIssueRepository.findByDeletedFalse() + println("✅ Finding ALL issues: ${allIssues.size} records") + allIssues + } + } + + println("=== End Debug ===") + return result + } } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickExecutionIssueController.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickExecutionIssueController.kt index 0f5b228..c318de2 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickExecutionIssueController.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickExecutionIssueController.kt @@ -27,4 +27,11 @@ class PickExecutionIssueController( fun getPickExecutionIssuesByPickOrderLine(@PathVariable pickOrderLineId: Long): List { return pickExecutionIssueService.getPickExecutionIssuesByPickOrderLine(pickOrderLineId) } + @GetMapping("/issues/all") + fun getAllPickExecutionIssues( + @RequestParam(required = false) type: String? + ): List { + println("=== Controller received type parameter: $type ===") + return pickExecutionIssueService.getAllPickExecutionIssues(type) + } } \ No newline at end of file