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 6bba72d..a046520 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 @@ -723,7 +723,8 @@ return MessageResponse( /** * Lane summary for DO workbench: one card per **delivery_order_pick_order** ticket (not per pick_order). - * `unassigned` = ticket still has at least one linked pick_order with assignTo null. + * `unassigned` = tickets with `handledBy` null (aligned with normal FG `do_pick_order.handledBy` semantics). + * `total` = all tickets in the lane/time bucket (including already assigned), so denominators match normal FG. */ open fun getDeliveryOrderPickOrderSummaryByStore(storeId: String, requiredDate: LocalDate?, releaseType: String): StoreLaneSummary { val targetDate = requiredDate ?: LocalDate.now() @@ -745,12 +746,7 @@ return MessageResponse( dop.loadingSequence AS loadingSequence, COUNT(DISTINCT dop.id) AS total_cnt, SUM( - CASE WHEN EXISTS ( - SELECT 1 FROM fpsmsdb.pick_order po2 - WHERE po2.deliveryOrderPickOrderId = dop.id - AND po2.deleted = 0 - AND po2.assignTo IS NULL - ) THEN 1 ELSE 0 END + CASE WHEN dop.handledBy IS NULL THEN 1 ELSE 0 END ) AS unassigned_cnt, GROUP_CONCAT( DISTINCT NULLIF(TRIM(dop.handlerName), '') @@ -761,7 +757,7 @@ return MessageResponse( WHERE dop.deleted = 0 AND dop.storeId = :storeId AND dop.requiredDeliveryDate = :requiredDate - AND dop.ticketStatus IN ('pending', 'released', 'completed') + AND dop.ticketStatus IN ('pending', 'released') AND EXISTS ( SELECT 1 FROM fpsmsdb.pick_order po WHERE po.deliveryOrderPickOrderId = dop.id AND po.deleted = 0 @@ -835,7 +831,7 @@ return MessageResponse( val loadingSequence = cellNullableInt(row, "loadingSequence") val unassigned = cellNum(row, "unassigned_cnt", "unassignedCnt") val total = cellNum(row, "total_cnt", "totalCnt") - if (unassigned <= 0) return@mapNotNull null + if (total <= 0) return@mapNotNull null val sortTime = cellTime(row) ?: LocalTime.MIDNIGHT val handlerName = cellStr(row, "handler_names") LaneAgg(sortTime, lance, loadingSequence, unassigned, total, handlerName) @@ -1646,13 +1642,15 @@ return MessageResponse( dop.ticketStatus as doTicketStatus FROM fpsmsdb.delivery_order_pick_order dop WHERE dop.handledBy = :userId - AND dop.ticketStatus IN ('pending', 'released', 'completed') + + AND dop.ticketStatus IN ('pending', 'released') AND dop.deleted = 0 AND EXISTS ( SELECT 1 FROM fpsmsdb.pick_order po WHERE po.deliveryOrderPickOrderId = dop.id AND po.assignTo = :userId + AND po.type = 'do' AND po.deleted = 0 ) diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt index d2fbc98..cd7cca9 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/ItemsService.kt @@ -340,6 +340,7 @@ open class ItemsService( //println("Query result size: ${result.size}") // result.forEach { row -> println("Result row: $row") } return result + } catch (e: Exception) { println("Error in getPickOrderItemsByPage: ${e.message}") e.printStackTrace()