diff --git a/src/main/java/com/ffii/fpsms/modules/report/service/StockLedgerReportService.kt b/src/main/java/com/ffii/fpsms/modules/report/service/StockLedgerReportService.kt index 393e6fd..3f34050 100644 --- a/src/main/java/com/ffii/fpsms/modules/report/service/StockLedgerReportService.kt +++ b/src/main/java/com/ffii/fpsms/modules/report/service/StockLedgerReportService.kt @@ -83,7 +83,12 @@ WITH base AS ( sl.id AS slId, DATE(sl.date) AS trnDateRaw, DATE_FORMAT(sl.date, '%Y-%m-%d') AS trnDate, - sl.type AS trnRefNo, + CASE + WHEN UPPER(TRIM(COALESCE(sl.type, ''))) = 'TKE' THEN 'TKE' + WHEN UPPER(TRIM(COALESCE(sl.type, ''))) = 'ADJ' + AND (so.stockTakeId IS NOT NULL OR so.type = 'stockTake' OR si.stockTakeId IS NOT NULL) THEN 'TKE' + ELSE COALESCE(sl.type, '') + END AS trnRefNoRaw, sl.itemId AS itemId, sl.itemCode AS itemCode, @@ -101,8 +106,8 @@ WITH base AS ( COALESCE(DATE_FORMAT(lot.expiryDate, '%Y-%m-%d'), '') AS expiryDate, lot.storeLocation AS storeLocation, - '' AS orderRefNo, - '' AS jobOrderNo, + COALESCE(TRIM(do.code), TRIM(jo_po.code), TRIM(jo.code), TRIM(po.code), '') AS orderRefNo, + COALESCE(TRIM(jo.code), '') AS jobOrderNo, '' AS openingBalance, '' AS cumStockIn, @@ -168,7 +173,30 @@ WITH base AS ( LEFT JOIN warehouse wh_out ON ill_out.warehouseId = wh_out.id AND wh_out.deleted = 0 - + LEFT JOIN stock_out so + ON sol.stockOutId = so.id + AND so.deleted = 0 + LEFT JOIN pick_order_line pol + ON sol.pickOrderLineId = pol.id + AND pol.deleted = 0 + LEFT JOIN pick_order po_out + ON pol.poId = po_out.id + AND po_out.deleted = 0 + LEFT JOIN job_order jo_po + ON po_out.joId = jo_po.id + AND jo_po.deleted = 0 + LEFT JOIN delivery_order do + ON po_out.doId = do.id + AND do.deleted = 0 + LEFT JOIN stock_in si + ON sil.stockInId = si.id + AND si.deleted = 0 + LEFT JOIN job_order jo + ON sil.jobOrderId = jo.id + AND jo.deleted = 0 + LEFT JOIN purchase_order po + ON sil.purchaseOrderId = po.id + AND po.deleted = 0 WHERE sl.deleted = 0 AND sl.itemCode IS NOT NULL @@ -203,8 +231,17 @@ SELECT unitOfMeasure, lotNo, expiryDate, - trnDate, - trnRefNo, + trnDate, + CASE trnRefNoRaw + WHEN 'OPEN' THEN '開倉' + WHEN 'NOR' THEN '出入倉' + WHEN 'TRF' THEN '轉倉' + WHEN 'ADJ' THEN '調整' + WHEN 'MISS' THEN '遺失' + WHEN 'BAD' THEN '不良品' + WHEN 'TKE' THEN '盤點' + ELSE trnRefNoRaw + END AS trnRefNo, storeLocation, orderRefNo, jobOrderNo, @@ -238,15 +275,15 @@ SELECT ) AS CHAR) AS cumOpeningBal, -- footer totals(同樣輸出 String) - CAST(CAST(openingBeforeStart AS DECIMAL(20,0)) AS CHAR) AS totalCumOpeningBal, - CAST(CAST(SUM(inQty) OVER (PARTITION BY itemCode) AS DECIMAL(20,0)) AS CHAR) AS totalStockIn, - CAST(CAST(SUM(outQty) OVER (PARTITION BY itemCode) AS DECIMAL(20,0)) AS CHAR) AS totalStockOut, - CAST(CAST( + CAST(openingBeforeStart AS DECIMAL(20,0)) AS totalCumOpeningBal, + CAST(SUM(inQty) OVER (PARTITION BY itemCode) AS DECIMAL(20,0)) AS totalStockIn, + CAST(SUM(outQty) OVER (PARTITION BY itemCode) AS DECIMAL(20,0)) AS totalStockOut, + CAST( (openingBeforeStart + SUM(inQty) OVER (PARTITION BY itemCode) - SUM(outQty) OVER (PARTITION BY itemCode) ) AS DECIMAL(20,0) - ) AS CHAR) AS totalCumBalance + ) AS totalCumBalance FROM period ORDER BY diff --git a/src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt b/src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt index a845b3d..1693aa8 100644 --- a/src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt +++ b/src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt @@ -931,7 +931,7 @@ class StockTakeRecordService( this.outQty = absVariance.toDouble() this.stockOutLine = stockOutLine this.balance = newBalance - this.type = "Adj" + this.type = "TKE" this.date = LocalDate.now() } stockLedgerRepository.save(stockLedger) @@ -974,7 +974,7 @@ class StockTakeRecordService( this.expiryDate = inventoryLot.expiryDate this.lotNo = inventoryLot.lotNo this.status = "completed" - this.type = "ADJ" + this.type = "TKE" // 注意:此时不设置 inventoryLot 和 inventoryLotLine,因为还没有创建 } stockInLineRepository.save(stockInLine) diff --git a/src/main/resources/jasper/StockLedgarReport.jrxml b/src/main/resources/jasper/StockLedgarReport.jrxml index a4187ff..152f398 100644 --- a/src/main/resources/jasper/StockLedgarReport.jrxml +++ b/src/main/resources/jasper/StockLedgarReport.jrxml @@ -57,10 +57,10 @@ - - - - + + + + @@ -100,7 +100,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -127,7 +127,7 @@ - +