From fb33e522c78fd7e21c88d26db61aa6481e6e7361 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 3 Dec 2025 22:29:31 +0800 Subject: [PATCH] stock issue --- .../entity/PickExecutionIssueRepository.kt | 28 +++++++++++++++++-- .../pickOrder/enums/PickExecutionIssueEnum.kt | 8 ++++++ .../service/PickExecutionIssueService.kt | 11 ++++++++ .../web/PickExecutionIssueController.kt | 9 ++++++ 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickExecutionIssueEnum.kt 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 783e684..552417a 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 @@ -2,9 +2,11 @@ package com.ffii.fpsms.modules.pickOrder.entity import org.springframework.data.jpa.repository.JpaRepository -import org.springframework.stereotype.Repository import org.springframework.data.jpa.repository.Query import org.springframework.data.repository.query.Param +import org.springframework.stereotype.Repository +import com.ffii.fpsms.modules.pickOrder.enums.PickExecutionIssueEnum + @Repository interface PickExecutionIssueRepository : JpaRepository { fun findByPickOrderIdAndDeletedFalse(pickOrderId: Long): List @@ -53,4 +55,26 @@ fun findDoIssues(): List ORDER BY p.created DESC """) fun findMaterialIssues(): List -} \ No newline at end of file + + @Query(""" + SELECT p FROM PickExecutionIssue p + WHERE p.badItemQty IS NOT NULL + AND p.badItemQty > 0 + AND p.deleted = false + AND p.handleStatus IN (:statuses) + ORDER BY p.created DESC +""") + fun getBadItemList_statusIn(@Param("statuses") statuses: List): List + + @Query(""" + SELECT p FROM PickExecutionIssue p + WHERE p.badItemQty IS NOT NULL + AND p.badItemQty > 0 + AND p.deleted = false + ORDER BY p.created DESC +""") + fun getBadItemList(): List + +} + + diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickExecutionIssueEnum.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickExecutionIssueEnum.kt new file mode 100644 index 0000000..de3a72f --- /dev/null +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickExecutionIssueEnum.kt @@ -0,0 +1,8 @@ +package com.ffii.fpsms.modules.pickOrder.enums + +enum class PickExecutionIssueEnum (val value: String) { + PENDING("pending"), + SORT_AND_REPAIR("Sort and Repair"), + Dispose("Dispose"); +} + 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 040ff1a..ec67c0f 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 @@ -27,6 +27,7 @@ import com.ffii.fpsms.modules.pickOrder.entity.PickOrderLineRepository import com.ffii.fpsms.modules.deliveryOrder.service.DoPickOrderService import com.ffii.fpsms.modules.jobOrder.entity.JoPickOrderRepository import com.ffii.fpsms.modules.jobOrder.entity.JoPickOrderRecordRepository +import com.ffii.fpsms.modules.pickOrder.enums.PickExecutionIssueEnum import com.ffii.fpsms.modules.stock.web.model.StockOutLineStatus import com.ffii.fpsms.modules.stock.web.model.StockOutStatus import com.ffii.fpsms.modules.pickOrder.enums.PickOrderLineStatus @@ -631,6 +632,16 @@ private fun handleBothMissAndBadItem(request: PickExecutionIssueRequest, missQty open fun getPickExecutionIssuesByPickOrderLine(pickOrderLineId: Long): List { return pickExecutionIssueRepository.findByPickOrderLineIdAndDeletedFalse(pickOrderLineId) } + + open fun getBadItemList(status: PickExecutionIssueEnum? = null): List{ + if(status == null){ + return pickExecutionIssueRepository.getBadItemList(); + }else{ + val statuses = listOf(status); + return pickExecutionIssueRepository.getBadItemList_statusIn(statuses); + } + } + open fun getAllPickExecutionIssues(type: String? = null): List { println("=== getAllPickExecutionIssues Debug ===") println("Requested type: $type") 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 3ae2501..a27ffe3 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 @@ -3,6 +3,7 @@ package com.ffii.fpsms.modules.pickOrder.web import com.ffii.fpsms.modules.master.web.models.MessageResponse import com.ffii.fpsms.modules.pickOrder.entity.PickExecutionIssue +import com.ffii.fpsms.modules.pickOrder.enums.PickExecutionIssueEnum import com.ffii.fpsms.modules.pickOrder.service.PickExecutionIssueService // 修复导入路径 import com.ffii.fpsms.modules.stock.web.model.PickExecutionIssueRequest import org.springframework.web.bind.annotation.* @@ -34,4 +35,12 @@ class PickExecutionIssueController( println("=== Controller received type parameter: $type ===") return pickExecutionIssueService.getAllPickExecutionIssues(type) } + + @GetMapping("/badItemList") + fun getBadItemList( + @RequestParam(required = false) status: PickExecutionIssueEnum? + ): List { + + return pickExecutionIssueService.getBadItemList(status) + } } \ No newline at end of file