| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- """运输计划列头 facet:从上下文参数中剥离当前列自身条件(Excel 语义)。"""
- from __future__ import annotations
- from typing import Dict, MutableMapping, Set
- _FIELD_ALIASES = {
- "loadCustomers": "loadCustomer",
- "deliveryCustomers": "deliveryCustomer",
- "contractNo": "productContract",
- "productPackageSpec": "packageSpec",
- }
- _FIELD_KEYS: Dict[str, Set[str]] = {
- "planNo": {"planNo", "planNoIn", "plan_no", "plan_no_in"},
- "licensePlate": {
- "licensePlate",
- "licensePlateIn",
- "license_plate",
- "license_plate_in",
- },
- "carrierName": {
- "carrierName",
- "carrierNameIn",
- "carrier_name",
- "carrier_name_in",
- },
- "loadCustomer": {
- "loadCustomer",
- "loadCustomerIn",
- "loadCustomers",
- "loadCustomersIn",
- "load_customers",
- "load_customers_in",
- "stopCustomers",
- "stop_customers",
- "customerKeyword",
- "customer_keyword",
- },
- "deliveryCustomer": {
- "deliveryCustomer",
- "deliveryCustomerIn",
- "deliveryCustomers",
- "deliveryCustomersIn",
- "delivery_customers",
- "delivery_customers_in",
- "stopCustomers",
- "stop_customers",
- "customerKeyword",
- "customer_keyword",
- },
- "productContract": {
- "productContract",
- "productContractIn",
- "contractNo",
- "contractNoIn",
- "contract_no",
- "contract_no_in",
- "stopKind",
- "stopKindIn",
- "stop_kind",
- "stop_kind_in",
- },
- "productName": {
- "productName",
- "productNameIn",
- "product_name",
- "product_name_in",
- },
- "productSpec": {
- "productSpec",
- "productSpecIn",
- "product_spec",
- "product_spec_in",
- },
- "packageSpec": {
- "packageSpec",
- "packageSpecIn",
- "package_spec",
- "package_spec_in",
- "productPackageSpec",
- "productPackageSpecIn",
- },
- "productUnit": {
- "productUnit",
- "productUnitIn",
- "product_unit",
- "product_unit_in",
- },
- "gapType": {"gapType", "gapTypeIn", "gap_type"},
- }
- def _keys_for_field(field: str) -> Set[str]:
- f = _FIELD_ALIASES.get((field or "").strip(), (field or "").strip())
- keys = _FIELD_KEYS.get(f)
- if keys:
- return set(keys)
- snake = "".join(["_" + c.lower() if c.isupper() else c for c in f]).lstrip("_")
- return {f, f"{f}In", snake, f"{snake}_in"}
- def strip_plan_facet_self_params(
- params: MutableMapping[str, object], field: str
- ) -> Dict[str, object]:
- """返回去掉当前 facet 列对应过滤键后的新 dict(不修改入参)。"""
- out = {k: v for k, v in params.items() if v not in (None, "")}
- for key in _keys_for_field(field):
- out.pop(key, None)
- for meta in ("field", "keyword", "limit"):
- out.pop(meta, None)
- return out
|