3 次程式碼提交

共有 2 個文件被更改,包括 16 次插入8 次删除
統一視圖
  1. +9
    -2
      src/main/java/com/ffii/fpsms/modules/stock/service/InventoryLotLineService.kt
  2. +7
    -6
      src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt

+ 9
- 2
src/main/java/com/ffii/fpsms/modules/stock/service/InventoryLotLineService.kt 查看文件

@@ -201,8 +201,15 @@ open class InventoryLotLineService(
field["itemNo"] = info.itemNo field["itemNo"] = info.itemNo
field["poCode"] = info.poCode ?: "N/A" field["poCode"] = info.poCode ?: "N/A"
field["itemType"] = info.itemType ?: "N/A" field["itemType"] = info.itemType ?: "N/A"
field["acceptedQty"] = info.acceptedQty.toString()
field["uom"] = info.uom?.udfudesc.toString() ?: "N/A"
val stockItemUom = itemUomRespository.findBaseUnitByItemIdAndStockUnitIsTrueAndDeletedIsFalse(info.itemId)
val purchaseItemUom = itemUomRespository.findByItemIdAndPurchaseUnitIsTrueAndDeletedIsFalse(info.itemId)
val stockQty = if (stockItemUom != null && purchaseItemUom != null) {
(info.acceptedQty) * (purchaseItemUom.ratioN!! / purchaseItemUom.ratioD!!) / (stockItemUom.ratioN!! / stockItemUom.ratioD!!)
} else {
info.acceptedQty
}
field["acceptedQty"] = "%.2f".format(stockQty)
field["uom"] = inventoryLotLine.stockUom?.uom?.udfudesc ?: stockItemUom?.uom?.udfudesc ?: info.uom?.udfudesc?.toString() ?: "N/A"
field["productionDate"] = info.productionDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: "" field["productionDate"] = info.productionDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: ""
field["expiryDate"] = info.expiryDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: "" field["expiryDate"] = info.expiryDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: ""
field["lotNo"] = info.lotNo!! field["lotNo"] = info.lotNo!!


+ 7
- 6
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 com.ffii.fpsms.modules.stock.entity.InventoryRepository
import org.springframework.http.HttpStatus import org.springframework.http.HttpStatus
import org.springframework.web.server.ResponseStatusException import org.springframework.web.server.ResponseStatusException
import kotlin.text.toDouble

@Serializable @Serializable
data class QrContent(val itemId: Long, val stockInLineId: Long) data class QrContent(val itemId: Long, val stockInLineId: Long)


@@ -606,7 +608,7 @@ open class StockInLineService(
field["poCode"] = info.poCode ?: "N/A" field["poCode"] = info.poCode ?: "N/A"
field["itemType"] = info.itemType ?: "N/A" field["itemType"] = info.itemType ?: "N/A"
field["acceptedQty"] = "%.2f".format(acceptedQty) field["acceptedQty"] = "%.2f".format(acceptedQty)
field["uom"] = info.uom?.udfudesc.toString() ?: "N/A"
field["uom"] = stockItemUom?.uom?.udfudesc ?: info.uom?.udfudesc?.toString() ?: "N/A"
field["productionDate"] = info.productionDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: "" field["productionDate"] = info.productionDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: ""
field["expiryDate"] = info.expiryDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: "" field["expiryDate"] = info.expiryDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: ""
field["lotNo"] = info.lotNo ?: "N/A" field["lotNo"] = info.lotNo ?: "N/A"
@@ -740,12 +742,11 @@ open class StockInLineService(
) )
} }
@Transactional @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 计算 // ✅ 修复:查询最新的 stock_ledger 记录,基于前一笔 balance 计算
val latestLedger = stockLedgerRepository.findLatestByItemId(item.id!!).firstOrNull() val latestLedger = stockLedgerRepository.findLatestByItemId(item.id!!).firstOrNull()


Loading…
取消
儲存