Переглянути джерело

update release pick order functions

master
cyril.tsui 2 місяці тому
джерело
коміт
fcfcb1fc1f
3 змінених файлів з 20 додано та 10 видалено
  1. +2
    -0
      src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickOrderRepository.kt
  2. +17
    -9
      src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt
  3. +1
    -1
      src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt

+ 2
- 0
src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickOrderRepository.kt Переглянути файл

@@ -55,4 +55,6 @@ interface PickOrderRepository : AbstractRepository<PickOrder, Long> {
fun findPickOrderInfoByIdIn(id: List<Serializable>): List<PickOrderInfo>

fun findAllByConsoCode(consoCode: String): List<PickOrder>

fun findAllByConsoCodeAndStatus(consoCode: String, status: PickOrderStatus): List<PickOrder>
}

+ 17
- 9
src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt Переглянути файл

@@ -14,6 +14,7 @@ import com.ffii.fpsms.modules.stock.web.model.SuggestedPickLotForPoRequest
import com.ffii.fpsms.modules.user.service.UserService
import org.springframework.data.domain.PageRequest
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import java.io.Serializable
import java.math.BigDecimal
import java.time.LocalDate
@@ -100,6 +101,7 @@ open class PickOrderService(
val pickOrders = pickOrderRepository.findAllByIdInAndStatus(request.ids, PickOrderStatus.CONSOLIDATED)
pickOrders.forEach {
it.consoCode = null
it.status = PickOrderStatus.PENDING
}

val updatedPickOrders = pickOrderRepository.saveAll(pickOrders)
@@ -117,9 +119,9 @@ open class PickOrderService(
val pos = pickOrderRepository.findAllByConsoCode(consoCode)

// 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
val finalPos = pos.map { po ->
@@ -135,10 +137,10 @@ open class PickOrderService(
val uom = pol.uom

// 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
val finalSuggestion = suggestion.map {
@@ -240,7 +242,7 @@ open class PickOrderService(

open fun releaseConsoPickOrderInfo(request: ReleaseConsoPickOrderRequest): ReleasePickOrderInfoResponse {
val zero = BigDecimal.ZERO
val pos = pickOrderRepository.findAllByConsoCode(request.consoCode)
val pos = pickOrderRepository.findAllByConsoCodeAndStatus(request.consoCode, PickOrderStatus.CONSOLIDATED)
val requiredItems = pos
.flatMap { it.pickOrderLines }
.groupBy { it.item?.id }
@@ -271,10 +273,11 @@ open class PickOrderService(
)
}

@Transactional(rollbackFor = [java.lang.Exception::class])
open fun releaseConsoPickOrderAction(request: ReleaseConsoPickOrderRequest) {
val releasedBy = SecurityUtils.getUser().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 {
it.apply {
this.releasedBy = releasedBy
@@ -282,6 +285,11 @@ open class PickOrderService(
status = PickOrderStatus.RELEASED
}
}

val suggestions =
suggestedPickLotService.suggestionForPickOrders(SuggestedPickLotForPoRequest(pickOrders = pos))

suggestedPickLotService.saveAll(suggestions.suggestedList)
pickOrderRepository.saveAll(pos)
}
}

+ 1
- 1
src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt Переглянути файл

@@ -54,7 +54,7 @@ class PickOrderController(
}

@GetMapping("/releaseConso")
fun releaseConsoPickOrderInfo(@Valid @RequestBody request: ReleaseConsoPickOrderRequest): ReleasePickOrderInfoResponse {
fun releaseConsoPickOrderInfo(@Valid @RequestParam request: ReleaseConsoPickOrderRequest): ReleasePickOrderInfoResponse {
return pickOrderService.releaseConsoPickOrderInfo(request);
}



Завантаження…
Відмінити
Зберегти