安全:补齐业务批次归属校验
This commit is contained in:
@@ -16,7 +16,7 @@ from module_business.dao.master_dao import MasterDao
|
||||
from module_business.dao.operation_dao import OperationDao
|
||||
from module_business.domain.enums import DocumentStatus, PalletEventType, PalletFlowState
|
||||
from module_business.domain.pallet_state_machine import PalletStateMachine
|
||||
from module_business.domain.test_batch_scope import TestBatchScope
|
||||
from module_business.domain.test_batch_scope import TestBatchScope, assert_record_in_scope
|
||||
from module_business.entity.do.master_do import BizPallet
|
||||
from module_business.entity.do.operation_do import (
|
||||
BizInboundItem,
|
||||
@@ -103,6 +103,7 @@ class InboundService:
|
||||
warehouse = await MasterDao.get_warehouse(query_db, warehouse_id, test_scope)
|
||||
if warehouse is None:
|
||||
raise ServiceException(message='目标仓库不存在')
|
||||
assert_record_in_scope(warehouse, test_scope, '仓库')
|
||||
if warehouse.status != '0':
|
||||
raise ServiceException(message='目标仓库已停用')
|
||||
return warehouse
|
||||
@@ -128,6 +129,8 @@ class InboundService:
|
||||
test_scope,
|
||||
for_update=True,
|
||||
)
|
||||
if warehouses[warehouse_id] is not None:
|
||||
assert_record_in_scope(warehouses[warehouse_id], test_scope, '仓库')
|
||||
try:
|
||||
await AccessService.assert_warehouse_access(
|
||||
query_db,
|
||||
@@ -195,6 +198,10 @@ class InboundService:
|
||||
ordered_ids = sorted(pallet_ids)
|
||||
inventories = await InventoryDao.get_inventories_for_update(query_db, ordered_ids, test_scope)
|
||||
pallets = await InventoryDao.get_pallets_by_ids(query_db, ordered_ids, test_scope)
|
||||
for inventory in inventories:
|
||||
assert_record_in_scope(inventory, test_scope, '库存')
|
||||
for pallet in pallets:
|
||||
assert_record_in_scope(pallet, test_scope, '托盘')
|
||||
expected_ids = set(ordered_ids)
|
||||
inventory_by_id = {inventory.pallet_id: inventory for inventory in inventories}
|
||||
pallet_by_id = {pallet.pallet_id: pallet for pallet in pallets}
|
||||
@@ -327,15 +334,18 @@ class InboundService:
|
||||
warehouse = await MasterDao.get_warehouse(query_db, query_object.warehouse_id, test_scope)
|
||||
if warehouse is None:
|
||||
raise ServiceException(message='目标仓库不存在')
|
||||
assert_record_in_scope(warehouse, test_scope, '仓库')
|
||||
if warehouse.status != '0':
|
||||
raise ServiceException(message='目标仓库已停用')
|
||||
|
||||
pallet = await InventoryDao.get_pallet_by_qr_token(query_db, qr_token, test_scope)
|
||||
if pallet is None:
|
||||
raise ServiceException(message='托盘不存在')
|
||||
assert_record_in_scope(pallet, test_scope, '托盘')
|
||||
inventory = await MasterDao.get_pallet_inventory(query_db, pallet.pallet_id, test_scope)
|
||||
if inventory is None:
|
||||
raise ServiceException(message='托盘库存不存在')
|
||||
assert_record_in_scope(inventory, test_scope, '库存')
|
||||
cls._validate_pallet_pair(pallet, inventory)
|
||||
return PalletScanResponseModel(
|
||||
pallet_id=pallet.pallet_id,
|
||||
|
||||
Reference in New Issue
Block a user