diff --git a/src/main/java/com/ffii/fpsms/modules/bag/service/bagService.kt b/src/main/java/com/ffii/fpsms/modules/bag/service/bagService.kt index 4ae1cc6..29b7ea8 100644 --- a/src/main/java/com/ffii/fpsms/modules/bag/service/bagService.kt +++ b/src/main/java/com/ffii/fpsms/modules/bag/service/bagService.kt @@ -15,6 +15,8 @@ import java.time.LocalDateTime import java.time.LocalDate import com.ffii.fpsms.modules.jobOrder.entity.JobOrderRepository import com.ffii.fpsms.modules.productProcess.entity.ProductProcessRepository +import com.ffii.fpsms.modules.master.entity.ItemUomRespository +import java.math.BigDecimal @Service open class BagService( private val bagRepository: BagRepository, @@ -22,20 +24,34 @@ open class BagService( private val joBagConsumptionRepository: JoBagConsumptionRepository, private val inventoryLotRepository: InventoryLotRepository, private val jobOrderRepository: JobOrderRepository, - private val productProcessRepository: ProductProcessRepository + private val productProcessRepository: ProductProcessRepository, + private val itemUomRepository: ItemUomRespository, ) { open fun createBagLotLinesByBagId(request: CreateBagLotLineRequest): MessageResponse { val bag = bagRepository.findById(request.bagId).orElse(null) val lot = inventoryLotRepository.findByLotNoAndItemId(request.lotNo, request.itemId) + val BaseUnitOfMeasure= itemUomRepository.findByItemIdAndStockUnitIsTrueAndDeletedIsFalse(request.itemId) + val baseRatioN = BaseUnitOfMeasure?.ratioN ?: BigDecimal.ONE + println("baseRatioN: $baseRatioN") + val baseRatioD = BaseUnitOfMeasure?.ratioD ?: BigDecimal.ONE + println("baseRatioD: $baseRatioD") val bagLotLine = BagLotLine().apply { this.bagId = bag?.id this.lotId = lot?.id this.lotNo = lot?.lotNo - this.startQty = request.stockQty + this.startQty = request.stockQty.toBigDecimal() + .multiply(baseRatioN) + .divide(baseRatioD) + .toInt() + println("startQty: $startQty") this.consumedQty = 0 this.stockOutLineId = request.stockOutLineId this.scrapQty = 0 - this.balanceQty = request.stockQty + this.balanceQty = request.stockQty.toBigDecimal() + .multiply(baseRatioN) + .divide(baseRatioD) + .toInt() + println("balanceQty: $balanceQty") } bagLotLineRepository.save(bagLotLine) bag.takenBagBalance = (bag.takenBagBalance ?: 0) + (bagLotLine.balanceQty ?: 0)