修复:补充发货草稿当前余量

This commit is contained in:
焦龙言
2026-07-27 09:05:04 +08:00
parent d5da207206
commit e4477f321c
5 changed files with 83 additions and 12 deletions
@@ -11,6 +11,7 @@ from module_business.entity.do.operation_do import (
BizFillingRecord,
BizInboundItem,
BizInboundOrder,
BizPalletInventory,
BizReturnItem,
BizReturnOrder,
BizShipmentItem,
@@ -645,16 +646,31 @@ class OperationDao:
warehouse_ids: list[int] | None = None,
site_ids: list[int] | None = None,
) -> BizShipmentOrder | None:
return await cls._get_order_detail(
shipment = await cls._get_by_id(
db,
BizShipmentOrder,
BizShipmentOrder.shipment_id,
shipment_id,
BizShipmentItem,
BizShipmentItem.shipment_id,
BizShipmentItem.shipment_item_id,
*cls._shipment_scope_conditions(warehouse_ids, site_ids),
)
if shipment is None:
return None
item_result = await db.execute(
select(BizShipmentItem, BizPalletInventory.remaining_packages)
.outerjoin(
BizPalletInventory,
BizPalletInventory.pallet_id == BizShipmentItem.pallet_id,
)
.where(BizShipmentItem.shipment_id == shipment_id)
.order_by(BizShipmentItem.shipment_item_id)
)
items = []
for item, remaining_packages in item_result.all():
item.remaining_packages = remaining_packages
items.append(item)
shipment.items = items
return shipment
@classmethod
async def add_shipment(