feat: add backend autocomplete for suppliers and users in inbound
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
This commit is contained in:
@ -351,4 +351,46 @@ class BuyInboundService:
|
||||
return {"total": pagination.total, "items": items}
|
||||
except Exception as e:
|
||||
traceback.print_exc()
|
||||
return {"total": 0, "items": []}
|
||||
return {"total": 0, "items": []}
|
||||
|
||||
# ============================================================
|
||||
# 6. 供应商历史查询
|
||||
# ============================================================
|
||||
@staticmethod
|
||||
def get_history_suppliers(base_id):
|
||||
"""返回该物料关联的供应商列表(去重)"""
|
||||
try:
|
||||
query = db.session.query(StockBuy.supplier_name).filter(
|
||||
StockBuy.base_id == base_id,
|
||||
StockBuy.supplier_name.isnot(None)
|
||||
).distinct().order_by(StockBuy.supplier_name)
|
||||
suppliers = [row[0] for row in query.all()]
|
||||
return suppliers
|
||||
except Exception:
|
||||
return []
|
||||
|
||||
# ============================================================
|
||||
# 7. 系统用户搜索
|
||||
# ============================================================
|
||||
@staticmethod
|
||||
def search_system_users(keyword):
|
||||
"""搜索系统用户(活跃状态)"""
|
||||
from app.models.system import SysUser
|
||||
try:
|
||||
query = SysUser.query.filter(SysUser.status == 'active')
|
||||
if keyword:
|
||||
kw = f'%{keyword}%'
|
||||
query = query.filter(db.or_(
|
||||
SysUser.username.ilike(kw),
|
||||
SysUser.email.ilike(kw)
|
||||
))
|
||||
query = query.order_by(SysUser.username)
|
||||
users = []
|
||||
for u in query.limit(20).all():
|
||||
users.append({
|
||||
'value': u.username,
|
||||
'email': u.email
|
||||
})
|
||||
return users
|
||||
except Exception:
|
||||
return []
|
||||
|
||||
@ -350,4 +350,30 @@ class ProductInboundService:
|
||||
return {"total": pagination.total, "items": items}
|
||||
except:
|
||||
traceback.print_exc()
|
||||
return {"total": 0, "items": []}
|
||||
return {"total": 0, "items": []}
|
||||
|
||||
# ============================================================
|
||||
# 7. 系统用户搜索
|
||||
# ============================================================
|
||||
@staticmethod
|
||||
def search_system_users(keyword):
|
||||
"""搜索系统用户(活跃状态)"""
|
||||
from app.models.system import SysUser
|
||||
try:
|
||||
query = SysUser.query.filter(SysUser.status == 'active')
|
||||
if keyword:
|
||||
kw = f'%{keyword}%'
|
||||
query = query.filter(db.or_(
|
||||
SysUser.username.ilike(kw),
|
||||
SysUser.email.ilike(kw)
|
||||
))
|
||||
query = query.order_by(SysUser.username)
|
||||
users = []
|
||||
for u in query.limit(20).all():
|
||||
users.append({
|
||||
'value': u.username,
|
||||
'email': u.email
|
||||
})
|
||||
return users
|
||||
except Exception:
|
||||
return []
|
||||
|
||||
@ -452,4 +452,30 @@ class SemiInboundService:
|
||||
except Exception as e:
|
||||
print(f"List Error: {e}")
|
||||
traceback.print_exc()
|
||||
return {"total": 0, "items": []}
|
||||
return {"total": 0, "items": []}
|
||||
|
||||
# ============================================================
|
||||
# 7. 系统用户搜索
|
||||
# ============================================================
|
||||
@staticmethod
|
||||
def search_system_users(keyword):
|
||||
"""搜索系统用户(活跃状态)"""
|
||||
from app.models.system import SysUser
|
||||
try:
|
||||
query = SysUser.query.filter(SysUser.status == 'active')
|
||||
if keyword:
|
||||
kw = f'%{keyword}%'
|
||||
query = query.filter(db.or_(
|
||||
SysUser.username.ilike(kw),
|
||||
SysUser.email.ilike(kw)
|
||||
))
|
||||
query = query.order_by(SysUser.username)
|
||||
users = []
|
||||
for u in query.limit(20).all():
|
||||
users.append({
|
||||
'value': u.username,
|
||||
'email': u.email
|
||||
})
|
||||
return users
|
||||
except Exception:
|
||||
return []
|
||||
|
||||
@ -161,4 +161,46 @@ class ServiceService:
|
||||
'total': total,
|
||||
'page': page,
|
||||
'per_page': per_page
|
||||
}
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# 供应商历史查询
|
||||
# ============================================================
|
||||
@classmethod
|
||||
def get_history_providers(cls, base_id):
|
||||
"""返回该物料关联的服务商列表(去重)"""
|
||||
try:
|
||||
query = db.session.query(StockService.provider_name).filter(
|
||||
StockService.base_id == base_id,
|
||||
StockService.provider_name.isnot(None)
|
||||
).distinct().order_by(StockService.provider_name)
|
||||
providers = [row[0] for row in query.all()]
|
||||
return providers
|
||||
except Exception:
|
||||
return []
|
||||
|
||||
# ============================================================
|
||||
# 系统用户搜索
|
||||
# ============================================================
|
||||
@classmethod
|
||||
def search_system_users(cls, keyword):
|
||||
"""搜索系统用户(活跃状态)"""
|
||||
from app.models.system import SysUser
|
||||
try:
|
||||
query = SysUser.query.filter(SysUser.status == 'active')
|
||||
if keyword:
|
||||
kw = f'%{keyword}%'
|
||||
query = query.filter(db.or_(
|
||||
SysUser.username.ilike(kw),
|
||||
SysUser.email.ilike(kw)
|
||||
))
|
||||
query = query.order_by(SysUser.username)
|
||||
users = []
|
||||
for u in query.limit(20).all():
|
||||
users.append({
|
||||
'value': u.username,
|
||||
'email': u.email
|
||||
})
|
||||
return users
|
||||
except Exception:
|
||||
return []
|
||||
|
||||
Reference in New Issue
Block a user