schema.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. # -*- coding: utf-8 -*-
  2. from pydantic import BaseModel, ConfigDict, Field
  3. from fastapi import Query
  4. from app.core.validator import DateTimeStr
  5. from app.core.base_schema import BaseSchema, UserBySchema
  6. class BizMecCreateSchema(BaseModel):
  7. """
  8. 机构信息新增模型
  9. """
  10. crane_no: str = Field(default=..., description='起重机编号 ')
  11. mec_no: str = Field(default=..., description='机构编号 ')
  12. mec_category: str = Field(default=..., description='机构分类 MecCategory')
  13. mec_type: str = Field(default=..., description='机构类型 MecType')
  14. hoist_weight: str | None = Field(default=None, description='起升重量 起升机构')
  15. hoist_height: str | None = Field(default=None, description='起升高度 起升机构')
  16. hoist_speed: str | None = Field(default=None, description='起升速度 起升机构')
  17. rope_count: str | None = Field(default=None, description='钢线绳受力根数 起升机构')
  18. rope_max_pull: str | None = Field(default=None, description='钢丝绳最大拉力 起升机构')
  19. rope_diameter: str | None = Field(default=None, description='钢丝绳直径 起升机构')
  20. rope_model: str | None = Field(default=None, description='钢丝绳型号 起升机构')
  21. car_speed: str | None = Field(default=None, description='速度 平移机构')
  22. wheel_span: str | None = Field(default=None, description='轮距 平移机构')
  23. track_span: str | None = Field(default=None, description='轨距 平移机构')
  24. wheel_pressure: str | None = Field(default=None, description='轮压 平移机构')
  25. track_model: str | None = Field(default=None, description='轨道型号 平移机构')
  26. track_diameter: str | None = Field(default=None, description='车轨直径 平移机构')
  27. track_count: str | None = Field(default=None, description='车轨数量 平移机构')
  28. word_system: str | None = Field(default=None, description='工作制度 ')
  29. reducer_model: str | None = Field(default=None, description='减速机型号 ')
  30. reducer_trans_ratio: str | None = Field(default=None, description='减速机传动比 ')
  31. reducer_total_trans_ratio: str | None = Field(default=None, description='减速机总传动比 ')
  32. motor_model: str | None = Field(default=None, description='电机型号 ')
  33. motor_voltage: str | None = Field(default=None, description='电机额定电压 ')
  34. motor_current: str | None = Field(default=None, description='电机额定电流 ')
  35. motor_power: str | None = Field(default=None, description='电机额定功率 ')
  36. motor_speed: str | None = Field(default=None, description='电机转速 ')
  37. motor_count: str | None = Field(default=None, description='电机数量 ')
  38. bradk_model: str | None = Field(default=None, description='制动器型号 ')
  39. brake_torque: str | None = Field(default=None, description='制动器制动力矩 ')
  40. brake_wheel_diameter: str | None = Field(default=None, description='制动器轮径 ')
  41. brake_count: str | None = Field(default=None, description='制动器数量 ')
  42. sort: int = Field(default=..., description='排序 ')
  43. status: str = Field(default="1", description='是否启用(0:禁用 1:启用)')
  44. description: str | None = Field(default=None, max_length=255, description='备注/描述')
  45. hoist_weight_var_code: str | None = Field(default=None, description='重量关联变量')
  46. stroke_var_code: str | None = Field(default=None, description='行程高度变量')
  47. is_canvas_show: str | None = Field(default="0", description='是否首页动画展示')
  48. is_canvas_move: str | None = Field(default="0", description='是否启用动画')
  49. gear_select_var_codes: str | None = Field(default=None, description='机构选择变量')
  50. vib_gear_value: int | None = Field(default=None, description='振动分析挡位')
  51. class BizMecUpdateSchema(BizMecCreateSchema):
  52. """
  53. 机构信息更新模型
  54. """
  55. ...
  56. class BizMecOutSchema(BizMecCreateSchema, BaseSchema):
  57. """
  58. 机构信息响应模型
  59. """
  60. model_config = ConfigDict(from_attributes=True)
  61. class BizMecQueryParam:
  62. """机构信息查询参数"""
  63. def __init__(
  64. self,
  65. hoist_weight: str | None = Query(None, description="起升重量 起升机构"),
  66. hoist_height: str | None = Query(None, description="起升高度 起升机构"),
  67. hoist_speed: str | None = Query(None, description="起升速度 起升机构"),
  68. rope_count: str | None = Query(None, description="钢线绳受力根数 起升机构"),
  69. rope_max_pull: str | None = Query(None, description="钢丝绳最大拉力 起升机构"),
  70. rope_diameter: str | None = Query(None, description="钢丝绳直径 起升机构"),
  71. rope_model: str | None = Query(None, description="钢丝绳型号 起升机构"),
  72. car_speed: str | None = Query(None, description="速度 平移机构"),
  73. wheel_span: str | None = Query(None, description="轮距 平移机构"),
  74. track_span: str | None = Query(None, description="轨距 平移机构"),
  75. wheel_pressure: str | None = Query(None, description="轮压 平移机构"),
  76. track_model: str | None = Query(None, description="轨道型号 平移机构"),
  77. track_diameter: str | None = Query(None, description="车轨直径 平移机构"),
  78. track_count: str | None = Query(None, description="车轨数量 平移机构"),
  79. word_system: str | None = Query(None, description="工作制度 "),
  80. reducer_model: str | None = Query(None, description="减速机型号 "),
  81. reducer_trans_ratio: str | None = Query(None, description="减速机传动比 "),
  82. reducer_total_trans_ratio: str | None = Query(None, description="减速机总传动比 "),
  83. motor_model: str | None = Query(None, description="电机型号 "),
  84. motor_voltage: str | None = Query(None, description="电机额定电压 "),
  85. motor_current: str | None = Query(None, description="电机额定电流 "),
  86. motor_power: str | None = Query(None, description="电机额定功率 "),
  87. motor_speed: str | None = Query(None, description="电机转速 "),
  88. motor_count: str | None = Query(None, description="电机数量 "),
  89. bradk_model: str | None = Query(None, description="制动器型号 "),
  90. brake_torque: str | None = Query(None, description="制动器制动力矩 "),
  91. brake_wheel_diameter: str | None = Query(None, description="制动器轮径 "),
  92. brake_count: str | None = Query(None, description="制动器数量 "),
  93. status: str | None = Query(None, description="是否启用(0:启用 1:禁用)"),
  94. hoist_weight_var_code: str | None = Query(None, description="重量关联变量"),
  95. stroke_var_code: str | None = Query(None, description="行程高度变量"),
  96. is_canvas_show: str | None = Query(None, description="是否首页动画展示"),
  97. is_canvas_move: str | None = Query(None, description="是否启用动画"),
  98. gear_select_var_codes: str | None = Query(None, description="机构选择变量"),
  99. crane_no: str | None = Query(None, description="起重机编号 "),
  100. mec_no: str | None = Query(None, description="机构编号 "),
  101. mec_category: str | None = Query(None, description="机构分类 MecCategory"),
  102. mec_type: str | None = Query(None, description="机构类型 MecType"),
  103. sort: int | None = Query(None, description="排序 "),
  104. vib_gear_value: int | None = Query(None, description="振动分析挡位"),
  105. created_time: list[DateTimeStr] | None = Query(None, description="创建时间范围", examples=["2025-01-01 00:00:00", "2025-12-31 23:59:59"]),
  106. updated_time: list[DateTimeStr] | None = Query(None, description="更新时间范围", examples=["2025-01-01 00:00:00", "2025-12-31 23:59:59"]),
  107. ) -> None:
  108. # 精确查询字段
  109. self.crane_no = crane_no
  110. # 精确查询字段
  111. self.mec_no = mec_no
  112. # 精确查询字段
  113. self.mec_category = mec_category
  114. # 精确查询字段
  115. self.mec_type = mec_type
  116. # 模糊查询字段
  117. self.hoist_weight = ("like", hoist_weight)
  118. # 模糊查询字段
  119. self.hoist_height = ("like", hoist_height)
  120. # 模糊查询字段
  121. self.hoist_speed = ("like", hoist_speed)
  122. # 模糊查询字段
  123. self.rope_count = ("like", rope_count)
  124. # 模糊查询字段
  125. self.rope_max_pull = ("like", rope_max_pull)
  126. # 模糊查询字段
  127. self.rope_diameter = ("like", rope_diameter)
  128. # 模糊查询字段
  129. self.rope_model = ("like", rope_model)
  130. # 模糊查询字段
  131. self.car_speed = ("like", car_speed)
  132. # 模糊查询字段
  133. self.wheel_span = ("like", wheel_span)
  134. # 模糊查询字段
  135. self.track_span = ("like", track_span)
  136. # 模糊查询字段
  137. self.wheel_pressure = ("like", wheel_pressure)
  138. # 模糊查询字段
  139. self.track_model = ("like", track_model)
  140. # 模糊查询字段
  141. self.track_diameter = ("like", track_diameter)
  142. # 模糊查询字段
  143. self.track_count = ("like", track_count)
  144. # 模糊查询字段
  145. self.word_system = ("like", word_system)
  146. # 模糊查询字段
  147. self.reducer_model = ("like", reducer_model)
  148. # 模糊查询字段
  149. self.reducer_trans_ratio = ("like", reducer_trans_ratio)
  150. # 模糊查询字段
  151. self.reducer_total_trans_ratio = ("like", reducer_total_trans_ratio)
  152. # 模糊查询字段
  153. self.motor_model = ("like", motor_model)
  154. # 模糊查询字段
  155. self.motor_voltage = ("like", motor_voltage)
  156. # 模糊查询字段
  157. self.motor_current = ("like", motor_current)
  158. # 模糊查询字段
  159. self.motor_power = ("like", motor_power)
  160. # 模糊查询字段
  161. self.motor_speed = ("like", motor_speed)
  162. # 模糊查询字段
  163. self.motor_count = ("like", motor_count)
  164. # 模糊查询字段
  165. self.bradk_model = ("like", bradk_model)
  166. # 模糊查询字段
  167. self.brake_torque = ("like", brake_torque)
  168. # 模糊查询字段
  169. self.brake_wheel_diameter = ("like", brake_wheel_diameter)
  170. # 模糊查询字段
  171. self.brake_count = ("like", brake_count)
  172. # 精确查询字段
  173. self.sort = sort
  174. # 模糊查询字段
  175. self.status = ("like", status)
  176. # 模糊查询字段
  177. self.hoist_weight_var_code = ("like", hoist_weight_var_code)
  178. # 模糊查询字段
  179. self.stroke_var_code = ("like", stroke_var_code)
  180. # 模糊查询字段
  181. self.is_canvas_show = ("like", is_canvas_show)
  182. # 模糊查询字段
  183. self.is_canvas_move = ("like", is_canvas_move)
  184. # 模糊查询字段
  185. self.gear_select_var_codes = ("like", gear_select_var_codes)
  186. # 精确查询字段
  187. self.vib_gear_value = vib_gear_value
  188. # 时间范围查询
  189. if created_time and len(created_time) == 2:
  190. self.created_time = ("between", (created_time[0], created_time[1]))
  191. if updated_time and len(updated_time) == 2:
  192. self.updated_time = ("between", (updated_time[0], updated_time[1]))