Kaynağa Gözat

exprot sql fix

fix負數倉
CANCERYS\kw093 3 hafta önce
ebeveyn
işleme
131e747ff3
1 değiştirilmiş dosya ile 34 ekleme ve 28 silme
  1. +34
    -28
      src/main/java/com/ffii/fpsms/modules/master/service/ledgerfix/StockLedgerFixExportService.kt

+ 34
- 28
src/main/java/com/ffii/fpsms/modules/master/service/ledgerfix/StockLedgerFixExportService.kt Dosyayı Görüntüle

@@ -113,7 +113,7 @@ open class StockLedgerFixExportService(
writer.write("-- stock-ledger-fix patch\n")
writer.write("-- from $from inclusive to ${toExclusive.minusDays(1)} inclusive (date < $toExclusive)\n")
writer.write("-- parts=${parts.joinToString(",")}\n")
writer.write("-- apply order: 1.0 lot outQty NULL→0 then inventory → 2.1 delete ledger + stock_out lot → ledger(+2.3) UPDATE → 2.7a lot inQty + SIL/SOL/adjustment record then ADJ INSERT → 2.6 stock_lot_day\n")
writer.write("-- apply order: 1.0 inventory (stockUomId) then lot outQty NULL→0 → 2.1 delete ledger + stock_out lot → ledger(+2.3) UPDATE → 2.7a lot inQty + SIL/SOL/adjustment record then ADJ INSERT → 2.6 stock_lot_day\n")
writer.write("-- INNER JOIN id: target rows without matching id are skipped on UPDATE\n")
if (want23 && !want10) {
writer.write("-- WARN: 2.3 without 1.0 — new inventory ids may be missing on target; prefer include 1.0\n")
@@ -153,10 +153,41 @@ open class StockLedgerFixExportService(
}

private fun writeExportInventory10(writer: BufferedWriter, jdbc: NamedParameterJdbcTemplate) {
writer.write("-- === 1.0 lot line outQty NULL → 0 (before inventory; trigger may run, next block overwrites buckets) ===\n")
writer.write("-- === 1.0 inventory (stockUomId first, so the later outQty trigger updates this row) ===\n")
writeInventoryUpsert(writer, jdbc)
writeTempUpdate(
writer,
jdbc,
emptyMap(),
title = "-- === 1.0 soft-delete orphan inventory (stockUomId still null) ===\n",
selectSql = """
SELECT id, modified, modifiedBy
FROM inventory
WHERE deleted = 1
AND modifiedBy IN ('DNP', 'stock-ledger-fix')
ORDER BY id
""".trimIndent(),
tempName = "tmp_sl_fix_inv_del",
columnDefs = "modified DATETIME NULL, modifiedBy VARCHAR(255) NULL",
columns = listOf("id", "modified", "modifiedBy"),
updateSql = """
UPDATE inventory i
INNER JOIN tmp_sl_fix_inv_del t ON t.id = i.id
SET
i.deleted = 1,
i.modified = t.modified,
i.modifiedBy = t.modifiedBy;
""".trimIndent(),
emptyComment = "-- (no stock-ledger-fix deleted inventory rows)",
)
writer.write("-- === 1.0 lot line outQty NULL → 0 (after stockUomId; trigger updates the existing bucket) ===\n")
writer.write(StockLedgerFixInventorySql.ZERO_NULL_OUT_QTY_SQL.trim())
writer.write(";\n\n")
writer.write("-- === 1.0 inventory (INSERT with fixed id + UPDATE qty/status) ===\n")
writer.write("-- === 1.0 inventory qty again (trigger above replaced onHandQty) ===\n")
writeInventoryUpsert(writer, jdbc)
}

private fun writeInventoryUpsert(writer: BufferedWriter, jdbc: NamedParameterJdbcTemplate) {
var batch = 0
jdbc.query(
"""
@@ -218,31 +249,6 @@ open class StockLedgerFixExportService(
} else {
writer.write("-- (no inventory rows)\n\n")
}
writeTempUpdate(
writer,
jdbc,
emptyMap(),
title = "-- === 1.0 soft-delete orphan inventory (stockUomId still null) ===\n",
selectSql = """
SELECT id, modified, modifiedBy
FROM inventory
WHERE deleted = 1
AND modifiedBy IN ('DNP', 'stock-ledger-fix')
ORDER BY id
""".trimIndent(),
tempName = "tmp_sl_fix_inv_del",
columnDefs = "modified DATETIME NULL, modifiedBy VARCHAR(255) NULL",
columns = listOf("id", "modified", "modifiedBy"),
updateSql = """
UPDATE inventory i
INNER JOIN tmp_sl_fix_inv_del t ON t.id = i.id
SET
i.deleted = 1,
i.modified = t.modified,
i.modifiedBy = t.modifiedBy;
""".trimIndent(),
emptyComment = "-- (no stock-ledger-fix deleted inventory rows)",
)
}

/**


Yükleniyor…
İptal
Kaydet