|
|
|
@@ -72,6 +72,7 @@ import com.ffii.fpsms.modules.master.service.ItemUomService |
|
|
|
import com.ffii.fpsms.modules.master.web.models.ConvertUomByItemRequest |
|
|
|
import com.ffii.fpsms.modules.stock.service.StockInLineService |
|
|
|
import com.ffii.fpsms.modules.stock.web.model.SaveStockInLineRequest |
|
|
|
import com.ffii.fpsms.modules.master.print.A4PrintDriverRegistry |
|
|
|
@Service |
|
|
|
open class JobOrderService( |
|
|
|
val jobOrderRepository: JobOrderRepository, |
|
|
|
@@ -95,6 +96,7 @@ open class JobOrderService( |
|
|
|
val jobOrderBomMaterialRepository: JobOrderBomMaterialRepository, |
|
|
|
val bomMaterialRepository: BomMaterialRepository, |
|
|
|
val itemUomService: ItemUomService |
|
|
|
|
|
|
|
) { |
|
|
|
|
|
|
|
open fun allJobOrdersByPage(request: SearchJobOrderInfoRequest): RecordsRes<JobOrderInfo> { |
|
|
|
@@ -783,25 +785,10 @@ open class JobOrderService( |
|
|
|
|
|
|
|
val printQty = if (request.printQty == null || request.printQty <= 0) 1 else request.printQty |
|
|
|
|
|
|
|
// Auto-detect orientation and set duplex mode accordingly |
|
|
|
val duplexMode = if (CanonPrinterUtil.isLandscape(tempPdfFile)) { |
|
|
|
CanonPrinterUtil.DuplexMode.DUPLEX_SHORT_EDGE // Landscape: flip on short edge |
|
|
|
} else { |
|
|
|
CanonPrinterUtil.DuplexMode.DUPLEX_LONG_EDGE // Portrait: flip on long edge |
|
|
|
} |
|
|
|
|
|
|
|
println("DEBUG: PDF orientation detected - Landscape: ${CanonPrinterUtil.isLandscape(tempPdfFile)}, Duplex mode: $duplexMode") |
|
|
|
|
|
|
|
printer.ip?.let { ip -> |
|
|
|
printer.port?.let { port -> |
|
|
|
CanonPrinterUtil.printPdfToCanon( |
|
|
|
tempPdfFile, |
|
|
|
ip, |
|
|
|
port, |
|
|
|
printQty, |
|
|
|
duplexMode |
|
|
|
) |
|
|
|
} |
|
|
|
val port = printer.port ?: 9100 |
|
|
|
val driver = A4PrintDriverRegistry.getDriver(printer.brand) |
|
|
|
driver.print(tempPdfFile, ip, port, printQty) |
|
|
|
} |
|
|
|
} finally { |
|
|
|
//tempPdfFile.delete() |
|
|
|
|