From 90ec2750f843caa9439cc6ac9bdced853c89d320 Mon Sep 17 00:00:00 2001 From: "kelvin.yau" Date: Wed, 1 Oct 2025 22:11:57 +0800 Subject: [PATCH] Print Pick Record --- .../service/DeliveryOrderService.kt | 2 +- .../jobOrder/service/JobOrderService.kt | 26 +++++++++++++++++-- .../jobOrder/web/JobOrderController.kt | 7 +++++ .../web/model/PrintPickRecordRequest.kt | 7 +++-- 4 files changed, 37 insertions(+), 5 deletions(-) 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 53058b5..3d8f86f 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 @@ -696,7 +696,7 @@ open class DeliveryOrderService( //Print Delivery Note @Transactional open fun printDeliveryNote(request: PrintDeliveryNoteRequest){ - val printer = printerService.findById(request.printerId) ?: throw java.util.NoSuchElementException("No such printer") + //val printer = printerService.findById(request.printerId) ?: throw java.util.NoSuchElementException("No such printer") val pdf = exportDeliveryNote( ExportDeliveryNoteRequest( diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt index e6194e0..e3ecb80 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt @@ -34,6 +34,7 @@ import kotlin.jvm.optionals.getOrNull import com.ffii.fpsms.modules.jobOrder.service.JoPickOrderService import com.ffii.fpsms.modules.jobOrder.web.model.ExportPickRecordRequest import com.ffii.fpsms.modules.jobOrder.web.model.PrintPickRecordRequest +import com.ffii.fpsms.modules.master.service.PrinterService import com.ffii.fpsms.modules.pickOrder.entity.PickOrderRepository import com.ffii.fpsms.modules.pickOrder.entity.PickOrderLineRepository import com.ffii.fpsms.modules.stock.service.SuggestedPickLotService @@ -46,7 +47,10 @@ import com.ffii.fpsms.modules.stock.web.model.StockOutStatus import com.ffii.fpsms.modules.stock.web.model.StockOutLineStatus import com.ffii.fpsms.modules.stock.web.model.SuggestedPickLotForPolRequest import net.sf.jasperreports.engine.JasperCompileManager +import net.sf.jasperreports.engine.JasperExportManager +import net.sf.jasperreports.engine.JasperPrint import org.springframework.core.io.ClassPathResource +import java.io.File import java.io.FileNotFoundException import java.io.IOException @@ -65,6 +69,7 @@ open class JobOrderService( val inventoryLotLineRepository: InventoryLotLineRepository, val stockOutRepository: StockOutRepository, val stockOutLineRepository: StockOutLIneRepository, + private val printerService: PrinterService, ) { @@ -370,15 +375,32 @@ open class JobOrderService( params["unit"] = pickRecordInfo.firstOrNull()?.get("uomConversionDesc") as? String ?: "N/A" - + val pickOrderCode = pickRecordInfo.firstOrNull()?.get("pickOrderCode") as? String ?: "unknown" return mapOf( "report" to PdfUtils.fillReport(pickRecord, fields, params), - "filename" to "123" + "filename" to pickOrderCode ) } @Transactional open fun printPickRecord(request: PrintPickRecordRequest){ + //val printer = printerService.findById(request.printerId) ?: throw java.util.NoSuchElementException("No such printer") + + val pdf = exportPickRecord( + ExportPickRecordRequest( + pickOrderIds = request.pickOrderId + ) + ) + val jasperPrint = pdf["report"] as JasperPrint + + val tempPdfFile = File.createTempFile("print_job_",".pdf") + + try{ + JasperExportManager.exportReportToPdfFile(jasperPrint,tempPdfFile.absolutePath) + + } finally { + //tempPdfFile.delete*9 + } } } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt index 593144a..24422ee 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt @@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController import com.ffii.fpsms.modules.jobOrder.service.JoPickOrderService import com.ffii.fpsms.modules.jobOrder.web.model.ExportPickRecordRequest +import com.ffii.fpsms.modules.jobOrder.web.model.PrintPickRecordRequest import com.ffii.fpsms.modules.jobOrder.web.model.SecondScanSubmitRequest import com.ffii.fpsms.modules.jobOrder.web.model.SecondScanIssueRequest import jakarta.servlet.http.HttpServletResponse @@ -170,6 +171,12 @@ class JobOrderController( response.addHeader("filename", "${pdf["filename"]}.pdf") out.write(JasperExportManager.exportReportToPdf(jasperPrint)) } + + @GetMapping("/print-PickRecord") + fun printPickRecord(@ModelAttribute request: PrintPickRecordRequest){ + jobOrderService.printPickRecord(request) + } + @GetMapping("/completed-job-order-pick-orders-only/{userId}") fun getCompletedJobOrderPickOrders(@PathVariable userId: Long): List> { return joPickOrderService.getCompletedJobOrderPickOrders(userId) diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/PrintPickRecordRequest.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/PrintPickRecordRequest.kt index 1656d77..a018106 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/PrintPickRecordRequest.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/PrintPickRecordRequest.kt @@ -1,4 +1,7 @@ package com.ffii.fpsms.modules.jobOrder.web.model -class PrintPickRecordRequest { -} \ No newline at end of file +data class PrintPickRecordRequest( + val pickOrderId: Long, + val printerId: Long, + val printQty: Int? +) \ No newline at end of file