crm_payment.py 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. from datetime import datetime, date
  2. from decimal import Decimal
  3. from typing import Optional
  4. from sqlalchemy import BigInteger, String, DateTime, Integer, Text, Numeric, SmallInteger, Date, CHAR
  5. from sqlalchemy.orm import Mapped, mapped_column
  6. from app.database import Base
  7. class CrmPayment(Base):
  8. __tablename__ = "crm_payment"
  9. id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
  10. payment_no: Mapped[Optional[str]] = mapped_column(String(50), comment="回款编号")
  11. contract_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="合同ID")
  12. contract_no: Mapped[Optional[str]] = mapped_column(String(50), comment="合同编号")
  13. customer_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="客户ID")
  14. customer_name: Mapped[Optional[str]] = mapped_column(String(200), comment="客户名称")
  15. plan_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="回款计划ID")
  16. plan_no: Mapped[Optional[str]] = mapped_column(String(50), comment="回款计划编号")
  17. period: Mapped[Optional[int]] = mapped_column(Integer, comment="期数")
  18. amount: Mapped[Optional[Decimal]] = mapped_column(Numeric(15, 2), comment="回款金额")
  19. payment_date: Mapped[Optional[date]] = mapped_column(Date, comment="回款日期")
  20. payment_method: Mapped[Optional[str]] = mapped_column(String(20), comment="回款方式")
  21. payment_account: Mapped[Optional[str]] = mapped_column(String(100), comment="回款账号")
  22. voucher_no: Mapped[Optional[str]] = mapped_column(String(100), comment="凭证号")
  23. voucher_file: Mapped[Optional[str]] = mapped_column(String(500), comment="凭证文件")
  24. status: Mapped[Optional[str]] = mapped_column(String(20), default="0", comment="状态")
  25. confirm_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="确认人ID")
  26. confirm_by_name: Mapped[Optional[str]] = mapped_column(String(50), comment="确认人姓名")
  27. confirm_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="确认时间")
  28. invalid_reason: Mapped[Optional[str]] = mapped_column(String(500), comment="作废原因")
  29. invalid_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="作废时间")
  30. owner_user_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="负责人ID")
  31. owner_user_name: Mapped[Optional[str]] = mapped_column(String(50), comment="负责人姓名")
  32. bank_name: Mapped[Optional[str]] = mapped_column(String(100), comment="开户银行")
  33. bank_account: Mapped[Optional[str]] = mapped_column(String(100), comment="银行账号")
  34. tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
  35. create_dept: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建部门")
  36. create_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建者")
  37. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
  38. update_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="更新者")
  39. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="更新时间")
  40. del_flag: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, comment="删除标志(0存在 1删除)")
  41. version: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="版本号")
  42. remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
  43. class CrmPaymentPlan(Base):
  44. __tablename__ = "crm_payment_plan"
  45. id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
  46. plan_no: Mapped[Optional[str]] = mapped_column(String(50), comment="计划编号")
  47. contract_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="合同ID")
  48. contract_no: Mapped[Optional[str]] = mapped_column(String(50), comment="合同编号")
  49. customer_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="客户ID")
  50. customer_name: Mapped[Optional[str]] = mapped_column(String(200), comment="客户名称")
  51. period: Mapped[Optional[int]] = mapped_column(Integer, comment="期数")
  52. plan_amount: Mapped[Optional[Decimal]] = mapped_column(Numeric(15, 2), comment="计划金额")
  53. plan_date: Mapped[Optional[date]] = mapped_column(Date, comment="计划回款日期")
  54. plan_percent: Mapped[Optional[Decimal]] = mapped_column(Numeric(5, 2), comment="计划回款比例")
  55. received_amount: Mapped[Optional[Decimal]] = mapped_column(Numeric(15, 2), default=Decimal("0"), comment="已回款金额")
  56. unreceived_amount: Mapped[Optional[Decimal]] = mapped_column(Numeric(15, 2), default=Decimal("0"), comment="未回款金额")
  57. status: Mapped[Optional[str]] = mapped_column(String(20), default="0", comment="状态")
  58. is_overdue: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, comment="是否逾期")
  59. overdue_days: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="逾期天数")
  60. remind_days: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="提醒天数")
  61. remind_status: Mapped[Optional[str]] = mapped_column(String(20), default="0", comment="提醒状态")
  62. last_remind_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="最后提醒时间")
  63. owner_user_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="负责人ID")
  64. owner_user_name: Mapped[Optional[str]] = mapped_column(String(50), comment="负责人姓名")
  65. tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
  66. create_dept: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建部门")
  67. create_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建者")
  68. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
  69. update_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="更新者")
  70. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="更新时间")
  71. del_flag: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, comment="删除标志(0存在 1删除)")
  72. version: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="版本号")
  73. remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
  74. class CrmPaymentCollection(Base):
  75. __tablename__ = "crm_payment_collection"
  76. id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
  77. plan_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="回款计划ID")
  78. contract_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="合同ID")
  79. contract_no: Mapped[Optional[str]] = mapped_column(String(50), comment="合同编号")
  80. customer_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="客户ID")
  81. customer_name: Mapped[Optional[str]] = mapped_column(String(200), comment="客户名称")
  82. collection_date: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="催收日期")
  83. collection_method: Mapped[Optional[str]] = mapped_column(String(20), comment="催收方式")
  84. contact_person: Mapped[Optional[str]] = mapped_column(String(100), comment="联系人")
  85. contact_phone: Mapped[Optional[str]] = mapped_column(String(20), comment="联系电话")
  86. collection_content: Mapped[Optional[str]] = mapped_column(Text, comment="催收内容")
  87. customer_feedback: Mapped[Optional[str]] = mapped_column(String(20), comment="客户反馈")
  88. feedback_detail: Mapped[Optional[str]] = mapped_column(String(500), comment="反馈详情")
  89. promise_date: Mapped[Optional[date]] = mapped_column(Date, comment="承诺回款日期")
  90. collector_user_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="催收人ID")
  91. collector_user_name: Mapped[Optional[str]] = mapped_column(String(50), comment="催收人姓名")
  92. attachment: Mapped[Optional[str]] = mapped_column(String(500), comment="附件")
  93. tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
  94. create_dept: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建部门")
  95. create_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建者")
  96. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
  97. update_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="更新者")
  98. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="更新时间")
  99. del_flag: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, comment="删除标志(0存在 1删除)")
  100. remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")