Bläddra i källkod

Add consolidate pick order code

production_process
cyril.tsui 2 månader sedan
förälder
incheckning
b538ee2b16
4 ändrade filer med 32 tillägg och 9 borttagningar
  1. +2
    -0
      src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickOrderRepository.kt
  2. +3
    -3
      src/main/java/com/ffii/fpsms/modules/pickOrder/entity/projection/PickOrderInfo.kt
  3. +19
    -6
      src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt
  4. +8
    -0
      src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt

+ 2
- 0
src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickOrderRepository.kt Visa fil

@@ -48,4 +48,6 @@ interface PickOrderRepository : AbstractRepository<PickOrder, Long> {
""")
fun findLatestConsoCodeByPrefix(prefix: String): String?
fun findAllByIdIn(id: List<Serializable>): List<PickOrder>

fun findPickOrderInfoByIdIn(id: List<Serializable>): List<PickOrderInfo>
}

+ 3
- 3
src/main/java/com/ffii/fpsms/modules/pickOrder/entity/projection/PickOrderInfo.kt Visa fil

@@ -3,7 +3,7 @@ package com.ffii.fpsms.modules.pickOrder.entity.projection
import org.springframework.beans.factory.annotation.Value
import java.time.LocalDateTime

data class PickOrderItemInfo(
data class PickOrderLineInfo(
val name: String?,
val type: String?,
)
@@ -19,6 +19,6 @@ interface PickOrderInfo {

@get:Value("#{target.releasedBy?.name}")
val releasedBy: String?
@get:Value("#{target.pickOrderLines?.size() > 0 ? target.pickOrderLines.![new com.ffii.fpsms.modules.pickOrder.entity.projection.PickOrderItemInfo(item.name, item.type)] : null}")
val items: List<PickOrderItemInfo?>?
@get:Value("#{target.pickOrderLines?.size() > 0 ? target.pickOrderLines.![new com.ffii.fpsms.modules.pickOrder.entity.projection.PickOrderLineInfo(item.name, item.type)] : null}")
val items: List<PickOrderLineInfo?>?
}

+ 19
- 6
src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt Visa fil

@@ -1,12 +1,16 @@
package com.ffii.fpsms.modules.pickOrder.service

import com.ffii.core.response.RecordsRes
import com.ffii.fpsms.modules.pickOrder.entity.PickOrder
import com.ffii.fpsms.modules.pickOrder.entity.PickOrderRepository
import com.ffii.fpsms.modules.pickOrder.entity.projection.PickOrderInfo
import com.ffii.fpsms.modules.pickOrder.entity.projection.PickOrderLineInfo
import com.ffii.fpsms.modules.pickOrder.web.models.ConsoPickOrderRequest
import com.ffii.fpsms.modules.pickOrder.web.models.SearchPickOrderRequest
import org.springframework.context.annotation.Lazy
import org.springframework.data.domain.PageRequest
import org.springframework.stereotype.Service
import java.io.Serializable
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
@@ -49,11 +53,12 @@ open class PickOrderService(
// Consolidating Pick Orders
open fun assignConsoCode(): String {
val suffixFormat = "%03d"
val pattern = "YYYYMMDD"
val pattern = "yyyyMMdd"
val formatter = DateTimeFormatter.ofPattern(pattern)

val prefix = "PICK"
val midfix = LocalDate.now().format(formatter)
println(midfix)
val suffix = String.format(suffixFormat, 1)

val latestConsoCode = pickOrderRepository.findLatestConsoCodeByPrefix("${prefix}-${midfix}")
@@ -68,9 +73,17 @@ open class PickOrderService(
return listOf<String>(prefix, midfix, suffix).joinToString("-")
}

// open fun consoPickOrders(request: ConsoPickOrderRequest) {
// val assignConsoCode = assignConsoCode()
// val pickOrders = pickOrderRepository.findAllByIdIn(request.ids)
// pickOrders.
// }
open fun consoPickOrders(request: ConsoPickOrderRequest): List<PickOrderInfo> {
val newConsoCode = assignConsoCode()
val pickOrders = pickOrderRepository.findAllByIdIn(request.ids)
val pickOrderInfos = mutableListOf<PickOrderInfo>()
pickOrders.forEach {
it.consoCode = newConsoCode
}

val updatedPickOrders = pickOrderRepository.saveAll(pickOrders)
val updatedPickOrderInfos = updatedPickOrders.map { po -> po.id as Serializable }.let { pickOrderRepository.findPickOrderInfoByIdIn(it) }

return updatedPickOrderInfos
}
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt Visa fil

@@ -4,6 +4,7 @@ import com.ffii.core.response.RecordsRes
import com.ffii.fpsms.modules.pickOrder.entity.PickOrderRepository
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.SearchPickOrderRequest
import jakarta.validation.Valid
import org.springframework.data.domain.Page
@@ -12,6 +13,7 @@ import org.springframework.data.domain.Pageable
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.ModelAttribute
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
@@ -34,4 +36,10 @@ class PickOrderController(
fun allPickOrdersByPage(@ModelAttribute request: SearchPickOrderRequest): RecordsRes<PickOrderInfo> {
return pickOrderService.allPickOrdersByPage(request);
}

// Consolidating Pick Orders
@PostMapping("/conso")
fun consoPickOrders(@Valid @RequestBody request: ConsoPickOrderRequest): List<PickOrderInfo> {
return pickOrderService.consoPickOrders(request)
}
}

Laddar…
Avbryt
Spara