From dcee63c91500e27057bc481f7469c1d1bd89fd30 Mon Sep 17 00:00:00 2001 From: "kelvin.yau" Date: Fri, 6 Feb 2026 05:47:14 +0800 Subject: [PATCH] StockIn Fix --- .../fpsms/modules/stock/service/StockInLineService.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt b/src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt index 998be3a..be826e8 100644 --- a/src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt +++ b/src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt @@ -53,6 +53,8 @@ import com.ffii.fpsms.modules.stock.entity.StockLedgerRepository import com.ffii.fpsms.modules.stock.entity.InventoryRepository import org.springframework.http.HttpStatus import org.springframework.web.server.ResponseStatusException +import kotlin.text.toDouble + @Serializable data class QrContent(val itemId: Long, val stockInLineId: Long) @@ -740,12 +742,11 @@ open class StockInLineService( ) } @Transactional -private fun createStockLedgerForStockIn(stockInLine: StockInLine) { - val item = stockInLine.item ?: return - val inventory = inventoryRepository.findByItemId(item.id!!).orElse(null) ?: return - - val inQty = stockInLine.acceptedQty?.toDouble() ?: 0.0 + private fun createStockLedgerForStockIn(stockInLine: StockInLine) { + val item = stockInLine.item ?: return + val inventory = inventoryRepository.findFirstByItemIdAndDeletedIsFalseOrderByIdAsc(item.id!!) ?: return + val inQty = stockInLine.acceptedQty?.toDouble() ?: 0.0 // ✅ 修复:查询最新的 stock_ledger 记录,基于前一笔 balance 计算 val latestLedger = stockLedgerRepository.findLatestByItemId(item.id!!).firstOrNull()