diff --git a/src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt b/src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt index 5da2114..74e7768 100644 --- a/src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt +++ b/src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt @@ -64,11 +64,11 @@ class M18TestController ( return schedulerService.getM18Pos(); } // --------------------------------------------- Scheduler --------------------------------------------- /// - @GetMapping("/schedule/po") // - fun schedulePo(@RequestParam @Valid newCron: String) { - settingsService.update(SettingNames.SCHEDULE_M18_PO, newCron); - schedulerService.scheduleM18PoTask() - } +// @GetMapping("/schedule/po") +// fun schedulePo(@RequestParam @Valid newCron: String) { +// settingsService.update(SettingNames.SCHEDULE_M18_PO, newCron); +// schedulerService.scheduleM18PoTask() +// } // --------------------------------------------- Master Data --------------------------------------------- /// @GetMapping("/all") diff --git a/src/main/java/com/ffii/fpsms/modules/common/scheduler/web/SchedulerController.kt b/src/main/java/com/ffii/fpsms/modules/common/scheduler/web/SchedulerController.kt new file mode 100644 index 0000000..54d0ff8 --- /dev/null +++ b/src/main/java/com/ffii/fpsms/modules/common/scheduler/web/SchedulerController.kt @@ -0,0 +1,30 @@ +package com.ffii.fpsms.modules.common.scheduler.web + +import com.ffii.fpsms.modules.common.SettingNames +import com.ffii.fpsms.modules.common.scheduler.service.SchedulerService +import com.ffii.fpsms.modules.settings.service.SettingsService +import jakarta.validation.Valid +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RequestParam +import org.springframework.web.bind.annotation.RestController + +@RestController +@RequestMapping("/scheduler") +class SchedulerController( + val schedulerService: SchedulerService, + val settingsService: SettingsService +) { + @GetMapping("/testDetailedProd") + fun testDetailedProd(): Any { + schedulerService.getDetailedProdSchedule() + return 200 + } + + // Cron Settings + @GetMapping("/updateSetting/poCron") + fun schedulePo(@RequestParam @Valid newCron: String) { + settingsService.update(SettingNames.SCHEDULE_M18_PO, newCron); + schedulerService.scheduleM18PoTask() + } +} \ No newline at end of file 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); diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderBomMaterialService.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderBomMaterialService.kt index 9265e68..ed1294b 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderBomMaterialService.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderBomMaterialService.kt @@ -24,7 +24,7 @@ open class JobOrderBomMaterialService( open fun createJobOrderBomMaterialRequests(joId: Long): List { val zero = BigDecimal.ZERO val jo = jobOrderRepository.findById(joId).getOrNull() ?: throw NoSuchElementException() - val proportion = (jo.reqQty ?: zero).divide(jo.bom?.outputQty ?: BigDecimal.ONE, 5, RoundingMode.HALF_UP) + val proportion = BigDecimal.ONE //(jo.reqQty ?: zero).divide(jo.bom?.outputQty ?: BigDecimal.ONE, 5, RoundingMode.HALF_UP) val jobmRequests = jo.bom?.bomMaterials?.map { bm -> val salesUnit = bm.item?.id?.let { itemUomService.findSalesUnitByItemId(it) } diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleLineRepository.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleLineRepository.kt index e87758d..018878b 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleLineRepository.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleLineRepository.kt @@ -14,7 +14,8 @@ interface ProductionScheduleLineRepository : AbstractRepository itemUomService.findSalesUnitByItemId(_itemId) } - val ratio = BigDecimal.ONE + val ratio = BigDecimal.ONE //(salesUnit?.ratioN ?: zero).divide(salesUnit?.ratioD ?: one) val remainingQty = (inventoryLotLine?.inQty ?: zero) .minus(inventoryLotLine?.outQty ?: zero) diff --git a/src/main/java/com/ffii/fpsms/modules/stock/entity/projection/StockInLineInfo.kt b/src/main/java/com/ffii/fpsms/modules/stock/entity/projection/StockInLineInfo.kt index 58ff0f4..40c6205 100644 --- a/src/main/java/com/ffii/fpsms/modules/stock/entity/projection/StockInLineInfo.kt +++ b/src/main/java/com/ffii/fpsms/modules/stock/entity/projection/StockInLineInfo.kt @@ -65,4 +65,8 @@ interface PutAwayLineForSil { val warehouseCode: String?; @get:Value("#{target.warehouse?.name}") val warehouseName: String?; + @get:Value("#{target.created}") + val putawayDate: LocalDateTime?; + @get:Value("#{target.createdBy}") + val putawayUser: String?; } \ No newline at end of file