feat(repair): add quick status filters, mandatory validations, FIFO sorting, and hide actions on finished orders
This commit is contained in:
@ -69,7 +69,14 @@ class RepairInboundService:
|
||||
if params.get('serial_number'):
|
||||
query = query.filter(TransRepair.serial_number.ilike(f"%{params['serial_number']}%"))
|
||||
if params.get('repair_status'):
|
||||
query = query.filter(TransRepair.repair_status == params['repair_status'])
|
||||
status_value = params['repair_status']
|
||||
if status_value == '未出库':
|
||||
# 未出库:排除已出库状态
|
||||
query = query.filter(TransRepair.repair_status != '已出库')
|
||||
elif status_value not in ['全部', '']:
|
||||
# 其他明确状态:精确匹配
|
||||
query = query.filter(TransRepair.repair_status == status_value)
|
||||
# '全部' 或为空:不过滤状态
|
||||
|
||||
# 关联 MaterialBase 查询物料名称 或 直接搜索 TransRepair.material_name
|
||||
if params.get('material_name'):
|
||||
@ -82,8 +89,8 @@ class RepairInboundService:
|
||||
)
|
||||
)
|
||||
|
||||
# 按创建时间倒序
|
||||
query = query.order_by(db.desc(TransRepair.id))
|
||||
# 按接收时间升序(先进先出)+ id 升序
|
||||
query = query.order_by(db.asc(TransRepair.arrival_date), db.asc(TransRepair.id))
|
||||
|
||||
# 分页
|
||||
pagination = query.paginate(page=page, per_page=page_size, error_out=False)
|
||||
|
||||
Reference in New Issue
Block a user