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 406a9e7..f9012af 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 @@ -17,17 +17,23 @@ interface DeliveryOrderRepository : AbstractRepository { fun findByIdAndDeletedIsFalse(id: Serializable): DeliveryOrder? - fun findAllByCodeAndDeletedIsFalse(code: String): List + fun findAllByCodeContainsAndDeletedIsFalse(code: String?): List - fun findAllByShopNameAndDeletedIsFalse(shopName: String): List + fun findAllByShopNameContainsAndDeletedIsFalse(shopName: String?): List - fun findAllByStatusAndDeletedIsFalse(status: DeliveryOrderStatus): List + fun findAllByStatusAndDeletedIsFalse(status: DeliveryOrderStatus?): List - fun findByOrderDateBetweenAndDeletedIsFalse(start: LocalDateTime?, end: LocalDateTime?) : List + fun findByOrderDateBetweenAndDeletedIsFalse(startDate: LocalDateTime?, endDate: LocalDateTime?) : List - fun findAllByCodeContainsAndShopNameContainsAndStatusAndOrderDateBetween(code: String?, shopName: String?, status: DeliveryOrderStatus?, startDate: LocalDateTime?, endDate: LocalDateTime?) : List - fun findAllByCodeContainsAndShopNameContainsAndStatus(code: String?, shopName: String?, status: DeliveryOrderStatus?): List; + + fun findAllByCodeContainsAndShopNameContainsAndStatusAndOrderDateBetweenAndDeletedIsFalse(code: String?, shopName: String?, status: DeliveryOrderStatus?, startDate: LocalDateTime?, endDate: LocalDateTime?) : List; fun findAllBy() : List; -} \ No newline at end of file + + fun findAllByCodeContainsAndShopNameContainsAndDeletedIsFalse(code: String?, shopName: String?) : List; + + 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 2f2c2d0..7bf3a2f 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 @@ -80,12 +80,12 @@ open class DeliveryOrderService( } ) } - open fun searchByCode(code: String) : List { - return deliveryOrderRepository.findAllByCodeAndDeletedIsFalse(code); + open fun searchByCode(code: String?) : List { + return deliveryOrderRepository.findAllByCodeContainsAndDeletedIsFalse(code); } open fun searchByShopName(shopName: String) : List { - return deliveryOrderRepository.findAllByShopNameAndDeletedIsFalse(shopName); + return deliveryOrderRepository.findAllByShopNameContainsAndDeletedIsFalse(shopName); } open fun searchByStatus(status: DeliveryOrderStatus): List { @@ -96,13 +96,27 @@ open class DeliveryOrderService( return deliveryOrderRepository.findByOrderDateBetweenAndDeletedIsFalse(start, end); } - open fun searchDO(code: String?, shopName: String?, status: DeliveryOrderStatus?, startDate: LocalDateTime?, endDate: LocalDateTime?):List { - if(status == null || startDate == null || endDate ==null){ - return deliveryOrderRepository.findAllBy(); - } - return deliveryOrderRepository.findAllByCodeContainsAndShopNameContainsAndStatusAndOrderDateBetween(code, shopName, status, startDate, endDate); + + + 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 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 updateDeliveryOrderStatus(request: SaveDeliveryOrderStatusRequest): SaveDeliveryOrderResponse { 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 102b3f0..de72726 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 @@ -57,11 +57,36 @@ class DeliveryOrderController( @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{ - return deliveryOrderService.searchDO(code, shopName, status, startDate, endDate); + if(code != null || shopName != null){ + if(startDate!=null || endDate!=null){ + if(status!=null){ + //ALL + return deliveryOrderService.searchAll(code, shopName, status, startDate, endDate); + } + else{ + //WITHOUT STATUS + return deliveryOrderService.searchWithoutStatus(code, shopName, startDate, endDate); + } + } + + if(startDate==null && endDate==null){ + if(status!=null){ + //WITHOUT DATE (CODE + SHOPNAME + STATUS) + return deliveryOrderService.searchWithoutDate(code, shopName, status); + } + else{ + //WITHOUT DATE + STATUS (CODE + SHOPNAME) + return deliveryOrderService.searchCodeAndShopName(code, shopName); + } + } + } + //INITIALIZATION + return deliveryOrderService.getFullList(); } + @PostMapping("/update-status") fun updateDoStatus(@RequestBody request: SaveDeliveryOrderStatusRequest): SaveDeliveryOrderResponse { return deliveryOrderService.updateDeliveryOrderStatus(request);