From 4f19e84330a890cac44dec497d49c0c6bfb01620 Mon Sep 17 00:00:00 2001 From: "kelvin.yau" Date: Wed, 17 Sep 2025 14:52:23 +0800 Subject: [PATCH] API queries update --- .../entity/DeliveryOrderRepository.kt | 21 ++++++- .../service/DeliveryOrderService.kt | 31 ++++++++--- .../web/DeliveryOrderController.kt | 55 ++++++++++++++----- 3 files changed, 80 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrderRepository.kt b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrderRepository.kt index f9012af..c9e1781 100644 --- a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrderRepository.kt +++ b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrderRepository.kt @@ -26,14 +26,29 @@ interface DeliveryOrderRepository : AbstractRepository { fun findByOrderDateBetweenAndDeletedIsFalse(startDate: LocalDateTime?, endDate: LocalDateTime?) : List + //GET FULL LIST + fun findAllBy() : List; - fun findAllByCodeContainsAndShopNameContainsAndStatusAndOrderDateBetweenAndDeletedIsFalse(code: String?, shopName: String?, status: DeliveryOrderStatus?, startDate: LocalDateTime?, endDate: LocalDateTime?) : List; + //SEARCH ALL + fun findAllByCodeContainsAndShopNameContainsAndStatusAndOrderDateBetweenAndEstimatedArrivalDateBetweenAndDeletedIsFalse(code: String?, shopName: String?, status: DeliveryOrderStatus?, orderStartDate: LocalDateTime?, orderEndDate: LocalDateTime?, estArrStartDate: LocalDateTime?, estArrEndDate: LocalDateTime?) : List; + //SEARCH WITHOUT STATUS + fun findAllByCodeContainsAndShopNameContainsAndOrderDateBetweenAndEstimatedArrivalDateBetweenAndDeletedIsFalse(code: String?, shopName: String?, orderStartDate: LocalDateTime?, orderEndDate: LocalDateTime?, estArrStartDate: LocalDateTime?, estArrEndDate: LocalDateTime?) : List; - fun findAllBy() : List; + //SEARCH WITHOUT EST ARR DATE + fun findAllByCodeContainsAndShopNameContainsAndStatusAndOrderDateBetweenAndDeletedIsFalse(code: String?, shopName: String?, status: DeliveryOrderStatus?, orderStartDate: LocalDateTime?, orderEndDate: LocalDateTime?) : List; + //SEARCH WITHOUT EST ARR DATE + STATUS + fun findAllByCodeContainsAndShopNameContainsAndOrderDateBetweenAndDeletedIsFalse(code: String?, shopName: String?, orderStartDate: LocalDateTime?, orderEndDate: LocalDateTime?) : List; + //SEARCH WITHOUT ORDER DATE + fun findAllByCodeContainsAndShopNameContainsAndStatusAndEstimatedArrivalDateBetweenAndDeletedIsFalse(code: String?, shopName: String?, status: DeliveryOrderStatus?, estArrStartDate: LocalDateTime?, estArrEndDate: LocalDateTime?) : List; + //SEARCH WITHOUT ORDER DATE + STATUS + fun findAllByCodeContainsAndShopNameContainsAndEstimatedArrivalDateBetweenAndDeletedIsFalse(code: String?, shopName: String?, estArrStartDate: LocalDateTime?, estArrEndDate: LocalDateTime?): List; + + //SEARCH WITHOUT DATE + STATUS fun findAllByCodeContainsAndShopNameContainsAndDeletedIsFalse(code: String?, shopName: String?) : List; + //SEARCH WITHOUT DATE fun findAllByCodeContainsAndShopNameContainsAndStatusAndDeletedIsFalse(code: String?, shopName: String?, staus: DeliveryOrderStatus?) : List; - fun findAllByCodeContainsAndShopNameContainsAndOrderDateBetweenAndDeletedIsFalse(code: String?, shopName: String?, startDate: LocalDateTime?, endDate: LocalDateTime?) : List; + } diff --git a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt index 7bf3a2f..a2f32c8 100644 --- a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt @@ -98,27 +98,40 @@ open class DeliveryOrderService( - open fun searchAll(code: String?, shopName: String?, status: DeliveryOrderStatus?, startDate: LocalDateTime?, endDate: LocalDateTime?):List { - return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndStatusAndOrderDateBetweenAndDeletedIsFalse(code, shopName, status, startDate, endDate); - } - open fun getFullList(): List{ return deliveryOrderRepository.findAllBy(); } - open fun searchCodeAndShopName(code: String?, shopName: String?) : List { - return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndDeletedIsFalse(code, shopName); + open fun searchAll(code: String?, shopName: String?, status: DeliveryOrderStatus?, orderStartDate: LocalDateTime?, orderEndDate: LocalDateTime?, estArrStartDate: LocalDateTime?, estArrEndDate: LocalDateTime?):List { + return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndStatusAndOrderDateBetweenAndEstimatedArrivalDateBetweenAndDeletedIsFalse(code, shopName, status, orderStartDate, orderEndDate, estArrStartDate, estArrEndDate); + } + open fun searchWithoutStatus(code: String?, shopName: String?, orderStartDate: LocalDateTime?, orderEndDate: LocalDateTime?, estArrStartDate: LocalDateTime?, estArrEndDate: LocalDateTime?) : List { + return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndOrderDateBetweenAndEstimatedArrivalDateBetweenAndDeletedIsFalse(code, shopName, orderStartDate, orderEndDate, estArrStartDate, estArrEndDate); + } + + open fun searchWithoutEstArrDate(code: String?, shopName: String?, status: DeliveryOrderStatus?, orderStartDate: LocalDateTime?, orderEndDate: LocalDateTime?): List{ + return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndStatusAndOrderDateBetweenAndDeletedIsFalse(code, shopName, status, orderStartDate, orderEndDate); + } + open fun searchWithoutEstArrDateAndStatus(code: String?, shopName: String?, orderStartDate: LocalDateTime?, orderEndDate: LocalDateTime?): List{ + return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndOrderDateBetweenAndDeletedIsFalse(code, shopName, orderStartDate, orderEndDate); + } + + open fun searchWithoutOrderDate(code: String?, shopName: String?, status: DeliveryOrderStatus?, estArrStartDate: LocalDateTime?, estArrEndDate: LocalDateTime?) : List{ + return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndStatusAndEstimatedArrivalDateBetweenAndDeletedIsFalse(code, shopName, status, estArrStartDate, estArrEndDate); + } + open fun searchWithoutOrderDateAndStatus(code: String?, shopName: String?, estArrStartDate: LocalDateTime?, estArrEndDate: LocalDateTime?) : List{ + return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndEstimatedArrivalDateBetweenAndDeletedIsFalse(code, shopName, estArrStartDate, estArrEndDate); } open fun searchWithoutDate(code: String?, shopName: String?, status: DeliveryOrderStatus?) : List { return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndStatusAndDeletedIsFalse(code, shopName, status); } - - open fun searchWithoutStatus(code: String?, shopName: String?, startDate: LocalDateTime?, endDate: LocalDateTime?) : List { - return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndOrderDateBetweenAndDeletedIsFalse(code, shopName, startDate, endDate); + open fun searchCodeAndShopName(code: String?, shopName: String?) : List { + return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndDeletedIsFalse(code, shopName); } + open fun updateDeliveryOrderStatus(request: SaveDeliveryOrderStatusRequest): SaveDeliveryOrderResponse { val deliveryOrder = checkNotNull( request.id?.let { deliveryOrderRepository.findById(it).getOrNull() } diff --git a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/web/DeliveryOrderController.kt b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/web/DeliveryOrderController.kt index de72726..acadef7 100644 --- a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/web/DeliveryOrderController.kt +++ b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/web/DeliveryOrderController.kt @@ -55,33 +55,58 @@ class DeliveryOrderController( return deliveryOrderService.searchBetweenOrderDate(start, end); } - @GetMapping("/search-DO/{code}&{shopName}&{status}&{startDate}&{endDate}") - fun searchDO(@PathVariable code: String?, @PathVariable shopName: String?, @PathVariable status: DeliveryOrderStatus?, @PathVariable startDate: LocalDateTime? , @PathVariable endDate: LocalDateTime?): List{ + @GetMapping("/search-DO/{code}&{shopName}&{status}&{orderStartDate}&{orderEndDate}&{estArrStartDate}&{estArrEndDate}") + fun searchDO(@PathVariable code: String?, @PathVariable shopName: String?, @PathVariable status: DeliveryOrderStatus?, @PathVariable orderStartDate: LocalDateTime? , @PathVariable orderEndDate: LocalDateTime?, @PathVariable estArrStartDate: LocalDateTime?, @PathVariable estArrEndDate: LocalDateTime?): List{ + println("test"); if(code != null || shopName != null){ - if(startDate!=null || endDate!=null){ - if(status!=null){ - //ALL - return deliveryOrderService.searchAll(code, shopName, status, startDate, endDate); + if(orderStartDate != null && orderEndDate != null && estArrStartDate != null && estArrEndDate != null){ + if (status != null){ + return deliveryOrderService.searchAll(code, shopName, status, orderStartDate, orderEndDate, estArrStartDate, estArrEndDate); } else{ - //WITHOUT STATUS - return deliveryOrderService.searchWithoutStatus(code, shopName, startDate, endDate); + return deliveryOrderService.searchWithoutStatus(code, shopName, orderStartDate, orderEndDate, estArrStartDate, estArrEndDate); } } - if(startDate==null && endDate==null){ - if(status!=null){ - //WITHOUT DATE (CODE + SHOPNAME + STATUS) - return deliveryOrderService.searchWithoutDate(code, shopName, status); + else{ + if(orderStartDate == null && orderEndDate == null && estArrStartDate == null && estArrEndDate == null){ + if(status != null){ + return deliveryOrderService.searchWithoutDate(code, shopName, status); + } + else{ + return deliveryOrderService.searchCodeAndShopName(code, shopName); + } } else{ - //WITHOUT DATE + STATUS (CODE + SHOPNAME) - return deliveryOrderService.searchCodeAndShopName(code, shopName); + if(estArrStartDate != null && estArrEndDate != null && (orderStartDate == null && orderEndDate == null)){ + if (status != null){ + return deliveryOrderService.searchWithoutOrderDate(code, shopName, status, estArrStartDate, estArrEndDate); + } + else{ + return deliveryOrderService.searchWithoutOrderDateAndStatus(code, shopName, estArrStartDate, estArrEndDate); + } + } + else if(orderStartDate != null && orderEndDate != null && (estArrStartDate == null && estArrEndDate == null)){ + if (status != null){ + return deliveryOrderService.searchAll(code, shopName, status, orderStartDate, orderEndDate, estArrStartDate, estArrEndDate); + } + else{ + return deliveryOrderService.searchWithoutStatus(code, shopName, orderStartDate, orderEndDate, estArrStartDate, estArrEndDate); + } + } + else{ + return emptyList(); + } } + } } - //INITIALIZATION return deliveryOrderService.getFullList(); + + + + + }