diff --git a/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt b/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt index 3bfe046..6841cfa 100644 --- a/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt +++ b/src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt @@ -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 {