浏览代码

update

master
CANCERYS\kw093 1周前
父节点
当前提交
8cb44cda7d
共有 1 个文件被更改,包括 24 次插入12 次删除
  1. +24
    -12
      src/main/java/com/ffii/fpsms/modules/report/service/StockTakeVarianceReportService.kt

+ 24
- 12
src/main/java/com/ffii/fpsms/modules/report/service/StockTakeVarianceReportService.kt 查看文件

@@ -116,27 +116,27 @@ WITH latest_str AS (
)
)
),
in_out AS (
in_agg AS (
SELECT
ill.id AS inventoryLotLineId,

/* 期初:fromDate 之前的入 - 出 */
SUM(CASE WHEN DATE(sil.receiptDate) < :fromDate THEN COALESCE(sil.acceptedQty, 0) ELSE 0 END) AS inBefore,
SUM(CASE WHEN DATE(sol.endTime) < :fromDate THEN COALESCE(sol.qty, 0) ELSE 0 END) AS outBefore,

/* 區間內累計 */
SUM(CASE WHEN DATE(sil.receiptDate) BETWEEN :fromDate AND :toDate THEN COALESCE(sil.acceptedQty, 0) ELSE 0 END) AS inDuring,
SUM(CASE WHEN DATE(sol.endTime) BETWEEN :fromDate AND :toDate THEN COALESCE(sol.qty, 0) ELSE 0 END) AS outDuring,

/* 最後入/出倉日期(不限定區間,通常看整體最後一次) */
MAX(CASE WHEN sil.receiptDate IS NOT NULL THEN DATE(sil.receiptDate) END) AS lastInDate,
MAX(CASE WHEN sol.endTime IS NOT NULL THEN DATE(sol.endTime) END) AS lastOutDate

MAX(CASE WHEN sil.receiptDate IS NOT NULL THEN DATE(sil.receiptDate) END) AS lastInDate
FROM inventory_lot_line ill
LEFT JOIN stock_in_line sil
ON sil.inventoryLotLineId = ill.id
AND sil.deleted = 0
AND sil.status = 'completed'
WHERE ill.deleted = 0
GROUP BY ill.id
),
out_agg AS (
SELECT
ill.id AS inventoryLotLineId,
SUM(CASE WHEN DATE(sol.endTime) < :fromDate THEN COALESCE(sol.qty, 0) ELSE 0 END) AS outBefore,
SUM(CASE WHEN DATE(sol.endTime) BETWEEN :fromDate AND :toDate THEN COALESCE(sol.qty, 0) ELSE 0 END) AS outDuring,
MAX(CASE WHEN sol.endTime IS NOT NULL THEN DATE(sol.endTime) END) AS lastOutDate
FROM inventory_lot_line ill
LEFT JOIN stock_out_line sol
ON sol.inventoryLotLineId = ill.id
AND sol.deleted = 0
@@ -144,6 +144,18 @@ in_out AS (
WHERE ill.deleted = 0
GROUP BY ill.id
),
in_out AS (
SELECT
i.inventoryLotLineId,
COALESCE(i.inBefore, 0) AS inBefore,
COALESCE(o.outBefore, 0) AS outBefore,
COALESCE(i.inDuring, 0) AS inDuring,
COALESCE(o.outDuring, 0) AS outDuring,
i.lastInDate,
o.lastOutDate
FROM in_agg i
LEFT JOIN out_agg o ON o.inventoryLotLineId = i.inventoryLotLineId
),
data AS (
SELECT
it.type AS stockSubCategory,


正在加载...
取消
保存