更新登录页及优化相关功能
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from common.vo import PageModel
|
||||
from module_business.dao.operation_dao import OperationDao
|
||||
from module_business.domain.test_batch_scope import TestBatchScope
|
||||
from module_business.entity.do.operation_do import BizShipmentOrder
|
||||
from module_business.entity.vo.shipment_receipt_vo import ShipmentReceiptQueryModel
|
||||
from utils.page_util import PageUtil
|
||||
|
||||
|
||||
class ShipmentReceiptDao:
|
||||
@staticmethod
|
||||
async def list_orders(
|
||||
db: AsyncSession, query: ShipmentReceiptQueryModel, scope: TestBatchScope, site_ids: list[int] | None
|
||||
) -> PageModel:
|
||||
# 接收方只需要目标现场范围,不扩大原发货操作的双范围权限。
|
||||
conditions = OperationDao._shipment_scope_conditions(None, site_ids, scope)
|
||||
conditions.append(BizShipmentOrder.status == 'CONFIRMED')
|
||||
if query.shipment_no:
|
||||
conditions.append(BizShipmentOrder.shipment_no.like(f'%{query.shipment_no}%'))
|
||||
if query.target_site_id:
|
||||
conditions.append(BizShipmentOrder.target_site_id == query.target_site_id)
|
||||
if query.source_warehouse_id:
|
||||
conditions.append(BizShipmentOrder.source_warehouse_id == query.source_warehouse_id)
|
||||
if query.receipt_state:
|
||||
conditions.append(BizShipmentOrder.receipt_state == query.receipt_state)
|
||||
conditions.extend(
|
||||
OperationDao._time_conditions(BizShipmentOrder.confirmed_at, query.begin_time, query.end_time)
|
||||
)
|
||||
statement = (
|
||||
select(BizShipmentOrder)
|
||||
.where(*conditions)
|
||||
.order_by(BizShipmentOrder.confirmed_at, BizShipmentOrder.shipment_id)
|
||||
)
|
||||
return await PageUtil.paginate(db, statement, query.page_num, query.page_size, is_page=True)
|
||||
Reference in New Issue
Block a user