|
|
@@ -44,6 +44,7 @@ import com.ffii.fpsms.modules.stock.entity.SuggestPickLotRepository |
|
|
import com.ffii.fpsms.modules.stock.entity.enum.InventoryLotLineStatus |
|
|
import com.ffii.fpsms.modules.stock.entity.enum.InventoryLotLineStatus |
|
|
import com.ffii.fpsms.modules.stock.entity.projection.StockOutLineInfo |
|
|
import com.ffii.fpsms.modules.stock.entity.projection.StockOutLineInfo |
|
|
import com.ffii.fpsms.modules.stock.service.StockOutLineWorkbenchService |
|
|
import com.ffii.fpsms.modules.stock.service.StockOutLineWorkbenchService |
|
|
|
|
|
import com.ffii.fpsms.modules.stock.service.StockTakeLocationGuard |
|
|
import com.ffii.fpsms.modules.stock.service.SuggestedPickLotWorkbenchService |
|
|
import com.ffii.fpsms.modules.stock.service.SuggestedPickLotWorkbenchService |
|
|
import com.ffii.fpsms.modules.stock.service.StockLedgerLotSnapshot |
|
|
import com.ffii.fpsms.modules.stock.service.StockLedgerLotSnapshot |
|
|
import com.ffii.fpsms.modules.stock.service.WorkbenchStockOutLinePickProgress |
|
|
import com.ffii.fpsms.modules.stock.service.WorkbenchStockOutLinePickProgress |
|
|
@@ -136,6 +137,7 @@ open class DoWorkbenchMainService( |
|
|
private val transactionManager: PlatformTransactionManager, |
|
|
private val transactionManager: PlatformTransactionManager, |
|
|
private val doReplenishmentService: DoReplenishmentService, |
|
|
private val doReplenishmentService: DoReplenishmentService, |
|
|
private val doFloorSupplierSettingsService: DoFloorSupplierSettingsService, |
|
|
private val doFloorSupplierSettingsService: DoFloorSupplierSettingsService, |
|
|
|
|
|
private val stockTakeLocationGuard: StockTakeLocationGuard, |
|
|
) { |
|
|
) { |
|
|
@PersistenceContext |
|
|
@PersistenceContext |
|
|
private lateinit var entityManager: EntityManager |
|
|
private lateinit var entityManager: EntityManager |
|
|
@@ -450,6 +452,22 @@ open class DoWorkbenchMainService( |
|
|
println("Scanned lot does not match pick line item") |
|
|
println("Scanned lot does not match pick line item") |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
val stockTakeBlock = stockTakeLocationGuard.blockMessage( |
|
|
|
|
|
scannedIll.warehouse?.id, |
|
|
|
|
|
scannedIll.inventoryLot?.item?.id, |
|
|
|
|
|
) |
|
|
|
|
|
if (stockTakeBlock != null) { |
|
|
|
|
|
return MessageResponse( |
|
|
|
|
|
id = sol.id, |
|
|
|
|
|
name = "scan_pick", |
|
|
|
|
|
code = "CONFLICT", |
|
|
|
|
|
type = "workbench_scan_pick", |
|
|
|
|
|
message = stockTakeBlock, |
|
|
|
|
|
errorPosition = null, |
|
|
|
|
|
entity = null, |
|
|
|
|
|
) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
sol.inventoryLotLine = scannedIll |
|
|
sol.inventoryLotLine = scannedIll |
|
|
|
|
|
|
|
|
val required = pol.qty ?: BigDecimal.ZERO |
|
|
val required = pol.qty ?: BigDecimal.ZERO |
|
|
|