diff --git a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchMainService.kt b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchMainService.kt index 220d6e9..c832957 100644 --- a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchMainService.kt +++ b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchMainService.kt @@ -1011,7 +1011,10 @@ return MessageResponse( sql.append(" AND dop.deliveryNoteCode LIKE :dnPat ") params["dnPat"] = "%${request.deliveryNoteCode!!.trim()}%" } - + if (!request.ticketNo.isNullOrBlank()) { + sql.append(" AND dop.ticketNo LIKE :ticketNoPat ") + params["ticketNoPat"] = "%${request.ticketNo!!.trim()}%" + } sql.append(" GROUP BY dop.id ORDER BY dop.modified DESC ") val rows: List> = try { @@ -1158,7 +1161,10 @@ return MessageResponse( sql.append(" AND dop.deliveryNoteCode LIKE :dnPat ") params["dnPat"] = "%${request.deliveryNoteCode!!.trim()}%" } - + if (!request.ticketNo.isNullOrBlank()) { + sql.append(" AND dop.ticketNo LIKE :ticketNoPat ") + params["ticketNoPat"] = "%${request.ticketNo!!.trim()}%" + } sql.append(" GROUP BY dop.id ORDER BY dop.modified DESC ") val rows: List> = try { diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt index c352f09..3434cc9 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt @@ -374,12 +374,14 @@ fun getCompletedDoPickOrdersWorkbench( @RequestParam(required = false) targetDate: String?, @RequestParam(required = false) deliveryNoteCode: String?, @RequestParam(required = false) truckLanceCode: String?, + @RequestParam(required = false) ticketNo: String?, ): List { val request = GetCompletedDoPickOrdersRequest( targetDate = targetDate, shopName = shopName, deliveryNoteCode = deliveryNoteCode, truckLanceCode = truckLanceCode, + ticketNo = ticketNo, ) return doWorkbenchMainService.getCompletedDoPickOrdersWorkbench(userId, request) } @@ -390,12 +392,14 @@ fun getCompletedDoPickOrdersWorkbenchAll( @RequestParam(required = false) targetDate: String?, @RequestParam(required = false) deliveryNoteCode: String?, @RequestParam(required = false) truckLanceCode: String?, + @RequestParam(required = false) ticketNo: String?, ): List { val request = GetCompletedDoPickOrdersRequest( targetDate = targetDate, shopName = shopName, deliveryNoteCode = deliveryNoteCode, truckLanceCode = truckLanceCode, + ticketNo = ticketNo, ) return doWorkbenchMainService.getCompletedDoPickOrdersWorkbenchAll(request) } diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/SearchPickOrderRequest.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/SearchPickOrderRequest.kt index e80da6f..0129c4a 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/SearchPickOrderRequest.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/SearchPickOrderRequest.kt @@ -23,6 +23,7 @@ data class GetCompletedDoPickOrdersRequest( val deliveryNoteCode: String? = null, /** 卡車 / 車道代碼(模糊匹配 truck_lance_code) */ val truckLanceCode: String? = null, + val ticketNo: String? = null, ) data class CompletedDoPickOrderResponse( diff --git a/src/main/java/com/ffii/fpsms/modules/stock/service/InventoryLotLineService.kt b/src/main/java/com/ffii/fpsms/modules/stock/service/InventoryLotLineService.kt index 718e95d..4c46df9 100644 --- a/src/main/java/com/ffii/fpsms/modules/stock/service/InventoryLotLineService.kt +++ b/src/main/java/com/ffii/fpsms/modules/stock/service/InventoryLotLineService.kt @@ -440,8 +440,14 @@ open fun updateInventoryLotLineQuantities(request: UpdateInventoryLotLineQuantit .filter { !it.deleted && it.inventoryLot?.item != null } .toList() val item = source.firstOrNull()?.inventoryLot?.item - ?: throw IllegalStateException("Item not found for itemId=$itemId") - + if (item == null) { + return WorkbenchItemLotsResponse( + itemId = itemId, + itemCode = "", + itemName = "", + sameItemLots = emptyList() + ) + } val sameItemLots = source .mapNotNull { lotLine -> val lot = lotLine.inventoryLot ?: return@mapNotNull null