Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

master
CANCERYS\kw093 před 6 dny
rodič
revize
fa5aa71759
4 změnil soubory, kde provedl 27 přidání a 7 odebrání
  1. +1
    -0
      src/main/java/com/ffii/fpsms/m18/model/M18MasterDataResponse.kt
  2. +10
    -2
      src/main/java/com/ffii/fpsms/m18/service/M18MasterDataService.kt
  3. +1
    -0
      src/main/java/com/ffii/fpsms/modules/master/entity/ItemUomRespository.kt
  4. +15
    -5
      src/main/java/com/ffii/fpsms/modules/master/service/ItemUomService.kt

+ 1
- 0
src/main/java/com/ffii/fpsms/m18/model/M18MasterDataResponse.kt Zobrazit soubor

@@ -35,6 +35,7 @@ data class M18ProductPrice (
val purUnit: Boolean, val purUnit: Boolean,
val pickUnit: Boolean, val pickUnit: Boolean,
val expired: Boolean, val expired: Boolean,
val endDate: Long,
val ratioN: BigDecimal, val ratioN: BigDecimal,
val ratioD: BigDecimal, val ratioD: BigDecimal,
) )


+ 10
- 2
src/main/java/com/ffii/fpsms/m18/service/M18MasterDataService.kt Zobrazit soubor

@@ -17,6 +17,9 @@ import java.math.BigDecimal
import java.time.LocalDateTime import java.time.LocalDateTime
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
import com.ffii.fpsms.m18.model.SyncResult import com.ffii.fpsms.m18.model.SyncResult
import java.time.Instant
import java.time.LocalDate
import java.time.ZoneId


@Service @Service
open class M18MasterDataService( open class M18MasterDataService(
@@ -279,7 +282,7 @@ open class M18MasterDataService(
isEgg = null, isEgg = null,
isFee = null, isFee = null,
isBag = null, isBag = null,
qcType = null,
qcType = null
) )


val savedItem = itemsService.saveItem(saveItemRequest) val savedItem = itemsService.saveItem(saveItemRequest)
@@ -298,6 +301,10 @@ open class M18MasterDataService(
// Update the item uom // Update the item uom
logger.info("Updating item uom...") logger.info("Updating item uom...")
price?.forEach { price?.forEach {
val endMillis = it.endDate
val endInstant = Instant.ofEpochMilli(endMillis)
val now = Instant.now()

val itemUomRequest = ItemUomRequest( val itemUomRequest = ItemUomRequest(
m18UomId = it.unitId, m18UomId = it.unitId,
itemId = savedItem.id, itemId = savedItem.id,
@@ -312,7 +319,8 @@ open class M18MasterDataService(
m18LastModifyDate = commonUtils.timestampToLocalDateTime(pro.lastModifyDate), m18LastModifyDate = commonUtils.timestampToLocalDateTime(pro.lastModifyDate),
ratioD = it.ratioD, ratioD = it.ratioD,
ratioN = it.ratioN, ratioN = it.ratioN,
deleted = it.expired
//deleted = it.expired
deleted = endInstant.isBefore(now)
) )


// logger.info("saved item id: ${savedItem.id}") // logger.info("saved item id: ${savedItem.id}")


+ 1
- 0
src/main/java/com/ffii/fpsms/modules/master/entity/ItemUomRespository.kt Zobrazit soubor

@@ -26,4 +26,5 @@ interface ItemUomRespository : AbstractRepository<ItemUom, Long> {
fun findByItemM18IdAndPurchaseUnitIsTrueAndDeletedIsFalse(itemM18Id: Long): ItemUom? fun findByItemM18IdAndPurchaseUnitIsTrueAndDeletedIsFalse(itemM18Id: Long): ItemUom?
fun findBaseUnitByItemIdAndStockUnitIsTrueAndDeletedIsFalse(itemId: Long): ItemUom? fun findBaseUnitByItemIdAndStockUnitIsTrueAndDeletedIsFalse(itemId: Long): ItemUom?
fun findFirstByItemIdAndUomIdAndDeletedIsFalse(itemId: Long, uomId: Long): ItemUom? fun findFirstByItemIdAndUomIdAndDeletedIsFalse(itemId: Long, uomId: Long): ItemUom?
fun findByItemIdAndUomIdAndStockUnitAndDeletedIsFalse(itemId: Long, uomId: Long, stockUnit: Boolean): ItemUom?
} }

+ 15
- 5
src/main/java/com/ffii/fpsms/modules/master/service/ItemUomService.kt Zobrazit soubor

@@ -9,6 +9,8 @@ import java.io.IOException
import java.math.BigDecimal import java.math.BigDecimal
import java.math.RoundingMode import java.math.RoundingMode
import kotlin.jvm.optionals.getOrNull import kotlin.jvm.optionals.getOrNull
import org.slf4j.Logger
import org.slf4j.LoggerFactory


@Service @Service
open class ItemUomService( open class ItemUomService(
@@ -17,6 +19,8 @@ open class ItemUomService(
val itemUomRespository: ItemUomRespository, val itemUomRespository: ItemUomRespository,
val currencyService: CurrencyService val currencyService: CurrencyService
) { ) {
val logger = org.slf4j.LoggerFactory.getLogger(this::class.java)

open fun findAllByItemsId(itemId: Long): List<ItemUom> { open fun findAllByItemsId(itemId: Long): List<ItemUom> {
return itemUomRespository.findAllByItemIdAndDeletedIsFalse(itemId); return itemUomRespository.findAllByItemIdAndDeletedIsFalse(itemId);
} }
@@ -44,6 +48,10 @@ open class ItemUomService(
return itemUomRespository.findFirstByItemIdAndUomIdAndDeletedIsFalse(itemId, uomId) return itemUomRespository.findFirstByItemIdAndUomIdAndDeletedIsFalse(itemId, uomId)
} }


open fun findByItemIdAndUomIdAndStockUnit(itemId: Long, uomId: Long, stockUnit: Boolean): ItemUom? {
return itemUomRespository.findByItemIdAndUomIdAndStockUnitAndDeletedIsFalse(itemId, uomId, stockUnit)
}

open fun findPurchaseUnitByM18ItemId(m18ItemId: Long): ItemUom? { open fun findPurchaseUnitByM18ItemId(m18ItemId: Long): ItemUom? {
return itemUomRespository.findByItemM18IdAndPurchaseUnitIsTrueAndDeletedIsFalse(m18ItemId) return itemUomRespository.findByItemM18IdAndPurchaseUnitIsTrueAndDeletedIsFalse(m18ItemId)
} }
@@ -79,7 +87,7 @@ open class ItemUomService(
} }


open fun convertQtyToStockQty(itemId: Long, uomId: Long, sourceQty: BigDecimal): BigDecimal { open fun convertQtyToStockQty(itemId: Long, uomId: Long, sourceQty: BigDecimal): BigDecimal {
val itemUom = findFirstByItemIdAndUomId(itemId, uomId)
val itemUom = findFirstByItemIdAndUomId(itemId, uomId) ?: return sourceQty;


val stockUnit = findStockUnitByItemId(itemId) ?: return BigDecimal.ZERO; val stockUnit = findStockUnitByItemId(itemId) ?: return BigDecimal.ZERO;
val one = BigDecimal.ONE; val one = BigDecimal.ONE;
@@ -93,9 +101,11 @@ open class ItemUomService(
// See if need to update the response // See if need to update the response
open fun saveItemUom(request: ItemUomRequest): ItemUom { open fun saveItemUom(request: ItemUomRequest): ItemUom {
val itemUom = request.m18Id?.let { findByM18Id(it) } ?: request.id?.let { findById(it) } ?: ItemUom() val itemUom = request.m18Id?.let { findByM18Id(it) } ?: request.id?.let { findById(it) } ?: ItemUom()
if (request.m18LastModifyDate == itemUom.m18LastModifyDate) {
return itemUom
}

//if (request.m18LastModifyDate == itemUom.m18LastModifyDate) {
// logger.info("Skipping update - m18LastModifyDate unchanged")
// return itemUom
//}


val item = request.itemId?.let { itemsService.find(it).getOrNull() } val item = request.itemId?.let { itemsService.find(it).getOrNull() }
val uom = request.m18UomId?.let { uomConversionService.findByM18Id(it) } ?: request.uomId?.let { uomConversionService.find(it).getOrNull() } val uom = request.m18UomId?.let { uomConversionService.findByM18Id(it) } ?: request.uomId?.let { uomConversionService.find(it).getOrNull() }
@@ -115,7 +125,7 @@ open class ItemUomService(
m18LastModifyDate = request.m18LastModifyDate m18LastModifyDate = request.m18LastModifyDate
ratioD = request.ratioD ratioD = request.ratioD
ratioN = request.ratioN ratioN = request.ratioN
deleted = request.deleted
deleted = request.deleted // ← EXPLICIT assignment (same as before)
} }


val savedItemUom = itemUomRespository.saveAndFlush(itemUom) val savedItemUom = itemUomRespository.saveAndFlush(itemUom)


Načítá se…
Zrušit
Uložit