소스 검색

update

master
cyril.tsui 2 달 전
부모
커밋
837b75d4e2
2개의 변경된 파일66개의 추가작업 그리고 7개의 파일을 삭제
  1. +44
    -7
      src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt
  2. +22
    -0
      src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/ConsoPickOrderResponse.kt

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

@@ -253,20 +253,56 @@ open class PickOrderService(
open fun releaseConsoPickOrderInfo(consoCode: String): ReleasePickOrderInfoResponse {
val zero = BigDecimal.ZERO
val pos = pickOrderRepository.findAllByConsoCodeAndStatus(consoCode, PickOrderStatus.CONSOLIDATED)

// Get Inventory Data
val requiredItems = pos
.flatMap { it.pickOrderLines }
.groupBy { it.item?.id }
.map { (key, value) -> key to object : CurrentInventoryItemInfo {
override val id: Long? = value[0].item?.id
override val code: String? = value[0].item?.code
override val name: String? = value[0].item?.name
override var availableQty: BigDecimal? = zero
override val requiredQty: BigDecimal = value.sumOf { it.qty ?: zero }
}} // itemId - requiredQty
.map { (key, value) ->
key to object : CurrentInventoryItemInfo {
override val id: Long? = value[0].item?.id
override val code: String? = value[0].item?.code
override val name: String? = value[0].item?.name
override var availableQty: BigDecimal? = zero
override val requiredQty: BigDecimal = value.sumOf { it.qty ?: zero }
}
} // itemId - requiredQty

val itemIds = requiredItems.mapNotNull { it.first }
// val inventories = inventoryLotLineRepository.findCurrentInventoryByItems(itemIds)
val inventories = inventoryService.allInventoriesByItemIds(itemIds)

// Pick Orders
val releasePickOrderInfos = pos
.map { po ->
val releasePickOrderLineInfos = po.pickOrderLines.map { pol ->
val inventory = inventories.find { it.itemId == pol.item?.id }

// Return
ReleasePickOrderLineInfo(
id = pol.id,
itemId = pol.item?.id,
itemCode = pol.item?.code,
itemName = pol.item?.name,
availableQty = inventory?.availableQty,
requiredQty = pol.qty,
uomCode = pol.uom?.code,
uomDesc = pol.uom?.udfudesc,
)
}

// Return
ReleasePickOrderInfo(
id = po.id,
code = po.code,
targetDate = po.targetDate,
type = po.type?.value,
status = po.status?.value,
pickOrderLines = releasePickOrderLineInfos
)
}

// Items
val currentInventoryInfos = requiredItems.map { item ->
val inventory = inventories.find { it.itemId == item.first }

@@ -280,6 +316,7 @@ open class PickOrderService(

return ReleasePickOrderInfoResponse(
consoCode = consoCode,
pickOrders = releasePickOrderInfos,
items = currentInventoryInfos,
)
}


+ 22
- 0
src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/ConsoPickOrderResponse.kt 파일 보기

@@ -7,9 +7,31 @@ import java.time.LocalDateTime
// Final Response - Release Conso Pick Order Page
data class ReleasePickOrderInfoResponse(
val consoCode: String,
val pickOrders: List<ReleasePickOrderInfo>,
val items: List<CurrentInventoryItemInfo>
)

// Components
data class ReleasePickOrderInfo(
val id: Long?,
val code: String?,
val targetDate: LocalDateTime?,
val type: String?,
val status: String?,
val pickOrderLines: List<ReleasePickOrderLineInfo>
)

data class ReleasePickOrderLineInfo(
val id: Long?,
val itemId: Long?,
val itemCode: String?,
val itemName: String?,
val availableQty: BigDecimal?,
val requiredQty: BigDecimal?,
val uomCode: String?,
val uomDesc: String?,
)

// Final Response - Conso Pick Order Detail
data class ConsoPickOrderResponse(
val consoCode: String,


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