| @@ -2,9 +2,11 @@ | |||||
| package com.ffii.fpsms.modules.pickOrder.entity | package com.ffii.fpsms.modules.pickOrder.entity | ||||
| import org.springframework.data.jpa.repository.JpaRepository | import org.springframework.data.jpa.repository.JpaRepository | ||||
| import org.springframework.stereotype.Repository | |||||
| import org.springframework.data.jpa.repository.Query | import org.springframework.data.jpa.repository.Query | ||||
| import org.springframework.data.repository.query.Param | import org.springframework.data.repository.query.Param | ||||
| import org.springframework.stereotype.Repository | |||||
| import com.ffii.fpsms.modules.pickOrder.enums.PickExecutionIssueEnum | |||||
| @Repository | @Repository | ||||
| interface PickExecutionIssueRepository : JpaRepository<PickExecutionIssue, Long> { | interface PickExecutionIssueRepository : JpaRepository<PickExecutionIssue, Long> { | ||||
| fun findByPickOrderIdAndDeletedFalse(pickOrderId: Long): List<PickExecutionIssue> | fun findByPickOrderIdAndDeletedFalse(pickOrderId: Long): List<PickExecutionIssue> | ||||
| @@ -53,4 +55,26 @@ fun findDoIssues(): List<PickExecutionIssue> | |||||
| ORDER BY p.created DESC | ORDER BY p.created DESC | ||||
| """) | """) | ||||
| fun findMaterialIssues(): List<PickExecutionIssue> | fun findMaterialIssues(): List<PickExecutionIssue> | ||||
| } | |||||
| @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<PickExecutionIssueEnum>): List<PickExecutionIssue> | |||||
| @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<PickExecutionIssue> | |||||
| } | |||||
| @@ -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"); | |||||
| } | |||||
| @@ -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.deliveryOrder.service.DoPickOrderService | ||||
| import com.ffii.fpsms.modules.jobOrder.entity.JoPickOrderRepository | import com.ffii.fpsms.modules.jobOrder.entity.JoPickOrderRepository | ||||
| import com.ffii.fpsms.modules.jobOrder.entity.JoPickOrderRecordRepository | 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.StockOutLineStatus | ||||
| import com.ffii.fpsms.modules.stock.web.model.StockOutStatus | import com.ffii.fpsms.modules.stock.web.model.StockOutStatus | ||||
| import com.ffii.fpsms.modules.pickOrder.enums.PickOrderLineStatus | import com.ffii.fpsms.modules.pickOrder.enums.PickOrderLineStatus | ||||
| @@ -631,6 +632,16 @@ private fun handleBothMissAndBadItem(request: PickExecutionIssueRequest, missQty | |||||
| open fun getPickExecutionIssuesByPickOrderLine(pickOrderLineId: Long): List<PickExecutionIssue> { | open fun getPickExecutionIssuesByPickOrderLine(pickOrderLineId: Long): List<PickExecutionIssue> { | ||||
| return pickExecutionIssueRepository.findByPickOrderLineIdAndDeletedFalse(pickOrderLineId) | return pickExecutionIssueRepository.findByPickOrderLineIdAndDeletedFalse(pickOrderLineId) | ||||
| } | } | ||||
| open fun getBadItemList(status: PickExecutionIssueEnum? = null): List<PickExecutionIssue>{ | |||||
| if(status == null){ | |||||
| return pickExecutionIssueRepository.getBadItemList(); | |||||
| }else{ | |||||
| val statuses = listOf(status); | |||||
| return pickExecutionIssueRepository.getBadItemList_statusIn(statuses); | |||||
| } | |||||
| } | |||||
| open fun getAllPickExecutionIssues(type: String? = null): List<PickExecutionIssue> { | open fun getAllPickExecutionIssues(type: String? = null): List<PickExecutionIssue> { | ||||
| println("=== getAllPickExecutionIssues Debug ===") | println("=== getAllPickExecutionIssues Debug ===") | ||||
| println("Requested type: $type") | println("Requested type: $type") | ||||
| @@ -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.master.web.models.MessageResponse | ||||
| import com.ffii.fpsms.modules.pickOrder.entity.PickExecutionIssue | 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.pickOrder.service.PickExecutionIssueService // 修复导入路径 | ||||
| import com.ffii.fpsms.modules.stock.web.model.PickExecutionIssueRequest | import com.ffii.fpsms.modules.stock.web.model.PickExecutionIssueRequest | ||||
| import org.springframework.web.bind.annotation.* | import org.springframework.web.bind.annotation.* | ||||
| @@ -34,4 +35,12 @@ class PickExecutionIssueController( | |||||
| println("=== Controller received type parameter: $type ===") | println("=== Controller received type parameter: $type ===") | ||||
| return pickExecutionIssueService.getAllPickExecutionIssues(type) | return pickExecutionIssueService.getAllPickExecutionIssues(type) | ||||
| } | } | ||||
| @GetMapping("/badItemList") | |||||
| fun getBadItemList( | |||||
| @RequestParam(required = false) status: PickExecutionIssueEnum? | |||||
| ): List<PickExecutionIssue> { | |||||
| return pickExecutionIssueService.getBadItemList(status) | |||||
| } | |||||
| } | } | ||||