3 Commits

Auteur SHA1 Bericht Datum
  kelvin.yau acc5f69788 Merge remote-tracking branch 'origin/master' 5 dagen geleden
  kelvin.yau 9396640e7a update 5 dagen geleden
  kelvin.yau dcee63c915 StockIn Fix 5 dagen geleden
2 gewijzigde bestanden met toevoegingen van 16 en 8 verwijderingen
  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 Bestand weergeven

@@ -201,8 +201,15 @@ open class InventoryLotLineService(
field["itemNo"] = info.itemNo
field["poCode"] = info.poCode ?: "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["expiryDate"] = info.expiryDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: ""
field["lotNo"] = info.lotNo!!


+ 7
- 6
src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt Bestand weergeven

@@ -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)

@@ -606,7 +608,7 @@ open class StockInLineService(
field["poCode"] = info.poCode ?: "N/A"
field["itemType"] = info.itemType ?: "N/A"
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["expiryDate"] = info.expiryDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: ""
field["lotNo"] = info.lotNo ?: "N/A"
@@ -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()


Laden…
Annuleren
Opslaan