瀏覽代碼

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 findPickOrderInfoByIdIn(id: List<Serializable>): List<PickOrderInfo>


fun findAllByConsoCode(consoCode: String): List<PickOrder> 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 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)
} }
} }

+ 1
- 1
src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt 查看文件

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


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




Loading…
取消
儲存