添加前后端筛选导出excel按钮权限
This commit is contained in:
@@ -43,6 +43,19 @@ from utils.page_util import PageUtil
|
||||
class MasterDao:
|
||||
"""菌种、客户、现场、产线、隧道和仓库主数据数据库操作层。"""
|
||||
|
||||
@staticmethod
|
||||
def _parse_id_list(ids_str: str | None) -> list[int]:
|
||||
if not ids_str:
|
||||
return []
|
||||
result: list[int] = []
|
||||
for item in ids_str.split(','):
|
||||
item = item.strip()
|
||||
if item.isdigit():
|
||||
val = int(item)
|
||||
if val > 0:
|
||||
result.append(val)
|
||||
return result
|
||||
|
||||
@staticmethod
|
||||
async def _paginate(
|
||||
db: AsyncSession,
|
||||
@@ -139,6 +152,9 @@ class MasterDao:
|
||||
conditions.append(BizStrain.strain_name.like(f'%{query_object.strain_name}%'))
|
||||
if query_object.status:
|
||||
conditions.append(BizStrain.status == query_object.status)
|
||||
ids = cls._parse_id_list(getattr(query_object, 'ids', None))
|
||||
if ids:
|
||||
conditions.append(BizStrain.strain_id.in_(ids))
|
||||
statement = select(BizStrain).where(*conditions).order_by(BizStrain.strain_id)
|
||||
return await cls._paginate(db, statement, query_object, is_page)
|
||||
|
||||
@@ -187,6 +203,9 @@ class MasterDao:
|
||||
conditions.append(BizCustomer.customer_name.like(f'%{query_object.customer_name}%'))
|
||||
if query_object.status:
|
||||
conditions.append(BizCustomer.status == query_object.status)
|
||||
ids = cls._parse_id_list(getattr(query_object, 'ids', None))
|
||||
if ids:
|
||||
conditions.append(BizCustomer.customer_id.in_(ids))
|
||||
statement = select(BizCustomer).where(*conditions).order_by(BizCustomer.customer_id)
|
||||
return await cls._paginate(db, statement, query_object, is_page)
|
||||
|
||||
@@ -237,6 +256,9 @@ class MasterDao:
|
||||
conditions.append(BizCustomerSite.site_name.like(f'%{query_object.site_name}%'))
|
||||
if query_object.status:
|
||||
conditions.append(BizCustomerSite.status == query_object.status)
|
||||
ids = cls._parse_id_list(getattr(query_object, 'ids', None))
|
||||
if ids:
|
||||
conditions.append(BizCustomerSite.site_id.in_(ids))
|
||||
statement = select(BizCustomerSite).where(*conditions).order_by(BizCustomerSite.site_id)
|
||||
return await cls._paginate(db, statement, query_object, is_page)
|
||||
|
||||
@@ -298,6 +320,9 @@ class MasterDao:
|
||||
conditions.append(BizProductionLine.line_name.like(f'%{query_object.line_name}%'))
|
||||
if query_object.status:
|
||||
conditions.append(BizProductionLine.status == query_object.status)
|
||||
ids = cls._parse_id_list(getattr(query_object, 'ids', None))
|
||||
if ids:
|
||||
conditions.append(BizProductionLine.line_id.in_(ids))
|
||||
statement = select(BizProductionLine).where(*conditions).order_by(BizProductionLine.line_id)
|
||||
return await cls._paginate(db, statement, query_object, is_page)
|
||||
|
||||
@@ -359,6 +384,9 @@ class MasterDao:
|
||||
conditions.append(BizTunnel.tunnel_name.like(f'%{query_object.tunnel_name}%'))
|
||||
if query_object.status:
|
||||
conditions.append(BizTunnel.status == query_object.status)
|
||||
ids = cls._parse_id_list(getattr(query_object, 'ids', None))
|
||||
if ids:
|
||||
conditions.append(BizTunnel.tunnel_id.in_(ids))
|
||||
statement = select(BizTunnel).where(*conditions).order_by(BizTunnel.tunnel_id)
|
||||
return await cls._paginate(db, statement, query_object, is_page)
|
||||
|
||||
@@ -418,6 +446,9 @@ class MasterDao:
|
||||
conditions.append(BizWarehouse.warehouse_name.like(f'%{query_object.warehouse_name}%'))
|
||||
if query_object.status:
|
||||
conditions.append(BizWarehouse.status == query_object.status)
|
||||
ids = cls._parse_id_list(getattr(query_object, 'ids', None))
|
||||
if ids:
|
||||
conditions.append(BizWarehouse.warehouse_id.in_(ids))
|
||||
statement = select(BizWarehouse).where(*conditions).order_by(BizWarehouse.warehouse_id)
|
||||
return await cls._paginate(db, statement, query_object, is_page)
|
||||
|
||||
@@ -466,6 +497,9 @@ class MasterDao:
|
||||
conditions.append(BizPallet.pallet_code.like(f'%{query_object.pallet_code}%'))
|
||||
if query_object.asset_status:
|
||||
conditions.append(BizPallet.asset_status == query_object.asset_status)
|
||||
ids = cls._parse_id_list(getattr(query_object, 'ids', None))
|
||||
if ids:
|
||||
conditions.append(BizPallet.pallet_id.in_(ids))
|
||||
statement = select(BizPallet).where(*conditions).order_by(BizPallet.pallet_id)
|
||||
return await cls._paginate(db, statement, query_object, is_page)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user