Bladeren bron

no message

master
Fai Luk 3 dagen geleden
bovenliggende
commit
81c78d79d1
2 gewijzigde bestanden met toevoegingen van 15 en 43 verwijderingen
  1. +13
    -19
      src/main/java/com/ffii/fpsms/modules/report/service/ReportService.kt
  2. +2
    -24
      src/main/resources/jasper/StockInTraceabilityReport.jrxml

+ 13
- 19
src/main/java/com/ffii/fpsms/modules/report/service/ReportService.kt Bestand weergeven

@@ -647,10 +647,9 @@ return result
}

/**
* Queries the database for Stock In Traceability Report data (PO 入倉 / 入倉追蹤 PDF).
* Queries the database for Stock In Traceability Report data (入倉追蹤 PDF).
* Joins stock_in_line, stock_in, items, qc_result, inventory_lot, inventory_lot_line, warehouse, and shop tables.
* Supports comma-separated values for stockCategory (items.type) and itemCode.
* Adds `poM18CreatorDisplay` from `purchase_order.m18CreatedUId` via [M18GrnRules.formatM18CreatedUidForReport].
*/
fun searchStockInTraceabilityReport(
stockCategory: String?,
@@ -705,7 +704,6 @@ return result
COALESCE(wh.code, '') as storeLocation,
COALESCE(sp_si.code, sp_po.code, '') as supplierID,
COALESCE(sp_si.name, sp_po.name, '') as supplierName,
po.m18CreatedUId AS poM18CreatedUId,
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(SUM(COALESCE(sil.acceptedQty, 0)) OVER (PARTITION BY it.id), 2))) as totalStockInQty,
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(SUM(COALESCE(sil.acceptedQty, 0)) OVER (PARTITION BY it.id), 2))) as totalIqcSampleQty
FROM stock_in_line sil
@@ -740,20 +738,7 @@ return result
ORDER BY it.code, sil.lotNo
""".trimIndent()

val rows = jdbcDao.queryForList(sql, args)
return rows.map { row ->
val m = LinkedHashMap<String, Any?>(row)
val raw = m.remove("poM18CreatedUId")
val uid = when (raw) {
null -> null
is Number -> raw.toLong()
is BigDecimal -> raw.toLong()
else -> raw.toString().toLongOrNull()
}
m["poM18CreatorDisplay"] = M18GrnRules.formatM18CreatedUidForReport(uid)
@Suppress("UNCHECKED_CAST")
m as Map<String, Any>
}
return jdbcDao.queryForList(sql, args)
}

/**
@@ -808,7 +793,8 @@ return result
MAX(ROUND(COALESCE(pol.up, 0) * COALESCE(sil.acceptedQty, 0), 2)) AS lineAmount,
MAX(COALESCE(cur.code, '')) AS currencyCode,
MAX(grn.grn_code) AS grnCode,
MAX(grn.m18_record_id) AS grnId
MAX(grn.m18_record_id) AS grnId,
MAX(po.m18CreatedUId) AS poM18CreatedUId
FROM stock_in_line sil
LEFT JOIN items it ON sil.itemId = it.id
LEFT JOIN purchase_order po ON sil.purchaseOrderId = po.id
@@ -870,7 +856,15 @@ return result
"lineAmount" to (row["lineAmount"]?.let { n -> (n as? Number)?.toDouble() } ?: 0.0),
"currencyCode" to row["currencyCode"],
"grnCode" to row["grnCode"],
"grnId" to row["grnId"]
"grnId" to row["grnId"],
"poM18CreatorDisplay" to M18GrnRules.formatM18CreatedUidForReport(
when (val v = row["poM18CreatedUId"]) {
null -> null
is Number -> v.toLong()
is BigDecimal -> v.toLong()
else -> v.toString().toLongOrNull()
},
),
)
}
}


+ 2
- 24
src/main/resources/jasper/StockInTraceabilityReport.jrxml Bestand weergeven

@@ -57,7 +57,6 @@
<field name="storeLocation" class="java.lang.String"/>
<field name="supplierID" class="java.lang.String"/>
<field name="supplierName" class="java.lang.String"/>
<field name="poM18CreatorDisplay" class="java.lang.String"/>
<field name="totalStockInQty" class="java.lang.String"/>
<field name="totalIqcSampleQty" class="java.lang.String"/>
<field name="totalIqcDefectQty" class="java.lang.String"/>
@@ -174,7 +173,7 @@
<text><![CDATA[送貨單編號]]></text>
</staticText>
<staticText>
<reportElement stretchType="RelativeToTallestObject" x="690" y="80" width="65" height="28" uuid="db5b9c55-0185-420b-ba6c-0e10d154cc8a">
<reportElement stretchType="RelativeToTallestObject" x="690" y="80" width="108" height="28" uuid="db5b9c55-0185-420b-ba6c-0e10d154cc8a">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
@@ -184,18 +183,6 @@
</textElement>
<text><![CDATA[供應商名稱]]></text>
</staticText>
<staticText>
<reportElement stretchType="RelativeToTallestObject" x="758" y="80" width="42" height="28" uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="9"/>
</textElement>
<text><![CDATA[PO建立者
(M18)]]></text>
</staticText>
<staticText>
<reportElement stretchType="RelativeToTallestObject" x="220" y="80" width="60" height="28" uuid="cd7a146a-1af0-4428-9b88-dcb159691656">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
@@ -484,7 +471,7 @@
<textFieldExpression><![CDATA[$F{storeLocation}]]></textFieldExpression>
</textField>
<textField textAdjust="StretchHeight">
<reportElement x="690" y="2" width="65" height="18" uuid="eb6ed0fc-bfda-4a89-a163-fe08b00a0120">
<reportElement x="690" y="2" width="108" height="18" uuid="eb6ed0fc-bfda-4a89-a163-fe08b00a0120">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
@@ -492,15 +479,6 @@
</textElement>
<textFieldExpression><![CDATA[$F{supplierName}]]></textFieldExpression>
</textField>
<textField textAdjust="StretchHeight">
<reportElement x="758" y="2" width="42" height="18" uuid="f2e3d4c5-b6a7-8901-cdef-234567890abc">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="9"/>
</textElement>
<textFieldExpression><![CDATA[$F{poM18CreatorDisplay}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>

Laden…
Annuleren
Opslaan