seed_express_companies.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/env python3
  2. """批量初始化常用快递公司(biz_express_company),已存在编码则跳过。"""
  3. from __future__ import annotations
  4. import sys
  5. from pathlib import Path
  6. ROOT = Path(__file__).resolve().parents[1]
  7. if str(ROOT) not in sys.path:
  8. sys.path.insert(0, str(ROOT))
  9. from app.core.database import SessionLocal
  10. from app.crud import express_company as express_company_svc
  11. # (express_code, express_name, order_num, remark)
  12. EXPRESS_COMPANIES = [
  13. ("SF", "顺丰速运", 1, "常用快递"),
  14. ("YTO", "圆通速递", 2, "常用快递"),
  15. ("ZTO", "中通快递", 3, "常用快递"),
  16. ("STO", "申通快递", 4, "常用快递"),
  17. ("YD", "韵达速递", 5, "常用快递"),
  18. ("JD", "京东物流", 6, "常用快递"),
  19. ("EMS", "中国邮政EMS", 7, "常用快递"),
  20. ("HTKY", "百世快递", 8, "常用快递"),
  21. ("JTSD", "极兔速递", 9, "常用快递"),
  22. ("DBL", "德邦快递", 10, "常用快递"),
  23. ]
  24. def seed(tenant_no: str = "zkxw", user_id: str = "d3000000000000000000000000000001") -> None:
  25. db = SessionLocal()
  26. created = 0
  27. skipped = 0
  28. try:
  29. for code, name, order_num, remark in EXPRESS_COMPANIES:
  30. if express_company_svc.express_code_exists(db, code, tenant_no):
  31. skipped += 1
  32. continue
  33. express_company_svc.create_express_company(
  34. db,
  35. express_code=code,
  36. express_name=name,
  37. tenant_no=tenant_no,
  38. order_num=order_num,
  39. remark=remark,
  40. user_id=user_id,
  41. )
  42. created += 1
  43. print(f"快递公司初始化完成:新增 {created} 条,跳过 {skipped} 条(编码已存在)。")
  44. finally:
  45. db.close()
  46. if __name__ == "__main__":
  47. seed()