Quellcode durchsuchen

FG-Semi-FG-ProductionReport UPDATE

master
B.E.N.S.O.N vor 7 Stunden
Ursprung
Commit
4c6e1bcdb6
1 geänderte Dateien mit 6 neuen und 9 gelöschten Zeilen
  1. +6
    -9
      src/main/java/com/ffii/fpsms/modules/report/service/SemiFGProductionAnalysisReportService.kt

+ 6
- 9
src/main/java/com/ffii/fpsms/modules/report/service/SemiFGProductionAnalysisReportService.kt Datei anzeigen

@@ -59,9 +59,11 @@ class SemiFGProductionAnalysisReportService(
* Queries the database for Semi FG Production Analysis Report data.
* Aligned with [ReportService.searchStockInTraceabilityReport] totals for the same filters:
* - stock_in_line driven (no stock_ledger gate); INNER JOIN bom so only items that exist as BOM rows appear
* - Include only stock_in_line rows with non-null jobOrderId
* - Exclude stock_in_line rows with status = 'Pending'
* - stockCategory → items.type (exact, comma-separated); itemCode → items.code (LIKE, comma-separated)
* - Date range / year on productionDate (with IS NOT NULL when range bound is set)
* - Put-away qty: SUM(inventory_lot_line.inQty) by sil.inventoryLotId (same as traceability pa_sil)
* - Quantity source: stock_in_line.acceptedQty
* - QC any fail → line qty 0 (same as traceability stockInQty)
* - One row per stockInLineId per month before pivot; all lines counted (not only job orders)
*/
@@ -113,12 +115,6 @@ class SemiFGProductionAnalysisReportService(
WHERE qr.deleted = 0
GROUP BY qr.stockInLineId
),
pa_sil AS (
SELECT inventoryLotId, SUM(COALESCE(inQty, 0)) AS putAwayQtySum
FROM inventory_lot_line
WHERE deleted = false
GROUP BY inventoryLotId
),
base AS (
SELECT
COALESCE(it.code, '') AS itemNo,
@@ -128,18 +124,19 @@ class SemiFGProductionAnalysisReportService(
MONTH(si.productionDate) AS mon,
si.id AS stockInLineId,
CASE WHEN COALESCE(qr_agg.qcFailed, 0) = 1 THEN 0
ELSE COALESCE(pa_sil.putAwayQtySum, 0)
ELSE COALESCE(si.acceptedQty, 0)
END AS linePutAwayQty
FROM stock_in_line si
INNER JOIN items it ON si.itemId = it.id
INNER JOIN bom b ON b.code = it.code AND b.deleted = false
LEFT JOIN qr_agg ON qr_agg.stockInLineId = si.id
LEFT JOIN pa_sil ON pa_sil.inventoryLotId = si.inventoryLotId
LEFT JOIN item_category ic ON it.categoryId = ic.id
LEFT JOIN item_uom iu ON it.id = iu.itemId AND iu.stockUnit = true
LEFT JOIN uom_conversion uc ON iu.uomId = uc.id
WHERE si.deleted = false
AND si.productionDate IS NOT NULL
AND si.jobOrderId IS NOT NULL
AND (si.status IS NULL OR si.status <> 'Pending')
$stockCategorySql
$stockSubCategorySql
$itemCodeSql


Laden…
Abbrechen
Speichern