diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleRepository.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleRepository.kt index 118051b..c4cfdac 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleRepository.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleRepository.kt @@ -114,7 +114,7 @@ interface ProductionScheduleRepository : AbstractRepository?, val priority: BigDecimal?, val approved: Boolean?, - val proportion: BigDecimal? + val proportion: BigDecimal?, + val uomName: String?, ) data class DetailedProdScheduleLineBomMaterial ( @@ -53,7 +54,8 @@ data class DetailedProdScheduleLineBomMaterial ( val name: String?, val type: String?, val availableQty: BigDecimal?, - val demandQty: BigDecimal? + val demandQty: BigDecimal?, + val uomName: String?, ) interface DetailedProdScheduleLineBomMaterialInterface { @@ -62,7 +64,6 @@ interface DetailedProdScheduleLineBomMaterialInterface { val name: String? val type: String? val availableQty: BigDecimal? - val demandQty: BigDecimal? } data class DetailedProdScheduleLineProdTime ( @@ -97,6 +98,7 @@ data class RoughProdScheduleLineInfoByFg( val priority: Long?, val bomMaterials: List?, val assignDate: Long?, + val uomName: String?, ) data class RoughProdScheduleLineBomMaterialInfoByFg( diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/ProductionScheduleService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/ProductionScheduleService.kt index d750d61..e0a1d78 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/ProductionScheduleService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/ProductionScheduleService.kt @@ -103,8 +103,8 @@ open class ProductionScheduleService( // } val proportion = BigDecimal(line.prodQty).divide(bm.bom?.outputQty ?: BigDecimal.ONE, 2, RoundingMode.HALF_UP) - val demandQty = bm.qty?.times(proportion) ?: zero + val saleUnit = bm.item?.id?.let { itemUomService.findSalesUnitByItemId(it) } RoughProdScheduleLineBomMaterialInfoByFg( id = bm.id, @@ -115,10 +115,11 @@ open class ProductionScheduleService( (it.onHandQty ?: zero) - (it.onHoldQty ?: zero) - (it.unavailableQty ?: zero) }, demandQty = demandQty, - uomName = bm.uomName + uomName = saleUnit?.uom?.udfudesc ) } + val saleUnit = line.item.id?.let { itemUomService.findSalesUnitByItemId(it) } RoughProdScheduleLineInfoByFg( id = line.id, code = line.item.code, @@ -133,6 +134,7 @@ open class ProductionScheduleService( priority = line.itemPriority, bomMaterials = bomMaterials, assignDate = line.assignDate, + uomName = saleUnit?.uom?.udfudesc, ) }.filter { !it.bomMaterials.isNullOrEmpty() } @@ -167,6 +169,7 @@ open class ProductionScheduleService( priority = if (infos.isNotEmpty()) infos[0].priority else null, bomMaterials = sumBomMaterials, assignDate = null, + uomName = if (infos.isNotEmpty()) infos[0].uomName else null ) } @@ -187,8 +190,8 @@ open class ProductionScheduleService( // } val proportion = BigDecimal(line.prodQty).divide(bm.bom?.outputQty ?: BigDecimal.ONE, 2, RoundingMode.HALF_UP) - val demandQty = bm.qty?.times(proportion) ?: zero + val saleUnit = bm.item?.id?.let { itemUomService.findSalesUnitByItemId(it) } RoughProdScheduleLineInfoByBomByDate( id = bm.item?.id, @@ -200,7 +203,7 @@ open class ProductionScheduleService( } ?: zero, demandQty = demandQty, assignDate = line.assignDate, - uomName = bm.uomName + uomName = saleUnit?.uom?.udfudesc ) } }