|
|
@@ -443,6 +443,11 @@ def list_vehicles(
|
|
|
alias="excludeIneligibleCarrier",
|
|
|
description="排除资质不全或协议过期的承运商车辆",
|
|
|
),
|
|
|
+ mine_vehicles: Optional[bool] = Query(
|
|
|
+ default=None,
|
|
|
+ alias="mineVehicles",
|
|
|
+ description="仅返回当前用户关联驾押人员所挂靠车辆",
|
|
|
+ ),
|
|
|
page: int = Query(default=1, ge=1),
|
|
|
page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"),
|
|
|
db: Session = Depends(get_db),
|
|
|
@@ -455,6 +460,7 @@ def list_vehicles(
|
|
|
vehicleType=vehicle_type,
|
|
|
carrierId=carrier_id,
|
|
|
vehicleStatus=vehicle_status,
|
|
|
+ mineVehicles=mine_vehicles,
|
|
|
)
|
|
|
query = db.query(PlVehicle).filter(
|
|
|
PlVehicle.tenant_no == tenant_no,
|
|
|
@@ -483,6 +489,18 @@ def list_vehicles(
|
|
|
if column_filters:
|
|
|
query = query.filter(*column_filters)
|
|
|
|
|
|
+ mine_flag = _param_get(params, "mineVehicles", "mine_vehicles")
|
|
|
+ if mine_flag is True or (
|
|
|
+ mine_flag is not None
|
|
|
+ and str(mine_flag).strip().lower() in {"1", "true", "yes", "y"}
|
|
|
+ ):
|
|
|
+ from app.services.pl_vehicle_mine_vehicles import license_plates_for_user_personnel
|
|
|
+
|
|
|
+ plates = license_plates_for_user_personnel(db, tenant_no, user.id)
|
|
|
+ if not plates:
|
|
|
+ return VehicleListResponse(total=0, list=[])
|
|
|
+ query = query.filter(PlVehicle.license_plate.in_(list(plates)))
|
|
|
+
|
|
|
# 车辆为主数据,列表不做 create_by 数据范围过滤
|
|
|
query = query.order_by(
|
|
|
case((PlVehicle.order_num.is_(None), 1), else_=0).asc(),
|