소스 검색

update proportion/ratio

master
cyril.tsui 3 달 전
부모
커밋
cebda2dbb4
7개의 변경된 파일11개의 추가작업 그리고 9개의 파일을 삭제
  1. +1
    -1
      src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderBomMaterialService.kt
  2. +2
    -1
      src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleLineRepository.kt
  3. +2
    -1
      src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleRepository.kt
  4. +3
    -3
      src/main/java/com/ffii/fpsms/modules/master/service/ProductionScheduleService.kt
  5. +1
    -1
      src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt
  6. +1
    -1
      src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt
  7. +1
    -1
      src/main/java/com/ffii/fpsms/modules/stock/service/StockOutLineService.kt

+ 1
- 1
src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderBomMaterialService.kt 파일 보기

@@ -24,7 +24,7 @@ open class JobOrderBomMaterialService(
open fun createJobOrderBomMaterialRequests(joId: Long): List<CreateJobOrderBomMaterialRequest> {
val zero = BigDecimal.ZERO
val jo = jobOrderRepository.findById(joId).getOrNull() ?: throw NoSuchElementException()
val proportion = (jo.reqQty ?: zero).divide(jo.bom?.outputQty ?: BigDecimal.ONE, 5, RoundingMode.HALF_UP)
val proportion = BigDecimal.ONE //(jo.reqQty ?: zero).divide(jo.bom?.outputQty ?: BigDecimal.ONE, 5, RoundingMode.HALF_UP)

val jobmRequests = jo.bom?.bomMaterials?.map { bm ->
val salesUnit = bm.item?.id?.let { itemUomService.findSalesUnitByItemId(it) }


+ 2
- 1
src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleLineRepository.kt 파일 보기

@@ -14,7 +14,8 @@ interface ProductionScheduleLineRepository : AbstractRepository<ProductionSchedu
with prod_prop as (
select
psl.id as pslId,
round(coalesce(psl.prodQty, 0) / coalesce(b.outputQty, 1), 5) as proportion
-- round(coalesce(psl.prodQty, 0) / coalesce(b.outputQty, 1), 5) as proportion
1 as proportion
from production_schedule_line psl
left join bom b on b.itemId = psl.itemId
where psl.id = :id and b.id is not null


+ 2
- 1
src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleRepository.kt 파일 보기

@@ -117,7 +117,8 @@ interface ProductionScheduleRepository : AbstractRepository<ProductionSchedule,
with prod_prop as (
select
psl.id as pslId,
round(coalesce(psl.prodQty, 0) / coalesce(b.outputQty, 1), 5) as proportion
-- round(coalesce(psl.prodQty, 0) / coalesce(b.outputQty, 1), 5) as proportion
1 as proportion
from production_schedule ps
left join production_schedule_line psl on psl.prodScheduleId = ps.id
left join bom b on b.itemId = psl.itemId


+ 3
- 3
src/main/java/com/ffii/fpsms/modules/master/service/ProductionScheduleService.kt 파일 보기

@@ -143,7 +143,7 @@ open class ProductionScheduleService(
// BigDecimal.ONE
// }

val proportion = BigDecimal(line.prodQty).divide(bm.bom?.outputQty ?: BigDecimal.ONE, 5, RoundingMode.HALF_UP)
val proportion = BigDecimal.ONE // BigDecimal(line.prodQty).divide(bm.bom?.outputQty ?: BigDecimal.ONE, 5, RoundingMode.HALF_UP)
val demandQty = bm.qty?.times(proportion) ?: zero
val saleUnit = bm.item?.id?.let { itemUomService.findSalesUnitByItemId(it) }

@@ -230,7 +230,7 @@ open class ProductionScheduleService(
// BigDecimal.ONE
// }

val proportion = BigDecimal(line.prodQty).divide(bm.bom?.outputQty ?: BigDecimal.ONE, 5, RoundingMode.HALF_UP)
val proportion = BigDecimal.ONE //BigDecimal(line.prodQty).divide(bm.bom?.outputQty ?: BigDecimal.ONE, 5, RoundingMode.HALF_UP)
val demandQty = bm.qty?.times(proportion) ?: zero
val saleUnit = bm.item?.id?.let { itemUomService.findSalesUnitByItemId(it) }

@@ -363,7 +363,7 @@ open class ProductionScheduleService(
val prodScheduleLine = request.id.let { productionScheduleLineRepository.findById(it).getOrNull() } ?: throw NoSuchElementException()
val bom = prodScheduleLine.item.id?.let { bomService.findByItemId(it) }
val approver = SecurityUtils.getUser().getOrNull()
val proportion = request.demandQty.divide(bom?.outputQty ?: BigDecimal.ONE, 5, RoundingMode.HALF_UP)
val proportion = BigDecimal.ONE // request.demandQty.divide(bom?.outputQty ?: BigDecimal.ONE, 5, RoundingMode.HALF_UP)
val isSameQty = request.demandQty.equals(prodScheduleLine.prodQty)

// Update Prod Schedule Type


+ 1
- 1
src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt 파일 보기

@@ -445,7 +445,7 @@ open class PickOrderService(
val salesUnit = inventoryLotLine?.inventoryLot?.item?.id?.let { _itemId ->
itemUomService.findSalesUnitByItemId(_itemId)
}
val ratio = (salesUnit?.ratioN ?: zero).divide(salesUnit?.ratioD ?: one)
val ratio = BigDecimal.ONE //(salesUnit?.ratioN ?: zero).divide(salesUnit?.ratioD ?: one)

val remainingQty = (inventoryLotLine?.inQty ?: zero)
.minus(inventoryLotLine?.outQty ?: zero)


+ 1
- 1
src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt 파일 보기

@@ -373,7 +373,7 @@ open class StockInLineService(
val purchaseItemUom = itemUomRespository.findByItemIdAndPurchaseUnitIsTrueAndDeletedIsFalse(request.itemId)
val stockItemUom = itemUomRespository.findByItemIdAndStockUnitIsTrueAndDeletedIsFalse(request.itemId)
val ratio = if (stockItemUom != null && purchaseItemUom != null) {
(purchaseItemUom.ratioN!! / purchaseItemUom.ratioD!!) / (stockItemUom.ratioN!! / stockItemUom.ratioD!!)
BigDecimal.ONE // (purchaseItemUom.ratioN!! / purchaseItemUom.ratioD!!) / (stockItemUom.ratioN!! / stockItemUom.ratioD!!)
} else {
BigDecimal.ONE
}


+ 1
- 1
src/main/java/com/ffii/fpsms/modules/stock/service/StockOutLineService.kt 파일 보기

@@ -142,7 +142,7 @@ fun handleQc(stockOutLine: StockOutLine, request: UpdateStockOutLineRequest): Li
val one = BigDecimal.ONE
val targetLotLine = inventoryLotLineRepository.findById(request.inventoryLotLineId!!).orElseThrow()
val salesUnit = inventoryLotLine?.inventoryLot?.item?.id?.let {_itemId -> itemUomRespository.findByItemIdAndSalesUnitIsTrueAndDeletedIsFalse(_itemId) }
val ratio = (salesUnit?.ratioN ?: zero).divide(salesUnit?.ratioD ?: one).toDouble()
val ratio = 1.0 //(salesUnit?.ratioN ?: zero).divide(salesUnit?.ratioD ?: one).toDouble()
val targetLotLineEntry = targetLotLine.apply {

this.outQty = (this.outQty?: BigDecimal.ZERO) + (request.qty.div(ratio)).toBigDecimal()


불러오는 중...
취소
저장