diff --git a/src/main/java/com/ffii/fpsms/modules/productProcess/entity/ProductProcessLine.kt b/src/main/java/com/ffii/fpsms/modules/productProcess/entity/ProductProcessLine.kt index 0f054e3..127f108 100644 --- a/src/main/java/com/ffii/fpsms/modules/productProcess/entity/ProductProcessLine.kt +++ b/src/main/java/com/ffii/fpsms/modules/productProcess/entity/ProductProcessLine.kt @@ -88,7 +88,7 @@ open class ProductProcessLine : BaseEntity() { open var handler: User? = null @JsonBackReference @ManyToOne - @JoinColumn(name = "productprocessId", nullable = false) + @JoinColumn(name = "productprocessid", nullable = false) open var productProcess: ProductProcess = ProductProcess() data class ProductProcessLineDetail( val id: Long?, diff --git a/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt b/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt index 92f8580..b966d63 100644 --- a/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt +++ b/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt @@ -594,8 +594,10 @@ open class ProductProcessService( productProcessLineRepository.save(productProcessLine) } else - { - + { println("productProcessLine id${request.productProcessLineId}") + println("operator id${request?.operatorId}") + println("user ${user?.id}") + println("bomProcess ${bomProcess?.id}") println("not match equipment id${equipmentId} and ${bomProcessEquipment?.id}") } if(user != null) { @@ -661,12 +663,12 @@ open class ProductProcessService( byproductUom = productProcessLine.byproductUom?:"" ) } - open fun updateProductProcessLineStatus(productProcessLineId: Long): MessageResponse { + open fun updateProductProcessLineStatus(productProcessLineId: Long, status: String): MessageResponse { println("📋 Service: Updating ProductProcessLine Status: $productProcessLineId") val productProcessLine = productProcessLineRepository.findById(productProcessLineId).orElse(null) println("📋 Service: ProductProcessLine: $productProcessLine") - productProcessLine.status = "Completed" - productProcessLine.endTime = LocalDateTime.now() + productProcessLine.status = status + // productProcessLine.endTime = LocalDateTime.now() productProcessLineRepository.save(productProcessLine) println("📋 Service: ProductProcessLine Status Updated: ${productProcessLine.status}") CompleteProductProcessStatusIfAllLinesCompleted(productProcessLine.productProcess?.id?:0) @@ -686,6 +688,7 @@ open class ProductProcessService( val productProcess = productProcessRepository.findById(productProcessId).orElse(null) println("📋 Service: ProductProcess: $productProcess") val productProcessLines = productProcessLineRepository.findByProductProcess_Id(productProcessId) + println("📋 Service: ProductProcessLines: $productProcessLines") if(productProcessLines.all { it.status == "Completed" }) { productProcess.status = ProductProcessStatus.COMPLETED @@ -793,5 +796,113 @@ open fun updateProductProcessLineQty(request: UpdateProductProcessLineQtyRequest } } + open fun updateProductProcessLineStartTime(productProcessLineId: Long): MessageResponse { + val productProcessLine = productProcessLineRepository.findById(productProcessLineId).orElse(null) + productProcessLine.startTime = LocalDateTime.now() + productProcessLineRepository.save(productProcessLine) + return MessageResponse( + id = productProcessLineId, + code = "200", + name = "ProductProcessLine StartTime Updated", + type = "success", + message = "ProductProcessLine StartTime Updated", + errorPosition = null, + ) + } + open fun updateProductProcessLineEndTime(productProcessLineId: Long): MessageResponse { + val productProcessLine = productProcessLineRepository.findById(productProcessLineId).orElse(null) + productProcessLine.endTime = LocalDateTime.now() + productProcessLineRepository.save(productProcessLine) + return MessageResponse( + id = productProcessLineId, + code = "200", + name = "ProductProcessLine EndTime Updated", + type = "success", + message = "ProductProcessLine EndTime Updated", + errorPosition = null, + ) + } + open fun updateProductProcessStartTime(productProcessId: Long): MessageResponse { + val productProcess = productProcessRepository.findById(productProcessId).orElse(null) + productProcess.startTime = LocalDateTime.now() + productProcessRepository.save(productProcess) + return MessageResponse( + id = productProcessId, + code = "200", + name = "ProductProcessLine StartTime Updated", + type = "success", + message = "ProductProcessLine StartTime Updated", + errorPosition = null, + ) + } + open fun updateProductProcessEndTime(productProcessId: Long): MessageResponse { + val productProcess = productProcessRepository.findById(productProcessId).orElse(null) + productProcess.endTime = LocalDateTime.now() + productProcessRepository.save(productProcess) + return MessageResponse( + id = productProcessId, + code = "200", + name = "ProductProcess EndTime Updated", + type = "success", + message = "ProductProcess EndTime Updated", + errorPosition = null, + ) + } + open fun updateProductProcessStatus(productProcessId: Long, status: ProductProcessStatus): MessageResponse { + val productProcess = productProcessRepository.findById(productProcessId).orElse(null) + productProcess.status = status + productProcessRepository.save(productProcess) + return MessageResponse( + id = productProcessId, + code = "200", + name = "ProductProcess Status Updated", + type = "success", + message = "ProductProcess Status Updated", + errorPosition = null, + ) + } + open fun StartProductProcessLine(productProcessLineId: Long): MessageResponse { + updateProductProcessLineStartTime(productProcessLineId) + //updateProductProcessLineStatus(productProcessLineId, "InProgress") + val productProcessLine = productProcessLineRepository.findById(productProcessLineId).orElse(null) + val allproductProcessLines=productProcessLineRepository.findByProductProcess_Id(productProcessLine.productProcess?.id?:0L) + if(allproductProcessLines.all { it.status == "Pending" }) { + updateProductProcessLineStatus(productProcessLineId, "InProgress") + updateProductProcessStartTime(productProcessLine.productProcess.id) + updateProductProcessStatus(productProcessLine.productProcess.id, ProductProcessStatus.IN_PROGRESS) + } + else{ + updateProductProcessLineStatus(productProcessLineId, "InProgress") + println("📋 Service: ProductProcess Lines are not Pending") + println("📋 Service: ProductProcess Lines: ${allproductProcessLines.map { it.status }}") + println("📋 Service: ProductProcess Line: ${productProcessLine.status}") + } + return MessageResponse( + id = productProcessLine.id, + code = "200", + name = "ProductProcess StartTime Updated", + type = "success", + message = "ProductProcess StartTime Updated", + errorPosition = null, + ) + } + open fun CompleteProductProcessLine(productProcessLineId: Long): MessageResponse { + updateProductProcessLineEndTime(productProcessLineId) + updateProductProcessLineStatus(productProcessLineId, "Completed") + val productProcessLine = productProcessLineRepository.findById(productProcessLineId).orElse(null) + val allproductProcessLines=productProcessLineRepository.findByProductProcess_Id(productProcessLine.productProcess?.id?:0L) + if(allproductProcessLines.all { it.status == "Completed" }) { + updateProductProcessEndTime(productProcessLine.id) + updateProductProcessStatus(productProcessLine.id, ProductProcessStatus.COMPLETED) + } + return MessageResponse( + id = productProcessLine.id, + code = "200", + name = "ProductProcess StartTime Updated", + type = "success", + message = "ProductProcess StartTime Updated", + errorPosition = null, + ) + } } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt b/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt index 163905b..0211ffd 100644 --- a/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt +++ b/src/main/java/com/ffii/fpsms/modules/productProcess/web/ProductProcessController.kt @@ -171,9 +171,9 @@ class ProductProcessController( fun demoupdatehandler(@RequestBody request: UpdateProductProcessLineHandlerIdRequest): MessageResponse { return productProcessService.UpdateProductProcessLineHandlerId(request) } - @PostMapping("/Demo/ProcessLine/update/status/{lineId}") - fun demoupdatestatus(@PathVariable lineId: Long): MessageResponse { - return productProcessService.updateProductProcessLineStatus(lineId) + @PostMapping("/Demo/ProcessLine/update/status") + fun demoupdatestatus(@RequestBody request: UpdateProductProcessLineStatusRequest): MessageResponse { + return productProcessService.updateProductProcessLineStatus(request.productProcessLineId, request.status) } @GetMapping("/Demo/ProcessLine/detail/{lineId}") fun demoprocesslinedetail(@PathVariable lineId: Long): JobOrderProcessLineDetailResponse { @@ -188,5 +188,12 @@ class ProductProcessController( fun demoprocessall(): List { return productProcessService.getAllJoborderProductProcessInfo() } - + @PostMapping("/Demo/ProcessLine/start/{lineId}") + fun startProductProcessLine(@PathVariable lineId: Long): MessageResponse { + return productProcessService.StartProductProcessLine(lineId) + } + @PostMapping("/Demo/ProcessLine/complete/{lineId}") + fun completeProductProcessLine(@PathVariable lineId: Long): MessageResponse { + return productProcessService.CompleteProductProcessLine(lineId) + } } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt b/src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt index 84c0a52..998e85b 100644 --- a/src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt +++ b/src/main/java/com/ffii/fpsms/modules/productProcess/web/model/SaveProductProcessRequest.kt @@ -160,4 +160,8 @@ data class ProductProcessInfoResponse( val endTime: LocalDateTime?, val status: String, +) +data class UpdateProductProcessLineStatusRequest( + val productProcessLineId: Long, + val status: String ) \ No newline at end of file