|
|
@@ -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) |
|
|
|
} |
|
|
|
|
|
|
|