| @@ -1,12 +1,20 @@ | |||
| package com.ffii.fpsms.modules.deliveryOrder.entity | |||
| import org.springframework.data.jpa.repository.JpaRepository | |||
| import org.springframework.data.jpa.repository.Query | |||
| import org.springframework.data.repository.query.Param | |||
| import org.springframework.stereotype.Repository | |||
| import java.time.LocalDate | |||
| @Repository | |||
| interface DoPickOrderLineRecordRepository : JpaRepository<DoPickOrderLineRecord, Long> { | |||
| fun findByDoPickOrderIdAndDeletedFalse(doPickOrderId: Long): List<DoPickOrderLineRecord> | |||
| fun findByDoOrderIdAndDeletedFalse(doOrderId: Long): List<DoPickOrderLineRecord> | |||
| fun findByDoPickOrderIdInAndDeletedFalse(doPickOrderIds: Collection<Long>): List<DoPickOrderLineRecord> | |||
| fun findByDoPickOrderId(recordId: Long?): List<DoPickOrderLineRecord> | |||
| @Query("SELECT d FROM DoPickOrderLineRecord d WHERE d.recordId = :recordId AND d.deleted = false") | |||
| fun findByRecordIdAndDeletedFalse(@Param("recordId") recordId: Long): List<DoPickOrderLineRecord> | |||
| } | |||
| @@ -7,6 +7,7 @@ import com.ffii.fpsms.modules.deliveryOrder.enums.DoPickOrderStatus | |||
| import com.ffii.fpsms.modules.master.entity.projections.SearchId | |||
| import org.springframework.data.jpa.repository.JpaRepository | |||
| import org.springframework.data.jpa.repository.Query | |||
| import org.springframework.data.repository.query.Param | |||
| import org.springframework.stereotype.Repository | |||
| import java.io.Serializable | |||
| import java.time.LocalDateTime | |||
| @@ -26,4 +27,13 @@ interface DoPickOrderRecordRepository : JpaRepository<DoPickOrderRecord, Long> { | |||
| fun findByStoreIdAndRequiredDeliveryDateAndTicketStatusIn(storeId: String, requiredDeliveryDate: LocalDate, ticketStatus: List<DoPickOrderStatus>): List<DoPickOrderRecord> | |||
| fun findByHandledByAndTicketStatusAndDeletedFalse(handledBy: Long, ticketStatus: DoPickOrderStatus): List<DoPickOrderRecord> | |||
| @Query("SELECT d FROM DoPickOrderRecord d WHERE d.deleted = false ORDER BY d.ticketReleaseTime DESC NULLS LAST") | |||
| fun findAllByDeletedFalseOrderByTicketReleaseTimeDesc(): List<DoPickOrderRecord> | |||
| @Query("SELECT d FROM DoPickOrderRecord d WHERE d.deleted = false AND d.requiredDeliveryDate BETWEEN :startDate AND :endDate ORDER BY d.ticketReleaseTime DESC NULLS LAST") | |||
| fun findAllByDeletedFalseAndRequiredDeliveryDateBetween( | |||
| @Param("startDate") startDate: LocalDate, | |||
| @Param("endDate") endDate: LocalDate | |||
| ): List<DoPickOrderRecord> | |||
| } | |||
| @@ -34,21 +34,10 @@ fun findByStoreIdAndRequiredDeliveryDateAndTicketStatusIn( | |||
| @Query("SELECT d FROM DoPickOrder d WHERE d.deleted = false ORDER BY d.requiredDeliveryDate ASC, d.truckDepartureTime ASC") | |||
| fun findAllByDeletedFalseOrderByTicketReleaseTimeDesc(): List<DoPickOrder> | |||
| @Query(""" | |||
| SELECT COUNT(DISTINCT pol.id) | |||
| FROM PickOrderLine pol | |||
| WHERE pol.pickOrder.id IN ( | |||
| SELECT DISTINCT dpol2.pickOrderId | |||
| FROM DoPickOrderLine dpol2 | |||
| WHERE dpol2.doPickOrderId IN ( | |||
| SELECT DISTINCT dpol1.doPickOrderId | |||
| FROM DoPickOrderLine dpol1 | |||
| WHERE dpol1.pickOrderId = :pickOrderId | |||
| AND dpol1.deleted = false | |||
| ) | |||
| AND dpol2.deleted = false | |||
| ) | |||
| AND pol.deleted = false | |||
| """) | |||
| fun countPickOrderLinesByRelatedPickOrderId(@Param("pickOrderId") pickOrderId: Long): Long | |||
| @Query("SELECT d FROM DoPickOrder d WHERE d.deleted = false AND d.requiredDeliveryDate BETWEEN :startDate AND :endDate ORDER BY d.ticketReleaseTime DESC NULLS LAST") | |||
| fun findAllByDeletedFalseAndRequiredDeliveryDateBetween( | |||
| @Param("startDate") startDate: LocalDate, | |||
| @Param("endDate") endDate: LocalDate | |||
| ): List<DoPickOrder> | |||
| } | |||
| @@ -60,7 +60,6 @@ import java.io.FileNotFoundException | |||
| import com.ffii.core.support.JdbcDao; | |||
| import com.ffii.fpsms.modules.deliveryOrder.entity.DoPickOrderLineRecordRepository | |||
| import com.ffii.fpsms.modules.deliveryOrder.entity.DoPickOrderLineRepository | |||
| import com.ffii.fpsms.modules.deliveryOrder.entity.DoPickOrderRecord | |||
| import com.ffii.fpsms.modules.deliveryOrder.entity.DoPickOrderRecordRepository | |||
| import com.ffii.fpsms.modules.deliveryOrder.entity.DoPickOrderRepository | |||
| import com.ffii.fpsms.modules.deliveryOrder.web.models.ExportDNLabelsRequest | |||
| @@ -68,15 +67,11 @@ import com.ffii.fpsms.modules.deliveryOrder.web.models.PrintDNLabelsRequest | |||
| import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderRepository | |||
| import com.ffii.fpsms.modules.stock.entity.InventoryLotRepository | |||
| import com.ffii.fpsms.modules.stock.service.InventoryLotService | |||
| import net.sf.jasperreports.engine.JasperPrintManager | |||
| import net.sf.jasperreports.engine.JRPrintPage | |||
| import com.ffii.fpsms.modules.stock.entity.SuggestPickLotRepository | |||
| import com.ffii.fpsms.modules.stock.service.SuggestedPickLotService // 添加这行 | |||
| import com.ffii.fpsms.modules.deliveryOrder.web.models.* | |||
| import com.ffii.fpsms.modules.pickOrder.entity.PickExecutionIssue // 添加 | |||
| import com.ffii.fpsms.modules.pickOrder.entity.PickExecutionIssueRepository // 添加 | |||
| import com.ffii.fpsms.modules.pickOrder.entity.IssueCategory // 添加 | |||
| import com.ffii.fpsms.modules.pickOrder.entity.HandleStatus | |||
| @Service | |||
| open class DeliveryOrderService( | |||
| private val deliveryOrderRepository: DeliveryOrderRepository, | |||
| @@ -818,7 +813,7 @@ open class DeliveryOrderService( | |||
| NoSuchElementException("DoPickOrderRecord not found with ID: ${request.doPickOrderId}") | |||
| } | |||
| val doPickOrderLineRecords = doPickOrderLineRecordRepository.findByDoPickOrderIdAndDeletedFalse(request.doPickOrderId) | |||
| val doPickOrderLineRecords = doPickOrderLineRecordRepository.findByDoPickOrderId(doPickOrderRecord.recordId) | |||
| val pickOrderIds = doPickOrderLineRecords.mapNotNull { it.pickOrderId }.distinct() | |||
| if(pickOrderIds.isEmpty()){ | |||
| @@ -974,7 +969,8 @@ open class DeliveryOrderService( | |||
| val doPickOrderRecord = doPickOrderRecordRepository.findById(request.doPickOrderId).orElseThrow { | |||
| NoSuchElementException("DoPickOrderRecord not found with ID: ${request.doPickOrderId}") | |||
| } | |||
| val doPickOrderLineRecords = doPickOrderLineRecordRepository.findByDoPickOrderIdAndDeletedFalse(request.doPickOrderId) | |||
| val doPickOrderLineRecords = doPickOrderLineRecordRepository.findByDoPickOrderId(doPickOrderRecord.recordId) | |||
| val deliveryOrderIds = doPickOrderLineRecords.mapNotNull { it.doOrderId }.distinct() | |||
| if(deliveryOrderIds.isEmpty()){ | |||
| @@ -998,7 +994,11 @@ open class DeliveryOrderService( | |||
| } | |||
| params["shopPurchaseOrderNo"] = doPickOrderRecord.deliveryOrderCode ?: cartonLabelInfo[0].code | |||
| params["shopPurchaseOrderNo"] = if (deliveryOrderIds.size > 0) { | |||
| "請查閲送貨單(採購單共${deliveryOrderIds.size}張)" | |||
| } else { | |||
| doPickOrderRecord.deliveryOrderCode ?: cartonLabelInfo[0].code | |||
| } | |||
| params["deliveryNoteCode"] = doPickOrderRecord.deliveryNoteCode ?: "" | |||
| params["shopAddress"] = cartonLabelInfo[0].shopAddress ?: "" | |||
| params["shopName"] = doPickOrderRecord.shopName ?: cartonLabelInfo[0].shopName ?: "" | |||
| @@ -46,6 +46,9 @@ import com.ffii.fpsms.modules.deliveryOrder.entity.DeliveryOrderRepository | |||
| import com.ffii.fpsms.modules.deliveryOrder.entity.DoPickOrderLineRecordRepository | |||
| import com.ffii.fpsms.modules.deliveryOrder.entity.DoPickOrderLineRecord | |||
| import org.springframework.context.annotation.Lazy | |||
| import com.ffii.fpsms.modules.pickOrder.entity.PickOrderLineRepository | |||
| import com.ffii.fpsms.modules.deliveryOrder.web.models.TicketReleaseTableResponse | |||
| @Service | |||
| open class DoPickOrderService( | |||
| private val doPickOrderRepository: DoPickOrderRepository, | |||
| @@ -56,8 +59,8 @@ open class DoPickOrderService( | |||
| private val truckRepository: TruckRepository, | |||
| private val doPickOrderLineRepository: DoPickOrderLineRepository, | |||
| @Lazy private val deliveryOrderRepository: DeliveryOrderRepository, | |||
| private val doPickOrderLineRecordRepository: DoPickOrderLineRecordRepository | |||
| private val doPickOrderLineRecordRepository: DoPickOrderLineRecordRepository, | |||
| private val pickOrderLineRepository: PickOrderLineRepository | |||
| ) { | |||
| open fun findReleasedDoPickOrders(): List<DoPickOrder> { | |||
| return doPickOrderRepository.findByTicketStatusIn( | |||
| @@ -598,7 +601,121 @@ open class DoPickOrderService( | |||
| } | |||
| } | |||
| open fun getTicketReleaseTable(): List<DoPickOrder>{ | |||
| return doPickOrderRepository.findAllByDeletedFalseOrderByTicketReleaseTimeDesc() | |||
| open fun getTicketReleaseTable(startDate: LocalDate? = null, endDate: LocalDate? = null): List<TicketReleaseTableResponse> { | |||
| val doPickOrders = if (startDate != null && endDate != null) { | |||
| doPickOrderRepository.findAllByDeletedFalseAndRequiredDeliveryDateBetween(startDate, endDate) | |||
| } else { | |||
| doPickOrderRepository.findAllByDeletedFalseOrderByTicketReleaseTimeDesc() | |||
| } | |||
| val doPickOrderRecords = if (startDate != null && endDate != null) { | |||
| doPickOrderRecordRepository.findAllByDeletedFalseAndRequiredDeliveryDateBetween(startDate, endDate) | |||
| } else { | |||
| doPickOrderRecordRepository.findAllByDeletedFalseOrderByTicketReleaseTimeDesc() | |||
| } | |||
| val doPickOrderResponses = doPickOrders.map { doPickOrder -> | |||
| TicketReleaseTableResponse( | |||
| id = doPickOrder.id, | |||
| storeId = doPickOrder.storeId, | |||
| ticketNo = doPickOrder.ticketNo, | |||
| pickOrderId = doPickOrder.pickOrderId, | |||
| doOrderId = doPickOrder.doOrderId, | |||
| pickOrderCode = doPickOrder.pickOrderCode, | |||
| deliveryOrderCode = doPickOrder.deliveryOrderCode, | |||
| loadingSequence = doPickOrder.loadingSequence, | |||
| ticketStatus = doPickOrder.ticketStatus?.name, | |||
| truckId = doPickOrder.truckId, | |||
| truckDepartureTime = doPickOrder.truckDepartureTime, | |||
| shopId = doPickOrder.shopId, | |||
| handledBy = doPickOrder.handledBy, | |||
| ticketReleaseTime = doPickOrder.ticketReleaseTime, | |||
| ticketCompleteDateTime = doPickOrder.ticketCompleteDateTime, | |||
| truckLanceCode = doPickOrder.truckLanceCode, | |||
| shopCode = doPickOrder.shopCode, | |||
| shopName = doPickOrder.shopName, | |||
| requiredDeliveryDate = doPickOrder.requiredDeliveryDate, | |||
| handlerName = doPickOrder.handlerName, | |||
| numberOfFGItems = countFGItems(doPickOrder) | |||
| ) | |||
| } | |||
| val doPickOrderRecordResponses = doPickOrderRecords.map { record -> | |||
| TicketReleaseTableResponse( | |||
| id = record.id, | |||
| storeId = record.storeId, | |||
| ticketNo = record.ticketNo, | |||
| pickOrderId = record.pickOrderId, | |||
| doOrderId = record.doOrderId, | |||
| pickOrderCode = record.pickOrderCode, | |||
| deliveryOrderCode = record.deliveryOrderCode, | |||
| loadingSequence = record.loadingSequence, | |||
| ticketStatus = record.ticketStatus?.name, | |||
| truckId = record.truckId, | |||
| truckDepartureTime = record.truckDepartureTime, | |||
| shopId = record.shopId, | |||
| handledBy = record.handledBy, | |||
| ticketReleaseTime = record.ticketReleaseTime, | |||
| ticketCompleteDateTime = record.ticketCompleteDateTime, | |||
| truckLanceCode = record.truckLanceCode, | |||
| shopCode = record.shopCode, | |||
| shopName = record.shopName, | |||
| requiredDeliveryDate = record.requiredDeliveryDate, | |||
| handlerName = record.handlerName, | |||
| numberOfFGItems = countFGItemsFromRecord(record) | |||
| ) | |||
| } | |||
| return (doPickOrderResponses + doPickOrderRecordResponses).sortedByDescending { it.ticketReleaseTime?: LocalDateTime.MIN } | |||
| } | |||
| private fun countFGItems(doPickOrder: DoPickOrder): Int { | |||
| val doPickOrderLines = doPickOrderLineRepository.findByDoPickOrderIdAndDeletedFalse(doPickOrder.id!!) | |||
| val pickOrderIds = doPickOrderLines.mapNotNull { it.pickOrderId }.distinct() | |||
| if (pickOrderIds.isEmpty()) { | |||
| val directPickOrderId = doPickOrder.pickOrderId | |||
| if (directPickOrderId != null) { | |||
| val pickOrderLines = pickOrderLineRepository.findAllByPickOrderId(directPickOrderId) | |||
| return pickOrderLines.size | |||
| } | |||
| return 0 | |||
| } | |||
| val allPickOrderLines = pickOrderIds.flatMap { pickOrderId -> | |||
| pickOrderLineRepository.findAllByPickOrderId(pickOrderId) | |||
| } | |||
| return allPickOrderLines.size | |||
| } | |||
| private fun countFGItemsFromRecord(doPickOrderRecord: DoPickOrderRecord): Int { | |||
| // RECORD_ID FROM DO_PICK_ORDER_RECORD TABLE | |||
| val recordId = doPickOrderRecord.recordId | |||
| if (recordId == null) { | |||
| return 0 | |||
| } | |||
| // DO_PICK_ORDER_ID FROM DO_PICK_ORDER_LINE_RECORD TABLE | |||
| val doPickOrderLineRecords = doPickOrderLineRecordRepository.findByDoPickOrderIdAndDeletedFalse(recordId) | |||
| if (doPickOrderLineRecords.isEmpty()) { | |||
| return 0 | |||
| } | |||
| // RECORD_ID FROM DO_PICK_ORDER_LINE_RECORD TABLE | |||
| // POID FROM PICK_ORDER_LINE TABLE | |||
| val pickOrderIds = doPickOrderLineRecords.mapNotNull { it.pickOrderId }.distinct() | |||
| if (pickOrderIds.isEmpty()) { | |||
| return 0 | |||
| } | |||
| val allPickOrderLines = pickOrderIds.flatMap { pickOrderId -> | |||
| val lines = pickOrderLineRepository.findAllByPickOrderId(pickOrderId) | |||
| lines | |||
| } | |||
| return allPickOrderLines.size | |||
| } | |||
| }// 类结束 | |||
| @@ -92,7 +92,11 @@ fun getBatchReleaseProgress(@PathVariable jobId: String): MessageResponse { | |||
| } | |||
| @GetMapping("/ticket-release-table") | |||
| fun getTicketReleaseTable(): List<DoPickOrder> { | |||
| return doPickOrderService.getTicketReleaseTable() | |||
| fun getTicketReleaseTable( | |||
| @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) startDate: LocalDate?, | |||
| @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) endDate: LocalDate? | |||
| ): List<TicketReleaseTableResponse> { | |||
| return doPickOrderService.getTicketReleaseTable(startDate, endDate) | |||
| } | |||
| } | |||
| @@ -0,0 +1,29 @@ | |||
| package com.ffii.fpsms.modules.deliveryOrder.web.models | |||
| import java.time.LocalDateTime | |||
| import java.time.LocalDate | |||
| import java.time.LocalTime | |||
| data class TicketReleaseTableResponse( | |||
| val id: Long?, | |||
| val storeId: String?, | |||
| val ticketNo: String?, | |||
| val pickOrderId: Long?, | |||
| val doOrderId: Long?, | |||
| val pickOrderCode: String?, | |||
| val deliveryOrderCode: String?, | |||
| val loadingSequence: Int?, | |||
| val ticketStatus: String?, | |||
| val truckId: Long?, | |||
| val truckDepartureTime: LocalTime?, | |||
| val shopId: Long?, | |||
| val handledBy: Long?, | |||
| val ticketReleaseTime: LocalDateTime?, | |||
| val ticketCompleteDateTime: LocalDateTime?, | |||
| val truckLanceCode: String?, | |||
| val shopCode: String?, | |||
| val shopName: String?, | |||
| val requiredDeliveryDate: LocalDate?, | |||
| val handlerName: String?, | |||
| val numberOfFGItems: Int = 0 | |||
| ) | |||
| @@ -1,7 +1,7 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- Created with Jaspersoft Studio version 6.21.3.final using JasperReports Library version 6.21.3-4a3078d20785ebe464f18037d738d12fc98c13cf --> | |||
| <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="DeliveryNotePDF" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="36f9d415-527f-4152-b7b0-eea81fe06f73"> | |||
| <parameter name="deliveryOrderCode" class="java.lang.String"> | |||
| <parameter name="deliveryNoteCode" class="java.lang.String"> | |||
| <parameterDescription><![CDATA[DeliveryOrderCode]]></parameterDescription> | |||
| </parameter> | |||
| <parameter name="shopName" class="java.lang.String"/> | |||
| @@ -14,7 +14,7 @@ | |||
| <parameter name="dnTitle" class="java.lang.String"/> | |||
| <parameter name="colQty" class="java.lang.String"/> | |||
| <parameter name="totalCartonTitle" class="java.lang.String"/> | |||
| <parameter name="deliveryOrderCodeTitle" class="java.lang.String"/> | |||
| <parameter name="deliveryNoteCodeTitle" class="java.lang.String"/> | |||
| <queryString> | |||
| <![CDATA[]]> | |||
| </queryString> | |||
| @@ -33,7 +33,7 @@ | |||
| <band/> | |||
| </title> | |||
| <pageHeader> | |||
| <band height="186"> | |||
| <band height="155"> | |||
| <staticText> | |||
| <reportElement x="430" y="0" width="40" height="18" uuid="3381622a-7eda-4649-88b8-650da96c2a77"> | |||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | |||
| @@ -119,10 +119,10 @@ | |||
| </textElement> | |||
| <text><![CDATA[地址:]]></text> | |||
| </staticText> | |||
| <textField> | |||
| <textField textAdjust="ScaleFont"> | |||
| <reportElement x="70" y="50" width="465" height="23" uuid="89e79bce-bd39-48e6-b114-c11b4bcc5c9f"/> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="13" isBold="true"/> | |||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{shopAddress}]]></textFieldExpression> | |||
| </textField> | |||
| @@ -167,7 +167,7 @@ | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <text><![CDATA[成品提料編號:]]></text> | |||
| <text><![CDATA[成品提貨單號:]]></text> | |||
| </staticText> | |||
| <staticText> | |||
| <reportElement x="5" y="130" width="110" height="18" uuid="111c5f73-f543-4006-931b-27479ccca816"> | |||
| @@ -177,14 +177,14 @@ | |||
| <textElement textAlignment="Left" verticalAlignment="Top"> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <text><![CDATA[店鋪採購單編號:]]></text> | |||
| <text><![CDATA[店鋪採購單號:]]></text> | |||
| </staticText> | |||
| <textField> | |||
| <reportElement x="115" y="130" width="425" height="54" uuid="7171ba0b-1a78-4ff6-a765-7b2b543ab0bc"> | |||
| <textField textAdjust="StretchHeight"> | |||
| <reportElement x="115" y="130" width="425" height="18" uuid="7171ba0b-1a78-4ff6-a765-7b2b543ab0bc"> | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Top"> | |||
| <font fontName="微軟正黑體"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{ShopPurchaseOrderNo}]]></textFieldExpression> | |||
| </textField> | |||
| @@ -193,7 +193,7 @@ | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體"/> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{FGPickOrderNo}]]></textFieldExpression> | |||
| </textField> | |||
| @@ -202,7 +202,7 @@ | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體"/> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{deliveryDate}]]></textFieldExpression> | |||
| </textField> | |||
| @@ -211,7 +211,7 @@ | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體"/> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{numOfCarton}]]></textFieldExpression> | |||
| </textField> | |||
| @@ -220,7 +220,7 @@ | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體"/> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{totalCartonTitle}]]></textFieldExpression> | |||
| </textField> | |||
| @@ -229,18 +229,18 @@ | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體"/> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{deliveryOrderCode}]]></textFieldExpression> | |||
| <textFieldExpression><![CDATA[$P{deliveryNoteCode}]]></textFieldExpression> | |||
| </textField> | |||
| <textField> | |||
| <reportElement x="280" y="110" width="110" height="18" uuid="f0f2f87f-26cb-4fad-9c78-9d934191fad9"> | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體"/> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{deliveryOrderCodeTitle}]]></textFieldExpression> | |||
| <textFieldExpression><![CDATA[$P{deliveryNoteCodeTitle}]]></textFieldExpression> | |||
| </textField> | |||
| </band> | |||
| </pageHeader> | |||
| @@ -269,11 +269,11 @@ | |||
| <text><![CDATA[路綫]]></text> | |||
| </staticText> | |||
| <staticText> | |||
| <reportElement x="150" y="4" width="80" height="18" uuid="65c27cc0-f806-4930-930c-6b3fd632a52f"> | |||
| <reportElement x="150" y="5" width="80" height="18" uuid="65c27cc0-f806-4930-930c-6b3fd632a52f"> | |||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement textAlignment="Left"> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <text><![CDATA[貨品編號]]></text> | |||
| @@ -283,7 +283,7 @@ | |||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement textAlignment="Left"> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="12"/> | |||
| </textElement> | |||
| <text><![CDATA[貨品名稱]]></text> | |||
| @@ -315,7 +315,7 @@ | |||
| <detail> | |||
| <band height="42"> | |||
| <textField> | |||
| <reportElement x="0" y="1" width="40" height="18" uuid="ae87b739-dadf-452a-bc35-8c2da1a6a9a8"> | |||
| <reportElement x="0" y="0" width="40" height="18" uuid="ae87b739-dadf-452a-bc35-8c2da1a6a9a8"> | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Middle"> | |||
| @@ -324,7 +324,7 @@ | |||
| <textFieldExpression><![CDATA[$F{sequenceNumber}]]></textFieldExpression> | |||
| </textField> | |||
| <textField> | |||
| <reportElement x="40" y="1" width="110" height="18" uuid="b4bcfa6c-5d2e-4fba-815a-cc2fccd39213"> | |||
| <reportElement x="40" y="0" width="110" height="18" uuid="b4bcfa6c-5d2e-4fba-815a-cc2fccd39213"> | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Middle"> | |||
| @@ -351,10 +351,10 @@ | |||
| <textFieldExpression><![CDATA[$F{qty} + $F{shortName}]]></textFieldExpression> | |||
| </textField> | |||
| <textField> | |||
| <reportElement x="230" y="1" width="240" height="18" uuid="c2b4da75-fdca-4e99-8103-5769dea75841"> | |||
| <reportElement x="230" y="0" width="230" height="18" uuid="c2b4da75-fdca-4e99-8103-5769dea75841"> | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Top"> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{itemName} + "(" + $F{uom} + ")"]]></textFieldExpression> | |||
| @@ -365,7 +365,7 @@ | |||
| </reportElement> | |||
| </line> | |||
| <textField> | |||
| <reportElement x="230" y="18" width="240" height="18" uuid="af701932-2e78-47d4-a131-b668200dc376"> | |||
| <reportElement x="230" y="18" width="230" height="18" uuid="af701932-2e78-47d4-a131-b668200dc376"> | |||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | |||
| </reportElement> | |||
| <textElement verticalAlignment="Middle"> | |||