po.py 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. from typing import Optional, List, Annotated
  2. from datetime import datetime
  3. from ruoyi_common.base.model import BaseEntity
  4. from pydantic import ConfigDict, model_validator, BeforeValidator
  5. from ruoyi_common.utils.base import DateUtil
  6. from ruoyi_common.base.transformer import to_datetime
  7. from sqlalchemy import CHAR, DateTime, String, text
  8. from sqlalchemy.dialects.mysql import BIGINT, INTEGER
  9. from sqlalchemy.orm import Mapped, mapped_column
  10. from ruoyi_admin.ext import db
  11. class GenTablePo(db.Model):
  12. __tablename__ = 'gen_table'
  13. __table_args__ = {'comment': '代码生成业务表'}
  14. table_id: Mapped[int] = mapped_column(BIGINT(20), primary_key=True, comment='编号')
  15. table_name: Mapped[Optional[str]] = mapped_column(String(200), server_default=text("''"), comment='表名称')
  16. table_comment: Mapped[Optional[str]] = mapped_column(String(500), server_default=text("''"), comment='表描述')
  17. sub_table_name: Mapped[Optional[str]] = mapped_column(String(64), comment='关联子表的表名')
  18. sub_table_fk_name: Mapped[Optional[str]] = mapped_column(String(64), comment='子表关联的外键名')
  19. class_name: Mapped[Optional[str]] = mapped_column(String(100), server_default=text("''"), comment='实体类名称')
  20. tpl_category: Mapped[Optional[str]] = mapped_column(String(200), server_default=text("'crud'"), comment='使用的模板')
  21. package_name: Mapped[Optional[str]] = mapped_column(String(100), comment='生成包路径')
  22. module_name: Mapped[Optional[str]] = mapped_column(String(30), comment='生成模块名')
  23. business_name: Mapped[Optional[str]] = mapped_column(String(30), comment='生成业务名')
  24. function_name: Mapped[Optional[str]] = mapped_column(String(50), comment='生成功能名')
  25. function_author: Mapped[Optional[str]] = mapped_column(String(50), comment='生成功能作者')
  26. gen_type: Mapped[Optional[str]] = mapped_column(CHAR(1), server_default=text("'0'"), comment='生成代码方式(0zip压缩包 1自定义路径)')
  27. gen_path: Mapped[Optional[str]] = mapped_column(String(200), server_default=text("'/'"), comment='生成路径(不填默认项目路径)')
  28. options: Mapped[Optional[str]] = mapped_column(String(1000), comment='其它生成选项')
  29. create_by: Mapped[Optional[str]] = mapped_column(String(64), server_default=text("''"), comment='创建者')
  30. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment='创建时间')
  31. update_by: Mapped[Optional[str]] = mapped_column(String(64), server_default=text("''"), comment='更新者')
  32. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment='更新时间')
  33. remark: Mapped[Optional[str]] = mapped_column(String(500), comment='备注')
  34. class GenTableColumnPo(db.Model):
  35. __tablename__ = 'gen_table_column'
  36. __table_args__ = {'comment': '代码生成业务列'}
  37. column_id: Mapped[int] = mapped_column(BIGINT(20), primary_key=True, comment='编号')
  38. table_id: Mapped[Optional[int]] = mapped_column(BIGINT(20), comment='归属表编号')
  39. column_name: Mapped[Optional[str]] = mapped_column(String(200), server_default=text("''"), comment='列名称')
  40. column_comment: Mapped[Optional[str]] = mapped_column(String(500), server_default=text("''"), comment='列描述')
  41. column_type: Mapped[Optional[str]] = mapped_column(String(100), server_default=text("''"), comment='列类型')
  42. java_type: Mapped[Optional[str]] = mapped_column(String(500), server_default=text("''"), comment='JAVA类型')
  43. java_field: Mapped[Optional[str]] = mapped_column(String(200), server_default=text("''"), comment='JAVA字段名')
  44. is_pk: Mapped[Optional[str]] = mapped_column(CHAR(1), server_default=text("'0'"), comment='是否主键(1是)')
  45. is_increment: Mapped[Optional[str]] = mapped_column(CHAR(1), server_default=text("'0'"), comment='是否自增(1是)')
  46. is_required: Mapped[Optional[str]] = mapped_column(CHAR(1), server_default=text("'0'"), comment='是否必填(1是)')
  47. is_insert: Mapped[Optional[str]] = mapped_column(CHAR(1), server_default=text("'1'"), comment='是否为插入字段(1是)')
  48. is_edit: Mapped[Optional[str]] = mapped_column(CHAR(1), server_default=text("'1'"), comment='是否编辑字段(1是)')
  49. is_list: Mapped[Optional[str]] = mapped_column(CHAR(1), server_default=text("'1'"), comment='是否列表字段(1是)')
  50. is_query: Mapped[Optional[str]] = mapped_column(CHAR(1), server_default=text("'1'"), comment='是否查询字段(1是)')
  51. query_type: Mapped[Optional[str]] = mapped_column(String(200), server_default=text("'EQ'"), comment='查询方式(等于、不等于、大于、小于、范围)')
  52. html_type: Mapped[Optional[str]] = mapped_column(String(200), comment='显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)')
  53. dict_type: Mapped[Optional[str]] = mapped_column(String(200), server_default=text("''"), comment='字典类型')
  54. sort: Mapped[Optional[int]] = mapped_column(INTEGER(4), server_default=text("'0'"), comment='排序')
  55. create_by: Mapped[Optional[str]] = mapped_column(String(64), server_default=text("''"), comment='创建者')
  56. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment='创建时间')
  57. update_by: Mapped[Optional[str]] = mapped_column(String(64), server_default=text("''"), comment='更新者')
  58. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment='更新时间')
  59. remark: Mapped[Optional[str]] = mapped_column(String(500), comment='备注')
  60. class GenTablePO(BaseEntity):
  61. """
  62. 代码生成业务表
  63. """
  64. model_config = ConfigDict(
  65. from_attributes=True,
  66. json_encoders = {
  67. datetime: lambda v: v.strftime(DateUtil.YYYY_MM_DD_HH_MM_SS) if v else None
  68. },
  69. extra = "ignore"
  70. )
  71. table_id: Optional[int] = None
  72. table_name: Optional[str] = None
  73. table_comment: Optional[str] = None
  74. sub_table_name: Optional[str] = None
  75. sub_table_fk_name: Optional[str] = None
  76. class_name: Optional[str] = None
  77. tpl_category: Optional[str] = None
  78. package_name: Optional[str] = None
  79. module_name: Optional[str] = None
  80. business_name: Optional[str] = None
  81. function_name: Optional[str] = None
  82. function_author: Optional[str] = None
  83. gen_type: Optional[str] = None
  84. gen_path: Optional[str] = None
  85. options: Optional[str] = None
  86. create_by: Optional[str] = None
  87. create_time: Optional[Annotated[datetime, BeforeValidator(to_datetime())]] = None
  88. update_by: Optional[str] = None
  89. update_time: Optional[Annotated[datetime, BeforeValidator(to_datetime())]] = None
  90. remark: Optional[str] = None
  91. columns: Optional[List['GenTableColumnPO']] = None
  92. pk_column: Optional[dict] = None
  93. params: Optional[dict] = None
  94. # 添加tree相关字段
  95. tree_name: Optional[str] = None
  96. tree_code: Optional[str] = None
  97. tree_parent_code: Optional[str] = None
  98. # 分页参数
  99. page_num: Optional[int] = None
  100. page_size: Optional[int] = None
  101. class GenTableColumnPO(BaseEntity):
  102. """
  103. 代码生成业务列
  104. """
  105. model_config = ConfigDict(
  106. from_attributes=True,
  107. json_encoders = {
  108. datetime: lambda v: v.strftime(DateUtil.YYYY_MM_DD_HH_MM_SS) if v else None
  109. },
  110. extra = "ignore"
  111. )
  112. column_id: Optional[int] = None
  113. table_id: Optional[int] = None
  114. column_name: Optional[str] = None
  115. column_comment: Optional[str] = None
  116. column_type: Optional[str] = None
  117. java_type: Optional[str] = None
  118. java_field: Optional[str] = None
  119. is_pk: Optional[str] = None
  120. is_increment: Optional[str] = None
  121. is_required: Optional[str] = None
  122. is_insert: Optional[str] = None
  123. is_edit: Optional[str] = None
  124. is_list: Optional[str] = None
  125. is_query: Optional[str] = None
  126. query_type: Optional[str] = "EQ"
  127. html_type: Optional[str] = None
  128. dict_type: Optional[str] = ""
  129. sort: Optional[int] = None
  130. create_by: Optional[str] = ""
  131. create_time: Optional[Annotated[datetime, BeforeValidator(to_datetime())]] = None
  132. update_by: Optional[str] = ""
  133. update_time: Optional[Annotated[datetime, BeforeValidator(to_datetime())]] = None
  134. remark: Optional[str] = None
  135. # 分页参数
  136. page_num: Optional[int] = None
  137. page_size: Optional[int] = None