Преглед на файлове

Update filtering pick order status

production_process
cyril.tsui преди 2 месеца
родител
ревизия
ea509be7c7
променени са 8 файла, в които са добавени 97 реда и са изтрити 5 реда
  1. +4
    -2
      src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickOrder.kt
  2. +4
    -1
      src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickOrderRepository.kt
  3. +13
    -0
      src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderEnum.kt
  4. +32
    -0
      src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderEnumConverter.kt
  5. +8
    -0
      src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderLineEnum.kt
  6. +17
    -0
      src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderLineEnumConverter.kt
  7. +14
    -2
      src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt
  8. +5
    -0
      src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt

+ 4
- 2
src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickOrder.kt Целия файл

@@ -5,6 +5,8 @@ import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.deliveryOrder.entity.DeliveryOrder
import com.ffii.fpsms.modules.jobOrder.entity.JobOrder
import com.ffii.fpsms.modules.master.entity.BomMaterial
import com.ffii.fpsms.modules.pickOrder.enums.PickOrderStatus
import com.ffii.fpsms.modules.pickOrder.enums.PickOrderStatusConverter
import com.ffii.fpsms.modules.user.entity.User
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
@@ -42,10 +44,10 @@ open class PickOrder: BaseEntity<Long>() {
@Column(name = "type", length = 30)
open var type: String? = null

@Size(max = 30)
@NotNull
@Convert(converter = PickOrderStatusConverter::class)
@Column(name = "status", nullable = false, length = 30)
open var status: String? = null
open var status: PickOrderStatus? = null

@ManyToOne
@JoinColumn(name = "releasedBy", referencedColumnName = "id")


+ 4
- 1
src/main/java/com/ffii/fpsms/modules/pickOrder/entity/PickOrderRepository.kt Целия файл

@@ -2,6 +2,7 @@ package com.ffii.fpsms.modules.pickOrder.entity

import com.ffii.core.support.AbstractRepository
import com.ffii.fpsms.modules.pickOrder.entity.projection.PickOrderInfo
import com.ffii.fpsms.modules.pickOrder.enums.PickOrderStatus
import com.ffii.fpsms.modules.pickOrder.web.models.SearchPickOrderRequest
import org.springframework.data.domain.Page
import org.springframework.data.domain.Pageable
@@ -47,7 +48,9 @@ interface PickOrderRepository : AbstractRepository<PickOrder, Long> {
select po.consoCode from PickOrder po where po.consoCode like :prefix% order by po.consoCode desc limit 1
""")
fun findLatestConsoCodeByPrefix(prefix: String): String?
fun findAllByIdIn(id: List<Serializable>): List<PickOrder>
fun findAllByIdInAndStatus(id: List<Serializable>, status: PickOrderStatus): List<PickOrder>

fun findAllByIdInAndConsoCodeIsNullAndStatus(id: List<Serializable>, status: PickOrderStatus): List<PickOrder>

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

+ 13
- 0
src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderEnum.kt Целия файл

@@ -0,0 +1,13 @@
package com.ffii.fpsms.modules.pickOrder.enums

enum class PickOrderStatus(val value: String) {
PENDING ("pending"),
PICKING ("picking"),
COMPLETED ("completed");
}

enum class PickOrderType(val value: String) {
MATERIAL ("material"),
JOB_ORDER ("jo"),
DELIVERY_ORDER ("do")
}

+ 32
- 0
src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderEnumConverter.kt Целия файл

@@ -0,0 +1,32 @@
package com.ffii.fpsms.modules.pickOrder.enums

import jakarta.persistence.AttributeConverter
import jakarta.persistence.Converter

// Pick Order Status
@Converter(autoApply = true)
class PickOrderStatusConverter : AttributeConverter<PickOrderStatus, String>{
override fun convertToDatabaseColumn(status: PickOrderStatus?): String? {
return status?.value
}

override fun convertToEntityAttribute(value: String?): PickOrderStatus? {
return value?.let { v ->
PickOrderStatus.entries.find { it.value == v }
}
}
}

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

override fun convertToEntityAttribute(value: String?): PickOrderType? {
return value?.let { v ->
PickOrderType.entries.find { it.value == v }
}
}
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderLineEnum.kt Целия файл

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.pickOrder.enums

enum class PickOrderLineStatus(val value: String) {
PENDING("pending"),
PICKING("picking"),
COMPLETED("completed");
}


+ 17
- 0
src/main/java/com/ffii/fpsms/modules/pickOrder/enums/PickOrderLineEnumConverter.kt Целия файл

@@ -0,0 +1,17 @@
package com.ffii.fpsms.modules.pickOrder.enums

import jakarta.persistence.AttributeConverter
import jakarta.persistence.Converter

@Converter(autoApply = true)
class PickOrderLineStatusConverter : AttributeConverter<PickOrderLineStatus, String> {
override fun convertToDatabaseColumn(status: PickOrderLineStatus?): String? {
return status?.value
}

override fun convertToEntityAttribute(value: String?): PickOrderLineStatus? {
return value?.let { v ->
PickOrderLineStatus.entries.find { it.value == v }
}
}
}

+ 14
- 2
src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt Целия файл

@@ -5,6 +5,7 @@ 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.enums.PickOrderStatus
import com.ffii.fpsms.modules.pickOrder.web.models.ConsoPickOrderRequest
import com.ffii.fpsms.modules.pickOrder.web.models.SearchPickOrderRequest
import org.springframework.context.annotation.Lazy
@@ -75,8 +76,7 @@ open class PickOrderService(

open fun consoPickOrders(request: ConsoPickOrderRequest): List<PickOrderInfo> {
val newConsoCode = assignConsoCode()
val pickOrders = pickOrderRepository.findAllByIdIn(request.ids)
val pickOrderInfos = mutableListOf<PickOrderInfo>()
val pickOrders = pickOrderRepository.findAllByIdInAndConsoCodeIsNullAndStatus(request.ids, PickOrderStatus.PENDING)
pickOrders.forEach {
it.consoCode = newConsoCode
}
@@ -86,4 +86,16 @@ open class PickOrderService(

return updatedPickOrderInfos
}

open fun deconsoPickOrders(request: ConsoPickOrderRequest): List<PickOrderInfo> {
val pickOrders = pickOrderRepository.findAllByIdInAndStatus(request.ids, PickOrderStatus.PENDING)
pickOrders.forEach {
it.consoCode = null
}

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

return updatedPickOrderInfos
}
}

+ 5
- 0
src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt Целия файл

@@ -42,4 +42,9 @@ class PickOrderController(
fun consoPickOrders(@Valid @RequestBody request: ConsoPickOrderRequest): List<PickOrderInfo> {
return pickOrderService.consoPickOrders(request)
}

@PostMapping("/deconso")
fun deconsoPickOrders(@Valid @RequestBody request: ConsoPickOrderRequest): List<PickOrderInfo> {
return pickOrderService.deconsoPickOrders(request)
}
}

Зареждане…
Отказ
Запис