|
@@ -14,6 +14,7 @@ import com.ffii.fpsms.modules.stock.web.model.SuggestedPickLotForPoRequest |
|
|
import com.ffii.fpsms.modules.user.service.UserService |
|
|
import com.ffii.fpsms.modules.user.service.UserService |
|
|
import org.springframework.data.domain.PageRequest |
|
|
import org.springframework.data.domain.PageRequest |
|
|
import org.springframework.stereotype.Service |
|
|
import org.springframework.stereotype.Service |
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional |
|
|
import java.io.Serializable |
|
|
import java.io.Serializable |
|
|
import java.math.BigDecimal |
|
|
import java.math.BigDecimal |
|
|
import java.time.LocalDate |
|
|
import java.time.LocalDate |
|
@@ -100,6 +101,7 @@ open class PickOrderService( |
|
|
val pickOrders = pickOrderRepository.findAllByIdInAndStatus(request.ids, PickOrderStatus.CONSOLIDATED) |
|
|
val pickOrders = pickOrderRepository.findAllByIdInAndStatus(request.ids, PickOrderStatus.CONSOLIDATED) |
|
|
pickOrders.forEach { |
|
|
pickOrders.forEach { |
|
|
it.consoCode = null |
|
|
it.consoCode = null |
|
|
|
|
|
it.status = PickOrderStatus.PENDING |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
val updatedPickOrders = pickOrderRepository.saveAll(pickOrders) |
|
|
val updatedPickOrders = pickOrderRepository.saveAll(pickOrders) |
|
@@ -117,9 +119,9 @@ open class PickOrderService( |
|
|
val pos = pickOrderRepository.findAllByConsoCode(consoCode) |
|
|
val pos = pickOrderRepository.findAllByConsoCode(consoCode) |
|
|
|
|
|
|
|
|
// Suggestions for Pick Order |
|
|
// Suggestions for Pick Order |
|
|
val suggestions = |
|
|
|
|
|
suggestedPickLotService.suggestionForPickOrders(SuggestedPickLotForPoRequest(pickOrders = pos)) |
|
|
|
|
|
val suggestedList = suggestions.suggestedList |
|
|
|
|
|
|
|
|
// val suggestions = |
|
|
|
|
|
// suggestedPickLotService.suggestionForPickOrders(SuggestedPickLotForPoRequest(pickOrders = pos)) |
|
|
|
|
|
// val suggestedList = suggestions.suggestedList |
|
|
|
|
|
|
|
|
// Mapping: PickOrder -> PickOrderInConso |
|
|
// Mapping: PickOrder -> PickOrderInConso |
|
|
val finalPos = pos.map { po -> |
|
|
val finalPos = pos.map { po -> |
|
@@ -135,10 +137,10 @@ open class PickOrderService( |
|
|
val uom = pol.uom |
|
|
val uom = pol.uom |
|
|
|
|
|
|
|
|
// Check If already have suggestion |
|
|
// Check If already have suggestion |
|
|
var suggestion = pol.suggestedPickLots |
|
|
|
|
|
if (suggestion.isEmpty()) { |
|
|
|
|
|
suggestion = suggestedList.filter { it.pickOrderLine?.id == pol.id }.toMutableList() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
val suggestion = pol.suggestedPickLots |
|
|
|
|
|
// if (suggestion.isEmpty()) { |
|
|
|
|
|
// suggestion = suggestedList.filter { it.pickOrderLine?.id == pol.id }.toMutableList() |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
// Mapping: SuggestedPickLot -> SuggestPickLotInConso |
|
|
// Mapping: SuggestedPickLot -> SuggestPickLotInConso |
|
|
val finalSuggestion = suggestion.map { |
|
|
val finalSuggestion = suggestion.map { |
|
@@ -240,7 +242,7 @@ open class PickOrderService( |
|
|
|
|
|
|
|
|
open fun releaseConsoPickOrderInfo(request: ReleaseConsoPickOrderRequest): ReleasePickOrderInfoResponse { |
|
|
open fun releaseConsoPickOrderInfo(request: ReleaseConsoPickOrderRequest): ReleasePickOrderInfoResponse { |
|
|
val zero = BigDecimal.ZERO |
|
|
val zero = BigDecimal.ZERO |
|
|
val pos = pickOrderRepository.findAllByConsoCode(request.consoCode) |
|
|
|
|
|
|
|
|
val pos = pickOrderRepository.findAllByConsoCodeAndStatus(request.consoCode, PickOrderStatus.CONSOLIDATED) |
|
|
val requiredItems = pos |
|
|
val requiredItems = pos |
|
|
.flatMap { it.pickOrderLines } |
|
|
.flatMap { it.pickOrderLines } |
|
|
.groupBy { it.item?.id } |
|
|
.groupBy { it.item?.id } |
|
@@ -271,10 +273,11 @@ open class PickOrderService( |
|
|
) |
|
|
) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = [java.lang.Exception::class]) |
|
|
open fun releaseConsoPickOrderAction(request: ReleaseConsoPickOrderRequest) { |
|
|
open fun releaseConsoPickOrderAction(request: ReleaseConsoPickOrderRequest) { |
|
|
val releasedBy = SecurityUtils.getUser().getOrNull() |
|
|
val releasedBy = SecurityUtils.getUser().getOrNull() |
|
|
val assignTo = request.assignTo?.let { userService.find(it) }?.getOrNull() |
|
|
val assignTo = request.assignTo?.let { userService.find(it) }?.getOrNull() |
|
|
val pos = pickOrderRepository.findAllByConsoCode(request.consoCode) |
|
|
|
|
|
|
|
|
val pos = pickOrderRepository.findAllByConsoCodeAndStatus(request.consoCode, PickOrderStatus.CONSOLIDATED) |
|
|
pos.forEach { |
|
|
pos.forEach { |
|
|
it.apply { |
|
|
it.apply { |
|
|
this.releasedBy = releasedBy |
|
|
this.releasedBy = releasedBy |
|
@@ -282,6 +285,11 @@ open class PickOrderService( |
|
|
status = PickOrderStatus.RELEASED |
|
|
status = PickOrderStatus.RELEASED |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
val suggestions = |
|
|
|
|
|
suggestedPickLotService.suggestionForPickOrders(SuggestedPickLotForPoRequest(pickOrders = pos)) |
|
|
|
|
|
|
|
|
|
|
|
suggestedPickLotService.saveAll(suggestions.suggestedList) |
|
|
pickOrderRepository.saveAll(pos) |
|
|
pickOrderRepository.saveAll(pos) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |