| @@ -4,6 +4,7 @@ import com.ffii.core.response.RecordsRes | |||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import com.ffii.core.utils.CriteriaArgsBuilder | import com.ffii.core.utils.CriteriaArgsBuilder | ||||
| import com.ffii.core.utils.PagingUtils | import com.ffii.core.utils.PagingUtils | ||||
| import com.ffii.core.utils.ZebraPrinterUtil | |||||
| import com.ffii.fpsms.modules.master.entity.Items | import com.ffii.fpsms.modules.master.entity.Items | ||||
| import com.ffii.fpsms.modules.master.service.ItemsService | import com.ffii.fpsms.modules.master.service.ItemsService | ||||
| import com.ffii.fpsms.modules.master.web.models.MessageResponse | import com.ffii.fpsms.modules.master.web.models.MessageResponse | ||||
| @@ -12,16 +13,22 @@ import com.ffii.fpsms.modules.purchaseOrder.entity.projections.PurchaseOrderData | |||||
| import com.ffii.fpsms.modules.purchaseOrder.entity.projections.PurchaseOrderInfo | import com.ffii.fpsms.modules.purchaseOrder.entity.projections.PurchaseOrderInfo | ||||
| import com.ffii.fpsms.modules.purchaseOrder.service.PurchaseOrderService | import com.ffii.fpsms.modules.purchaseOrder.service.PurchaseOrderService | ||||
| import com.ffii.fpsms.modules.purchaseOrder.web.model.PagingRequest | import com.ffii.fpsms.modules.purchaseOrder.web.model.PagingRequest | ||||
| import com.ffii.fpsms.modules.stock.service.StockInLineService | |||||
| import com.ffii.fpsms.modules.stock.web.model.ExportQrCodeRequest | |||||
| import com.ffii.fpsms.modules.stock.web.model.SaveStockInLineRequest | import com.ffii.fpsms.modules.stock.web.model.SaveStockInLineRequest | ||||
| import jakarta.servlet.http.HttpServletRequest | import jakarta.servlet.http.HttpServletRequest | ||||
| import net.sf.jasperreports.engine.JasperExportManager | |||||
| import net.sf.jasperreports.engine.JasperPrint | |||||
| import org.springframework.data.domain.Page | import org.springframework.data.domain.Page | ||||
| import org.springframework.data.domain.PageRequest | import org.springframework.data.domain.PageRequest | ||||
| import org.springframework.web.bind.annotation.* | import org.springframework.web.bind.annotation.* | ||||
| import java.io.File | |||||
| @RestController | @RestController | ||||
| @RequestMapping("/po") | @RequestMapping("/po") | ||||
| class PurchaseOrderController( | class PurchaseOrderController( | ||||
| private val purchaseOrderService: PurchaseOrderService | |||||
| private val purchaseOrderService: PurchaseOrderService, | |||||
| private val stockInLineService: StockInLineService | |||||
| ) { | ) { | ||||
| @GetMapping("/list") | @GetMapping("/list") | ||||
| fun getPoList( | fun getPoList( | ||||
| @@ -46,9 +53,11 @@ class PurchaseOrderController( | |||||
| val fullList = purchaseOrderService.getPoList(criteriaArgs) | val fullList = purchaseOrderService.getPoList(criteriaArgs) | ||||
| val paginatedList = PagingUtils.getPaginatedList(fullList,pageSize, pageNum) | val paginatedList = PagingUtils.getPaginatedList(fullList,pageSize, pageNum) | ||||
| return RecordsRes(paginatedList, fullList.size) | return RecordsRes(paginatedList, fullList.size) | ||||
| } | } | ||||
| @GetMapping("/testing") | @GetMapping("/testing") | ||||
| fun testing(request: HttpServletRequest) { | fun testing(request: HttpServletRequest) { | ||||
| val criteriaArgs = CriteriaArgsBuilder.withRequest(request) | val criteriaArgs = CriteriaArgsBuilder.withRequest(request) | ||||
| @@ -62,6 +71,32 @@ class PurchaseOrderController( | |||||
| @GetMapping("/detail/{id}") // purchaseOrderId | @GetMapping("/detail/{id}") // purchaseOrderId | ||||
| fun getDetailedPo(@PathVariable id: Long): Map<String, Any> { | fun getDetailedPo(@PathVariable id: Long): Map<String, Any> { | ||||
| /* tested the sample printing function by a pdf file | |||||
| // just get a pdf file for demo , it can be any files? didn't try pdf with pages or multi pdf files | |||||
| val request = ExportQrCodeRequest( | |||||
| stockInLineIds = listOf(1L) | |||||
| ) | |||||
| val pdf = stockInLineService.exportStockInLineQrcode(request) | |||||
| val jasperPrint = pdf["report"] as JasperPrint | |||||
| // 1. Create a temporary file to save the PDF. | |||||
| val tempPdfFile = File.createTempFile("print_job_", ".pdf") | |||||
| try { | |||||
| // 2. Export the JasperPrint to the temporary PDF file. | |||||
| JasperExportManager.exportReportToPdfFile(jasperPrint, tempPdfFile.absolutePath) | |||||
| // 3. Call the utility function with the temporary file. | |||||
| ZebraPrinterUtil.printPdfToZebra(tempPdfFile, "192.168.245.16", 9100) | |||||
| } finally { | |||||
| // 4. Ensure the temporary file is deleted after the print job is sent. | |||||
| tempPdfFile.delete() | |||||
| } | |||||
| */ | |||||
| return purchaseOrderService.getDetailedPo(id) | return purchaseOrderService.getDetailedPo(id) | ||||
| } | } | ||||