Explorar el Código

add release pick order button

master
cyril.tsui hace 2 meses
padre
commit
8e9559ffad
Se han modificado 4 ficheros con 38 adiciones y 12 borrados
  1. +0
    -1
      src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickOrder.kt
  2. +2
    -2
      src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderEnumConverter.kt
  3. +30
    -9
      src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt
  4. +6
    -0
      src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt

+ 0
- 1
src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickOrder.kt Ver fichero

@@ -43,7 +43,6 @@ open class PickOrder: BaseEntity<Long>() {
@Column(name = "completeDate")
open var completeDate: LocalDateTime? = null

@Size(max = 30)
@Convert(converter = PickOrderTypeConverter::class)
@Column(name = "type", length = 30)
open var type: PickOrderType? = null


+ 2
- 2
src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderEnumConverter.kt Ver fichero

@@ -20,8 +20,8 @@ class PickOrderStatusConverter : AttributeConverter<PickOrderStatus, String>{
// Pick Order Type
@Converter(autoApply = true)
class PickOrderTypeConverter : AttributeConverter<PickOrderType, String>{
override fun convertToDatabaseColumn(status: PickOrderType?): String? {
return status?.value
override fun convertToDatabaseColumn(type: PickOrderType?): String? {
return type?.value
}

override fun convertToEntityAttribute(value: String?): PickOrderType? {


+ 30
- 9
src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt Ver fichero

@@ -1,6 +1,7 @@
package com.ffii.fpsms.modules.pickOrder.service

import com.ffii.core.response.RecordsRes
import com.ffii.fpsms.modules.common.SecurityUtils
import com.ffii.fpsms.modules.master.web.models.MessageResponse
import com.ffii.fpsms.modules.pickOrder.entity.PickOrder
import com.ffii.fpsms.modules.pickOrder.entity.PickOrderRepository
@@ -11,6 +12,7 @@ import com.ffii.fpsms.modules.pickOrder.web.models.*
import com.ffii.fpsms.modules.stock.service.StockOutLineService
import com.ffii.fpsms.modules.stock.service.SuggestedPickLotService
import com.ffii.fpsms.modules.stock.web.model.SuggestedPickLotForPoRequest
import com.ffii.fpsms.modules.user.service.UserService
import org.springframework.context.annotation.Lazy
import org.springframework.data.domain.PageRequest
import org.springframework.stereotype.Service
@@ -19,12 +21,14 @@ import java.math.BigDecimal
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import kotlin.jvm.optionals.getOrNull

@Service
open class PickOrderService(
val pickOrderRepository: PickOrderRepository,
val stockOutLineService: StockOutLineService,
val suggestedPickLotService: SuggestedPickLotService,
val userService: UserService,
) {
open fun localDateTimeParse(dateTime: String?, pattern: String? = "YYYY-MM-DD hh:mm:ss"): LocalDateTime? {
try {
@@ -115,7 +119,8 @@ open class PickOrderService(
val pos = pickOrderRepository.findAllByConsoCode(consoCode)

// Suggestions for Pick Order
val suggestions = suggestedPickLotService.suggestionForPickOrders(SuggestedPickLotForPoRequest(pickOrders = pos))
val suggestions =
suggestedPickLotService.suggestionForPickOrders(SuggestedPickLotForPoRequest(pickOrders = pos))
val suggestedList = suggestions.suggestedList

// Mapping: PickOrder -> PickOrderInConso
@@ -202,16 +207,16 @@ open class PickOrderService(
val finalItems = finalPos
.flatMap { it.pickOrderLines }
.groupBy { it.item.id }
.map { (_itemId, _line) ->
.map { (_itemId, _line) ->
val itemSuggestions = _line
.flatMap { it.suggestPickLots }
.groupBy { it.inventoryLotLine.id to it.pickSuggested }
.map{ (_key, _lot) ->
.map { (_key, _lot) ->
SuggestPickLotInConso(
id = _key.first,
type = _lot.first().type,
inventoryLotLine = _lot.first().inventoryLotLine,
qty = _lot.fold(zero) { sum, item -> sum + (item.qty ?: zero)},
qty = _lot.fold(zero) { sum, item -> sum + (item.qty ?: zero) },
pickSuggested = _key.second
)
}
@@ -220,7 +225,7 @@ open class PickOrderService(
id = _line.first().item.id,
code = _line.first().item.code,
name = _line.first().item.name,
qty = _line.fold(zero) { sum, item -> sum + (item.qty ?: zero)},
qty = _line.fold(zero) { sum, item -> sum + (item.qty ?: zero) },
suggestPickLots = itemSuggestions,
actualPickLots = mutableListOf()
)
@@ -235,11 +240,27 @@ open class PickOrderService(
return response
}

// open fun releaseConsoPickOrder(request: ReleaseConsoPickOrderRequest): MessageResponse {
// val pos = pickOrderRepository.findAllByConsoCode(request.consoCode)
open fun releaseConsoPickOrderInfo() {

}

open fun releaseConsoPickOrderAction(request: ReleaseConsoPickOrderRequest) {
val releasedBy = SecurityUtils.getUser().getOrNull()
val assignTo = request.assignTo?.let { userService.find(it) }?.getOrNull()
println("123")
val pos = pickOrderRepository.findAllByConsoCode(request.consoCode)
println("456")
pos.forEach {
it.apply {
this.releasedBy = releasedBy
this.assignTo = assignTo
status = PickOrderStatus.RELEASED
}
}
println(pos[0].releasedBy?.id)
pickOrderRepository.saveAll(pos)
// val suggestedPickLots = suggestedPickLotService.convertRequestsToEntities(request.suggestedPickLots)
//
// suggestedPickLotService.saveAll(suggestedPickLots)
// // TODO: Add Response
// }
}
}

+ 6
- 0
src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt Ver fichero

@@ -6,6 +6,7 @@ import com.ffii.fpsms.modules.pickOrder.entity.projection.PickOrderInfo
import com.ffii.fpsms.modules.pickOrder.service.PickOrderService
import com.ffii.fpsms.modules.pickOrder.web.models.ConsoPickOrderRequest
import com.ffii.fpsms.modules.pickOrder.web.models.ConsoPickOrderResponse
import com.ffii.fpsms.modules.pickOrder.web.models.ReleaseConsoPickOrderRequest
import com.ffii.fpsms.modules.pickOrder.web.models.SearchPickOrderRequest
import jakarta.validation.Valid
import org.springframework.data.domain.Page
@@ -54,4 +55,9 @@ class PickOrderController(
fun consoPickOrderDetail(@PathVariable consoCode: String): ConsoPickOrderResponse {
return pickOrderService.consoPickOrderDetail(consoCode);
}

@PostMapping("/releaseConso")
fun releaseConsoPickOrders(@Valid @RequestBody request: ReleaseConsoPickOrderRequest) {
pickOrderService.releaseConsoPickOrderAction(request)
}
}

Cargando…
Cancelar
Guardar