| @@ -4,6 +4,7 @@ import com.ffii.core.response.RecordsRes | |||
| import com.ffii.core.support.JdbcDao | |||
| import com.ffii.core.utils.CriteriaArgsBuilder | |||
| 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.service.ItemsService | |||
| 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.service.PurchaseOrderService | |||
| 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 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.PageRequest | |||
| import org.springframework.web.bind.annotation.* | |||
| import java.io.File | |||
| @RestController | |||
| @RequestMapping("/po") | |||
| class PurchaseOrderController( | |||
| private val purchaseOrderService: PurchaseOrderService | |||
| private val purchaseOrderService: PurchaseOrderService, | |||
| private val stockInLineService: StockInLineService | |||
| ) { | |||
| @GetMapping("/list") | |||
| fun getPoList( | |||
| @@ -46,9 +53,11 @@ class PurchaseOrderController( | |||
| val fullList = purchaseOrderService.getPoList(criteriaArgs) | |||
| val paginatedList = PagingUtils.getPaginatedList(fullList,pageSize, pageNum) | |||
| return RecordsRes(paginatedList, fullList.size) | |||
| } | |||
| @GetMapping("/testing") | |||
| fun testing(request: HttpServletRequest) { | |||
| val criteriaArgs = CriteriaArgsBuilder.withRequest(request) | |||
| @@ -62,6 +71,32 @@ class PurchaseOrderController( | |||
| @GetMapping("/detail/{id}") // purchaseOrderId | |||
| 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) | |||
| } | |||