feat(pl): add rechargeTypeNe filter for vehicle recharge lists
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
9f65cd447f
commit
738f76c486
6 files changed
+52
No files matched your search
@@ -113,6 +113,7 @@ def _apply_list_kwargs(params: dict) -> dict:
|
||||
license_plate=_param_get(params, "licensePlate", "license_plate"),
|
||||
recharge_type=_param_get(params, "rechargeType", "recharge_type"),
|
||||
recharge_type_in=_param_get(params, "rechargeTypeIn", "recharge_type_in"),
|
||||
recharge_type_ne=_param_get(params, "rechargeTypeNe", "recharge_type_ne"),
|
||||
status=_param_get(params, "status"),
|
||||
status_in=_param_get(params, "statusIn", "status_in"),
|
||||
apply_date_from=_param_get(params, "applyDateFrom", "apply_date_from"),
|
||||
@@ -139,6 +140,7 @@ def _disburse_list_kwargs(params: dict) -> dict:
|
||||
license_plate=_param_get(params, "licensePlate", "license_plate"),
|
||||
recharge_type=_param_get(params, "rechargeType", "recharge_type"),
|
||||
recharge_type_in=_param_get(params, "rechargeTypeIn", "recharge_type_in"),
|
||||
recharge_type_ne=_param_get(params, "rechargeTypeNe", "recharge_type_ne"),
|
||||
apply_status=_param_get(params, "applyStatus", "apply_status"),
|
||||
apply_status_in=_param_get(params, "applyStatusIn", "apply_status_in"),
|
||||
apply_date_from=_param_get(params, "applyDateFrom", "apply_date_from"),
|
||||
@@ -170,6 +172,7 @@ def list_applies(
|
||||
request: Request,
|
||||
q: Optional[str] = Query(default=None),
|
||||
recharge_type: Optional[str] = Query(default=None, alias="rechargeType"),
|
||||
recharge_type_ne: Optional[str] = Query(default=None, alias="rechargeTypeNe"),
|
||||
status: Optional[str] = Query(default=None),
|
||||
apply_date_from: Optional[date] = Query(default=None, alias="applyDateFrom"),
|
||||
apply_date_to: Optional[date] = Query(default=None, alias="applyDateTo"),
|
||||
@@ -185,6 +188,7 @@ def list_applies(
|
||||
request,
|
||||
q=q,
|
||||
rechargeType=recharge_type,
|
||||
rechargeTypeNe=recharge_type_ne,
|
||||
status=status,
|
||||
applyDateFrom=apply_date_from,
|
||||
applyDateTo=apply_date_to,
|
||||
@@ -233,6 +237,7 @@ RECHARGE_APPLY_EXPORT_COLUMNS = [
|
||||
class RechargeApplyExportBody(BaseModel):
|
||||
q: Optional[str] = None
|
||||
recharge_type: Optional[str] = Field(default=None, alias="rechargeType")
|
||||
recharge_type_ne: Optional[str] = Field(default=None, alias="rechargeTypeNe")
|
||||
status: Optional[str] = None
|
||||
apply_date_from: Optional[date] = Field(default=None, alias="applyDateFrom")
|
||||
apply_date_to: Optional[date] = Field(default=None, alias="applyDateTo")
|
||||
@@ -422,6 +427,7 @@ def delete_applies(
|
||||
def list_records(
|
||||
q: Optional[str] = Query(default=None),
|
||||
recharge_type: Optional[str] = Query(default=None, alias="rechargeType"),
|
||||
recharge_type_ne: Optional[str] = Query(default=None, alias="rechargeTypeNe"),
|
||||
recharge_date_from: Optional[date] = Query(default=None, alias="rechargeDateFrom"),
|
||||
recharge_date_to: Optional[date] = Query(default=None, alias="rechargeDateTo"),
|
||||
gas_station: Optional[str] = Query(default=None, alias="gasStation"),
|
||||
@@ -438,6 +444,7 @@ def list_records(
|
||||
user,
|
||||
q=q,
|
||||
recharge_type=recharge_type,
|
||||
recharge_type_ne=recharge_type_ne,
|
||||
recharge_date_from=recharge_date_from,
|
||||
recharge_date_to=recharge_date_to,
|
||||
gas_station=gas_station,
|
||||
@@ -455,6 +462,7 @@ def list_disburse_board(
|
||||
request: Request,
|
||||
q: Optional[str] = Query(default=None),
|
||||
recharge_type: Optional[str] = Query(default=None, alias="rechargeType"),
|
||||
recharge_type_ne: Optional[str] = Query(default=None, alias="rechargeTypeNe"),
|
||||
apply_status: Optional[str] = Query(default=None, alias="applyStatus"),
|
||||
apply_date_from: Optional[date] = Query(default=None, alias="applyDateFrom"),
|
||||
apply_date_to: Optional[date] = Query(default=None, alias="applyDateTo"),
|
||||
@@ -470,6 +478,7 @@ def list_disburse_board(
|
||||
request,
|
||||
q=q,
|
||||
rechargeType=recharge_type,
|
||||
rechargeTypeNe=recharge_type_ne,
|
||||
applyStatus=apply_status,
|
||||
applyDateFrom=apply_date_from,
|
||||
applyDateTo=apply_date_to,
|
||||
@@ -513,6 +522,7 @@ RECHARGE_DISBURSE_EXPORT_COLUMNS = [
|
||||
class RechargeDisburseExportBody(BaseModel):
|
||||
q: Optional[str] = None
|
||||
recharge_type: Optional[str] = Field(default=None, alias="rechargeType")
|
||||
recharge_type_ne: Optional[str] = Field(default=None, alias="rechargeTypeNe")
|
||||
apply_status: Optional[str] = Field(default=None, alias="applyStatus")
|
||||
apply_date_from: Optional[date] = Field(default=None, alias="applyDateFrom")
|
||||
apply_date_to: Optional[date] = Field(default=None, alias="applyDateTo")
|
||||
|
||||
@@ -42,6 +42,7 @@ def _approval_list_kwargs(params: dict) -> dict:
|
||||
license_plate=_param_get(params, "licensePlate", "license_plate"),
|
||||
recharge_type=_param_get(params, "rechargeType", "recharge_type"),
|
||||
recharge_type_in=_param_get(params, "rechargeTypeIn", "recharge_type_in"),
|
||||
recharge_type_ne=_param_get(params, "rechargeTypeNe", "recharge_type_ne"),
|
||||
status=_param_get(params, "status"),
|
||||
status_in=_param_get(params, "statusIn", "status_in"),
|
||||
apply_date_from=_param_get(params, "applyDateFrom", "apply_date_from"),
|
||||
@@ -61,6 +62,7 @@ def _approval_list_kwargs(params: dict) -> dict:
|
||||
@approval_router.get("/pending", response_model=VehicleRechargeApplyListResponse)
|
||||
def list_pending(
|
||||
request: Request,
|
||||
recharge_type_ne: Optional[str] = Query(default=None, alias="rechargeTypeNe"),
|
||||
apply_date_from: Optional[date] = Query(default=None, alias="applyDateFrom"),
|
||||
apply_date_to: Optional[date] = Query(default=None, alias="applyDateTo"),
|
||||
page: int = Query(default=1, ge=1),
|
||||
@@ -71,6 +73,7 @@ def list_pending(
|
||||
tenant_no = get_tenant_no(db, user.to_tenant_user_dict())
|
||||
params = _merge_query(
|
||||
request,
|
||||
rechargeTypeNe=recharge_type_ne,
|
||||
applyDateFrom=apply_date_from,
|
||||
applyDateTo=apply_date_to,
|
||||
)
|
||||
@@ -90,6 +93,7 @@ def list_pending(
|
||||
@approval_router.get("/done", response_model=VehicleRechargeApplyListResponse)
|
||||
def list_done(
|
||||
request: Request,
|
||||
recharge_type_ne: Optional[str] = Query(default=None, alias="rechargeTypeNe"),
|
||||
apply_date_from: Optional[date] = Query(default=None, alias="applyDateFrom"),
|
||||
apply_date_to: Optional[date] = Query(default=None, alias="applyDateTo"),
|
||||
page: int = Query(default=1, ge=1),
|
||||
@@ -100,6 +104,7 @@ def list_done(
|
||||
tenant_no = get_tenant_no(db, user.to_tenant_user_dict())
|
||||
params = _merge_query(
|
||||
request,
|
||||
rechargeTypeNe=recharge_type_ne,
|
||||
applyDateFrom=apply_date_from,
|
||||
applyDateTo=apply_date_to,
|
||||
)
|
||||
|
||||
@@ -25,6 +25,12 @@ def _split_csv(raw: Optional[str]) -> List[str]:
|
||||
return [s.strip() for s in str(raw).split(",") if s.strip()]
|
||||
|
||||
|
||||
def _append_ne_filter(filters: list, col, raw: Optional[str]) -> None:
|
||||
value = (raw or "").strip()
|
||||
if value:
|
||||
filters.append(col != value)
|
||||
|
||||
|
||||
def _append_enum_filter(
|
||||
filters: list,
|
||||
col,
|
||||
@@ -148,6 +154,7 @@ def build_recharge_apply_column_filters(
|
||||
license_plate: Optional[str] = None,
|
||||
recharge_type: Optional[str] = None,
|
||||
recharge_type_in: Optional[str] = None,
|
||||
recharge_type_ne: Optional[str] = None,
|
||||
status: Optional[str] = None,
|
||||
status_in: Optional[str] = None,
|
||||
apply_date_from: DateLike = None,
|
||||
@@ -175,6 +182,7 @@ def build_recharge_apply_column_filters(
|
||||
single=recharge_type,
|
||||
multi=recharge_type_in,
|
||||
)
|
||||
_append_ne_filter(filters, PlVehicleRechargeApply.recharge_type, recharge_type_ne)
|
||||
_append_enum_filter(
|
||||
filters, PlVehicleRechargeApply.status, single=status, multi=status_in
|
||||
)
|
||||
@@ -223,6 +231,7 @@ def build_recharge_disburse_board_column_filters(
|
||||
license_plate: Optional[str] = None,
|
||||
recharge_type: Optional[str] = None,
|
||||
recharge_type_in: Optional[str] = None,
|
||||
recharge_type_ne: Optional[str] = None,
|
||||
apply_status: Optional[str] = None,
|
||||
apply_status_in: Optional[str] = None,
|
||||
apply_date_from: DateLike = None,
|
||||
@@ -256,6 +265,7 @@ def build_recharge_disburse_board_column_filters(
|
||||
single=recharge_type,
|
||||
multi=recharge_type_in,
|
||||
)
|
||||
_append_ne_filter(filters, PlVehicleRechargeApply.recharge_type, recharge_type_ne)
|
||||
_append_enum_filter(
|
||||
filters,
|
||||
PlVehicleRechargeApply.status,
|
||||
|
||||
@@ -119,6 +119,7 @@ def list_pending(
|
||||
license_plate: Optional[str] = None,
|
||||
recharge_type: Optional[str] = None,
|
||||
recharge_type_in: Optional[str] = None,
|
||||
recharge_type_ne: Optional[str] = None,
|
||||
status: Optional[str] = None,
|
||||
status_in: Optional[str] = None,
|
||||
apply_date_from=None,
|
||||
@@ -155,6 +156,7 @@ def list_pending(
|
||||
license_plate=license_plate,
|
||||
recharge_type=recharge_type,
|
||||
recharge_type_in=recharge_type_in,
|
||||
recharge_type_ne=recharge_type_ne,
|
||||
status=status,
|
||||
status_in=status_in,
|
||||
apply_date_from=apply_date_from,
|
||||
@@ -192,6 +194,7 @@ def list_done(
|
||||
license_plate: Optional[str] = None,
|
||||
recharge_type: Optional[str] = None,
|
||||
recharge_type_in: Optional[str] = None,
|
||||
recharge_type_ne: Optional[str] = None,
|
||||
status: Optional[str] = None,
|
||||
status_in: Optional[str] = None,
|
||||
apply_date_from=None,
|
||||
@@ -233,6 +236,7 @@ def list_done(
|
||||
license_plate=license_plate,
|
||||
recharge_type=recharge_type,
|
||||
recharge_type_in=recharge_type_in,
|
||||
recharge_type_ne=recharge_type_ne,
|
||||
status=status,
|
||||
status_in=status_in,
|
||||
apply_date_from=apply_date_from,
|
||||
|
||||
@@ -513,6 +513,7 @@ def list_applies(
|
||||
license_plate: Optional[str] = None,
|
||||
recharge_type: Optional[str] = None,
|
||||
recharge_type_in: Optional[str] = None,
|
||||
recharge_type_ne: Optional[str] = None,
|
||||
status: Optional[str] = None,
|
||||
status_in: Optional[str] = None,
|
||||
apply_date_from: Optional[date] = None,
|
||||
@@ -555,6 +556,7 @@ def list_applies(
|
||||
license_plate=license_plate,
|
||||
recharge_type=recharge_type,
|
||||
recharge_type_in=recharge_type_in,
|
||||
recharge_type_ne=recharge_type_ne,
|
||||
status=status,
|
||||
status_in=status_in,
|
||||
apply_date_from=apply_date_from,
|
||||
@@ -854,6 +856,7 @@ def list_records(
|
||||
*,
|
||||
q: Optional[str] = None,
|
||||
recharge_type: Optional[str] = None,
|
||||
recharge_type_ne: Optional[str] = None,
|
||||
recharge_date_from: Optional[date] = None,
|
||||
recharge_date_to: Optional[date] = None,
|
||||
gas_station: Optional[str] = None,
|
||||
@@ -875,6 +878,10 @@ def list_records(
|
||||
)
|
||||
if recharge_type:
|
||||
query = query.filter(PlVehicleRechargeRecord.recharge_type == recharge_type)
|
||||
if recharge_type_ne and str(recharge_type_ne).strip():
|
||||
query = query.filter(
|
||||
PlVehicleRechargeRecord.recharge_type != str(recharge_type_ne).strip()
|
||||
)
|
||||
if recharge_date_from:
|
||||
query = query.filter(PlVehicleRechargeRecord.recharge_date >= recharge_date_from)
|
||||
if recharge_date_to:
|
||||
@@ -937,6 +944,7 @@ def list_disburse_board(
|
||||
license_plate: Optional[str] = None,
|
||||
recharge_type: Optional[str] = None,
|
||||
recharge_type_in: Optional[str] = None,
|
||||
recharge_type_ne: Optional[str] = None,
|
||||
apply_status: Optional[str] = None,
|
||||
apply_status_in: Optional[str] = None,
|
||||
apply_date_from: Optional[date] = None,
|
||||
@@ -997,6 +1005,7 @@ def list_disburse_board(
|
||||
license_plate=license_plate,
|
||||
recharge_type=recharge_type,
|
||||
recharge_type_in=recharge_type_in,
|
||||
recharge_type_ne=recharge_type_ne,
|
||||
apply_status=apply_status,
|
||||
apply_status_in=apply_status_in,
|
||||
apply_date_from=apply_date_from,
|
||||
|
||||
@@ -119,6 +119,20 @@ def test_maintenance_process_board_filters():
|
||||
assert "handler_id" in joined
|
||||
|
||||
|
||||
def test_recharge_apply_type_ne_filter():
|
||||
filters = build_recharge_apply_column_filters(recharge_type_ne="etc")
|
||||
assert len(filters) == 1
|
||||
sql = _compile(filters[0])
|
||||
assert "recharge_type" in sql
|
||||
assert "!=" in sql or "<>" in sql
|
||||
assert "etc" in sql
|
||||
|
||||
|
||||
def test_recharge_disburse_board_type_ne_filter():
|
||||
filters = build_recharge_disburse_board_column_filters(recharge_type_ne="etc")
|
||||
assert any("recharge_type" in _compile(f) for f in filters)
|
||||
|
||||
|
||||
def test_empty():
|
||||
assert build_recharge_apply_column_filters() == []
|
||||
assert build_recharge_disburse_board_column_filters() == []
|
||||
|
||||
Reference in new issue
Block a user