From 0128d6184e14c7eaab76a6d55f63e81bf80922a6 Mon Sep 17 00:00:00 2001 From: "kelvin.yau" Date: Tue, 9 Sep 2025 19:12:51 +0800 Subject: [PATCH] DO Update (filter) --- .../entity/DeliveryOrderRepository.kt | 8 ++++++ .../deliveryOrder/enums/DeliveryOrderEnum.kt | 2 +- .../service/DeliveryOrderService.kt | 22 ++++++++++++++++ .../web/DeliveryOrderController.kt | 26 ++++++++++++++++++- 4 files changed, 56 insertions(+), 2 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 8d34fd4..406a9e7 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 @@ -2,10 +2,12 @@ package com.ffii.fpsms.modules.deliveryOrder.entity import com.ffii.core.support.AbstractRepository import com.ffii.fpsms.modules.deliveryOrder.entity.models.DeliveryOrderInfo +import com.ffii.fpsms.modules.deliveryOrder.enums.DeliveryOrderStatus import com.ffii.fpsms.modules.master.entity.projections.SearchId import org.springframework.data.jpa.repository.Query import org.springframework.stereotype.Repository import java.io.Serializable +import java.time.LocalDateTime @Repository interface DeliveryOrderRepository : AbstractRepository { @@ -17,9 +19,15 @@ interface DeliveryOrderRepository : AbstractRepository { fun findAllByCodeAndDeletedIsFalse(code: String): List + fun findAllByShopNameAndDeletedIsFalse(shopName: String): List + fun findAllByStatusAndDeletedIsFalse(status: DeliveryOrderStatus): List + fun findByOrderDateBetweenAndDeletedIsFalse(start: LocalDateTime?, end: 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 findAllBy() : List; } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/enums/DeliveryOrderEnum.kt b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/enums/DeliveryOrderEnum.kt index 7c7f76f..3f919fb 100644 --- a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/enums/DeliveryOrderEnum.kt +++ b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/enums/DeliveryOrderEnum.kt @@ -3,5 +3,5 @@ package com.ffii.fpsms.modules.deliveryOrder.enums enum class DeliveryOrderStatus(val value: String) { PENDING("pending"), RECEIVING("receiving"), - COMPLETED("completed"); + COMPLETED("completed"), } \ No newline at end of file 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 498e99b..2f2c2d0 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 @@ -28,6 +28,8 @@ import com.ffii.fpsms.modules.pickOrder.service.PickOrderService import java.time.LocalDate import java.math.BigDecimal import com.ffii.fpsms.modules.master.web.models.MessageResponse +import java.time.LocalDateTime + @Service open class DeliveryOrderService( private val deliveryOrderRepository: DeliveryOrderRepository, @@ -82,6 +84,26 @@ open class DeliveryOrderService( return deliveryOrderRepository.findAllByCodeAndDeletedIsFalse(code); } + open fun searchByShopName(shopName: String) : List { + return deliveryOrderRepository.findAllByShopNameAndDeletedIsFalse(shopName); + } + + open fun searchByStatus(status: DeliveryOrderStatus): List { + return deliveryOrderRepository.findAllByStatusAndDeletedIsFalse(status); + } + + open fun searchBetweenOrderDate(start: LocalDateTime?, end: LocalDateTime?): List { + 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 updateDeliveryOrderStatus(request: SaveDeliveryOrderStatusRequest): SaveDeliveryOrderResponse { val deliveryOrder = checkNotNull( 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 427b5b7..102b3f0 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 @@ -18,6 +18,8 @@ import com.ffii.fpsms.modules.deliveryOrder.web.models.DoDetailResponse import com.ffii.fpsms.modules.deliveryOrder.web.models.ReleaseDoRequest import com.ffii.fpsms.modules.master.web.models.MessageResponse import jakarta.validation.Valid +import java.time.LocalDateTime + @RequestMapping("/do") @RestController class DeliveryOrderController( @@ -34,10 +36,32 @@ class DeliveryOrderController( } @GetMapping("/search-code/{code}") - fun searchByCode(@PathVariable code: String): List{ + fun searchByCode(@PathVariable code: String): List { return deliveryOrderService.searchByCode(code); } + @GetMapping("/search-shopname/{shopName}") + fun searchByShopName(@PathVariable shopName: String): List { + return deliveryOrderService.searchByShopName(shopName); + } + + @GetMapping("/search-status/{status}") + fun searchByStatus(@PathVariable status: DeliveryOrderStatus): List { + return deliveryOrderService.searchByStatus(status); + } + + @GetMapping("/search-orderdate/{start}&{end}") + fun searchBetweenOrderDate(@PathVariable start: LocalDateTime?,@PathVariable end: LocalDateTime?): List { + 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{ + return deliveryOrderService.searchDO(code, shopName, status, startDate, endDate); + } + + + @PostMapping("/update-status") fun updateDoStatus(@RequestBody request: SaveDeliveryOrderStatusRequest): SaveDeliveryOrderResponse { return deliveryOrderService.updateDeliveryOrderStatus(request);