Bladeren bron

#24 / #25 / #26)#27 #22 #4/#6

fix負數倉
CANCERYS\kw093 5 dagen geleden
bovenliggende
commit
bffa3eb34c
6 gewijzigde bestanden met toevoegingen van 27 en 13 verwijderingen
  1. +12
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderRepository.kt
  2. +2
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/projections/JobOrderInfo.kt
  3. +7
    -1
      src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleRepository.kt
  4. +4
    -12
      src/main/java/com/ffii/fpsms/modules/master/service/ItemUomService.kt
  5. +1
    -0
      src/main/java/com/ffii/fpsms/modules/productProcess/entity/projections/ProductProcessInfo.kt
  6. +1
    -0
      src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt

+ 12
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderRepository.kt Bestand weergeven

@@ -54,8 +54,11 @@ interface JobOrderRepository : AbstractRepository<JobOrder, Long> {
json_arrayagg(
json_object(
'id', jobm.id,
'itemId', jobm.itemId,
'uomId', jobm.uomId,
'code', i.code,
'name', i.name,
'type', i.type,
'pickedLotNo', pln.pickedLotNo,
'reqQty', jobm.reqQty,
'uom', uc.udfudesc,
@@ -93,8 +96,11 @@ interface JobOrderRepository : AbstractRepository<JobOrder, Long> {
json_arrayagg(
json_object(
'id', jobm.id,
'itemId', jobm.itemId,
'uomId', jobm.uomId,
'code', i.code,
'name', i.name,
'type', i.type,
'lotNo', il.lotNo,
'reqQty', jobm.reqQty,
'uom', uc.udfudesc,
@@ -272,8 +278,11 @@ interface JobOrderRepository : AbstractRepository<JobOrder, Long> {
json_arrayagg(
json_object(
'id', jobm.id,
'itemId', jobm.itemId,
'uomId', jobm.uomId,
'code', i.code,
'name', i.name,
'type', i.type,
'lotNo', il.lotNo,
'reqQty', jobm.reqQty,
'uom', uc.udfudesc,
@@ -312,8 +321,11 @@ interface JobOrderRepository : AbstractRepository<JobOrder, Long> {
json_arrayagg(
json_object(
'id', jobm.id,
'itemId', jobm.itemId,
'uomId', jobm.uomId,
'code', i.code,
'name', i.name,
'type', i.type,
'lotNo', il.lotNo,
'reqQty', jobm.reqQty,
'uom', uc.udfudesc,


+ 2
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/projections/JobOrderInfo.kt Bestand weergeven

@@ -126,6 +126,8 @@ data class JobOrderDetail(

data class JobOrderDetailPickLine(
val id: Long?,
val itemId: Long?,
val uomId: Long?,
val code: String?,
val name: String?,
val pickedLotNo: List<JobOrderDetailPickedLotNo>?,


+ 7
- 1
src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleRepository.kt Bestand weergeven

@@ -183,7 +183,7 @@ interface ProductionScheduleRepository : AbstractRepository<ProductionSchedule,
bmi.code,
bmi.name,
bmi.`type`,
coalesce(i.onHandQty, 0) - coalesce(i.onHoldQty, 0) - coalesce(i.unavailableQty, 0) as availableQty,
coalesce(i.onHandQty, 0) - coalesce(i.unavailableQty, 0) as availableQty,
-- ceil(coalesce(bm.qty, 0) * pp.proportion) as demandQty
coalesce(bm.qty, 0) * pp.proportion as demandQty,
uc.udfudesc as uomName
@@ -195,7 +195,13 @@ interface ProductionScheduleRepository : AbstractRepository<ProductionSchedule,
left join items bmi on bmi.id = bm.itemId
left join item_uom iu on iu.itemId = bmi.id and iu.salesUnit = true
left join uom_conversion uc on uc.id = iu.uomId
left join item_uom iu_stock on iu_stock.itemId = bmi.id and iu_stock.stockUnit = 1 and ifnull(iu_stock.deleted, 0) = 0
left join inventory i on i.itemId = bmi.id
and ifnull(i.deleted, 0) = 0
and (
i.stockUomId = coalesce(nullif(bm.stockUnit, 0), iu_stock.uomId)
or (i.stockUomId is null and i.uomId = coalesce(nullif(bm.stockUnit, 0), iu_stock.uomId))
)
where ps.id = :id and bmi.id is not null
group by ps.id, psl.id, bm.id, i.id, pp.proportion, uc.udfudesc
) r2


+ 4
- 12
src/main/java/com/ffii/fpsms/modules/master/service/ItemUomService.kt Bestand weergeven

@@ -13,7 +13,8 @@ import org.slf4j.Logger
import org.slf4j.LoggerFactory
import com.ffii.fpsms.modules.master.entity.ItemsRepository
import com.ffii.fpsms.modules.stock.entity.Inventory
import com.ffii.fpsms.modules.stock.entity.InventoryRepository
import com.ffii.fpsms.modules.stock.entity.InventoryLotLine
import com.ffii.fpsms.modules.stock.service.InventoryBucketResolver

@Service
open class ItemUomService(
@@ -22,7 +23,7 @@ open class ItemUomService(
val itemUomRespository: ItemUomRespository,
val currencyService: CurrencyService,
val itemsRepository: ItemsRepository,
private val inventoryRepository: InventoryRepository,
private val inventoryBucketResolver: InventoryBucketResolver,
) {
val logger = org.slf4j.LoggerFactory.getLogger(this::class.java)

@@ -84,16 +85,7 @@ open class ItemUomService(
),
)
open fun findInventoryForItemBaseUom(itemId: Long): Inventory? {
val stockUnitUomId = findStockUnitByItemId(itemId)?.uom?.id
if (stockUnitUomId != null) {
inventoryRepository.findByItemIdAndStockUomIdAndDeletedIsFalse(itemId, stockUnitUomId)?.let {
return it
}
inventoryRepository.findFirstByItemIdAndStockUomIdAndDeletedIsFalseOrderByIdAsc(itemId, stockUnitUomId)
?.let { return it }
}
// Last resort only while stockUomId is still null on old rows (pre data patch).
return inventoryRepository.findFirstByItemIdAndDeletedIsFalseOrderByIdAsc(itemId)
return inventoryBucketResolver.findInventoryBucket(itemId, null as InventoryLotLine?)
}

open fun findPickingUnitByItemId(itemId: Long): ItemUom? {


+ 1
- 0
src/main/java/com/ffii/fpsms/modules/productProcess/entity/projections/ProductProcessInfo.kt Bestand weergeven

@@ -109,6 +109,7 @@ data class jobOrderLineInfo(

val stockUom: String?,
val stockBaseUom: String?,
val stockUomId: Long?,
val availableStatus: String?,
val bomProcessId: Long?,


+ 1
- 0
src/main/java/com/ffii/fpsms/modules/productProcess/service/ProductProcessService.kt Bestand weergeven

@@ -915,6 +915,7 @@ open class ProductProcessService(
reqBaseUom = baseUomName ?: "",
stockUom = stockUomName ?: "",
stockBaseUom = baseUomName ?: "",
stockUomId = stockUomId,

type = line.item?.type ?: "",
availableStatus = availableStatus,


Laden…
Annuleren
Opslaan