|
|
|
@@ -695,7 +695,7 @@ val sufficientStockQty = bomMaterials |
|
|
|
// ✅ 获取 req UOM - 对于 reqQty,使用 bomMaterial.uom(BOM 的 UOM) |
|
|
|
// ✅ 对于 stockReqQty,使用 line.uom(库存单位,已按比例调整) |
|
|
|
val reqUomId = bomMaterial?.uom?.id ?: line.uom?.id ?: 0L // BOM 的 UOM |
|
|
|
val stockReqUomId = line.uom?.id ?: bomMaterial?.salesUnit?.id ?: 0L // 库存单位 UOM |
|
|
|
val stockReqUomId = line.uom?.id ?: bomMaterial?.stockUnit?.toLong() ?: 0L // 库存单位 UOM |
|
|
|
|
|
|
|
val reqUom = reqUomId.takeIf { it > 0 }?.let { uomConversionRepository.findByIdAndDeletedFalse(it) } |
|
|
|
val uomName = reqUom?.udfudesc |
|
|
|
@@ -709,7 +709,7 @@ val sufficientStockQty = bomMaterials |
|
|
|
|
|
|
|
println("=== Quantity Calculation for Item: ${line.item?.code} (id=$itemId) ===") |
|
|
|
println("JobOrderBomMaterial reqQty (adjusted, stock unit): $actualReqQty in UOM: ${stockReqUom?.udfudesc} (id=$stockReqUomId)") |
|
|
|
println("BomMaterial qty (base): ${bomMaterial?.qty}, saleQty (base): ${bomMaterial?.saleQty}") |
|
|
|
println("BomMaterial qty (base): ${bomMaterial?.qty}, stockQty (base): ${bomMaterial?.stockQty}") |
|
|
|
println("Original stockQty: $stockQtyValue in UOM: $stockUomNameForStock (id=$stockUomId)") |
|
|
|
|
|
|
|
val jobOrder = jobOrderRepository.findById(joid).orElse(null) |
|
|
|
@@ -724,8 +724,8 @@ val sufficientStockQty = bomMaterials |
|
|
|
// ✅ reqQty 使用 bomMaterial.qty * proportion(BOM 单位) |
|
|
|
val reqQtyInBomUnit = (bomMaterial?.qty?.times(proportion) ?: BigDecimal.ZERO) |
|
|
|
|
|
|
|
// ✅ stockReqQty 使用 bomMaterial.saleQty * proportion(库存单位,已按比例调整) |
|
|
|
val stockReqQtyInStockUnit = (bomMaterial?.saleQty?.times(proportion) ?: BigDecimal.ZERO) |
|
|
|
// ✅ stockReqQty 使用 bomMaterial.stockQty * proportion(库存单位,已按比例调整) |
|
|
|
val stockReqQtyInStockUnit = (bomMaterial?.stockQty?.times(proportion) ?: BigDecimal.ZERO) |
|
|
|
|
|
|
|
// ✅ Convert reqQty (BOM unit) to base unit |
|
|
|
val baseReqQtyResult = if (reqUomId > 0 && reqQtyInBomUnit > BigDecimal.ZERO) { |
|
|
|
@@ -851,7 +851,7 @@ val sufficientStockQty = bomMaterials |
|
|
|
baseReqQty = baseReqQty, |
|
|
|
|
|
|
|
stockQty = stockQty, |
|
|
|
// ✅ stockReqQty:使用 bomMaterial.saleQty * proportion(库存单位,已按比例调整) |
|
|
|
// ✅ stockReqQty:使用 bomMaterial.stockQty * proportion(库存单位,已按比例调整) |
|
|
|
stockReqQty = if (stockReqUomId in decimalUomIds) { |
|
|
|
stockReqQtyInStockUnit.toDouble() |
|
|
|
} else { |
|
|
|
|