models.py 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879
  1. # coding: utf-8
  2. from datetime import datetime
  3. from sqlalchemy import Column, Date, DateTime, Float, Index, Integer, String, Text
  4. from sqlalchemy.schema import FetchedValue
  5. from flask_sqlalchemy import SQLAlchemy
  6. # db = SQLAlchemy()
  7. #與當前項目相關的模型文件,即所有的實體類在此編寫
  8. from coffee_manage import db
  9. from werkzeug.utils import send_file
  10. #用戶表
  11. class User(db.Model):
  12. __tablename__ = 'user'
  13. userID = db.Column(db.Integer, primary_key=True)
  14. firstname = db.Column(db.String(30), nullable=False)
  15. lastname = db.Column(db.String(30), nullable=False)
  16. mail = db.Column(db.String(50), nullable=False)
  17. phone = db.Column(db.String(20), nullable=False)
  18. username = db.Column(db.String(30), nullable=False, unique=True)
  19. password = db.Column(db.String(40), nullable=False)
  20. status = db.Column(db.Integer, nullable=False, info='0:admin;1:new;9:disable')
  21. # ////////////////////////////////////////////////////////////////////////////////
  22. # dry_block 取值測試
  23. class dry_block_waiting(db.Model):
  24. __tablename__ = 'dry_block_waiting'
  25. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  26. cond_z1_1 = db.Column(db.Text, nullable=False)
  27. cond_tank1_1 = db.Column(db.Text, nullable=False)
  28. cond_a1_1 = db.Column(db.Text, nullable=False)
  29. cond_b1_1 = db.Column(db.Text, nullable=False)
  30. cond_c1_1 = db.Column(db.Text, nullable=False)
  31. cond_a1_2 = db.Column(db.Text, nullable=False)
  32. cond_b1_2 = db.Column(db.Text, nullable=False)
  33. cond_c1_2 = db.Column(db.Text, nullable=False)
  34. cond_d1_2 = db.Column(db.Text, nullable=False)
  35. cond_a1_3 = db.Column(db.Text, nullable=False)
  36. cond_b1_3 = db.Column(db.Text, nullable=False)
  37. cond_c1_3 = db.Column(db.Text, nullable=False)
  38. cond_d1_3 = db.Column(db.Text, nullable=False)
  39. cond_a1_4 = db.Column(db.Text, nullable=False)
  40. cond_b1_4 = db.Column(db.Text, nullable=False)
  41. cond_c1_4 = db.Column(db.Text, nullable=False)
  42. cond_d1_4 = db.Column(db.Text, nullable=False)
  43. cond_a1_5 = db.Column(db.Text, nullable=False)
  44. cond_b1_5 = db.Column(db.Text, nullable=False)
  45. cond_c1_5 = db.Column(db.Text, nullable=False)
  46. cond_d1_5 = db.Column(db.Text, nullable=False)
  47. do_obj1_1 = db.Column(db.Text, nullable=False)
  48. do_act1_1 = db.Column(db.Text, nullable=False)
  49. do_obj1_2 = db.Column(db.Text, nullable=False)
  50. do_act1_2 = db.Column(db.Text, nullable=False)
  51. do_obj1_3 = db.Column(db.Text, nullable=False)
  52. do_act1_3 = db.Column(db.Text, nullable=False)
  53. do_obj1_4 = db.Column(db.Text, nullable=False)
  54. do_act1_4 = db.Column(db.Text, nullable=False)
  55. do_obj1_5 = db.Column(db.Text, nullable=False)
  56. do_act1_5 = db.Column(db.Text, nullable=False)
  57. cond_z2_1 = db.Column(db.Text, nullable=False)
  58. cond_tank2_1 = db.Column(db.Text, nullable=False)
  59. cond_a2_1 = db.Column(db.Text, nullable=False)
  60. cond_b2_1 = db.Column(db.Text, nullable=False)
  61. cond_c2_1 = db.Column(db.Text, nullable=False)
  62. cond_a2_2 = db.Column(db.Text, nullable=False)
  63. cond_b2_2 = db.Column(db.Text, nullable=False)
  64. cond_c2_2 = db.Column(db.Text, nullable=False)
  65. cond_d2_2 = db.Column(db.Text, nullable=False)
  66. cond_a2_3 = db.Column(db.Text, nullable=False)
  67. cond_b2_3 = db.Column(db.Text, nullable=False)
  68. cond_c2_3 = db.Column(db.Text, nullable=False)
  69. cond_d2_3 = db.Column(db.Text, nullable=False)
  70. cond_a2_4 = db.Column(db.Text, nullable=False)
  71. cond_b2_4 = db.Column(db.Text, nullable=False)
  72. cond_c2_4 = db.Column(db.Text, nullable=False)
  73. cond_d2_4 = db.Column(db.Text, nullable=False)
  74. cond_a2_5 = db.Column(db.Text, nullable=False)
  75. cond_b2_5 = db.Column(db.Text, nullable=False)
  76. cond_c2_5 = db.Column(db.Text, nullable=False)
  77. cond_d2_5 = db.Column(db.Text, nullable=False)
  78. do_obj2_1 = db.Column(db.Text, nullable=False)
  79. do_act2_1 = db.Column(db.Text, nullable=False)
  80. do_obj2_2 = db.Column(db.Text, nullable=False)
  81. do_act2_2 = db.Column(db.Text, nullable=False)
  82. do_obj2_3 = db.Column(db.Text, nullable=False)
  83. do_act2_3 = db.Column(db.Text, nullable=False)
  84. do_obj2_4 = db.Column(db.Text, nullable=False)
  85. do_act2_4 = db.Column(db.Text, nullable=False)
  86. do_obj2_5 = db.Column(db.Text, nullable=False)
  87. do_act2_5 = db.Column(db.Text, nullable=False)
  88. cond_z3_1 = db.Column(db.Text, nullable=False)
  89. cond_tank3_1 = db.Column(db.Text, nullable=False)
  90. cond_a3_1 = db.Column(db.Text, nullable=False)
  91. cond_b3_1 = db.Column(db.Text, nullable=False)
  92. cond_c3_1 = db.Column(db.Text, nullable=False)
  93. cond_a3_2 = db.Column(db.Text, nullable=False)
  94. cond_b3_2 = db.Column(db.Text, nullable=False)
  95. cond_c3_2 = db.Column(db.Text, nullable=False)
  96. cond_d3_2 = db.Column(db.Text, nullable=False)
  97. cond_a3_3 = db.Column(db.Text, nullable=False)
  98. cond_b3_3 = db.Column(db.Text, nullable=False)
  99. cond_c3_3 = db.Column(db.Text, nullable=False)
  100. cond_d3_3 = db.Column(db.Text, nullable=False)
  101. cond_a3_4 = db.Column(db.Text, nullable=False)
  102. cond_b3_4 = db.Column(db.Text, nullable=False)
  103. cond_c3_4 = db.Column(db.Text, nullable=False)
  104. cond_d3_4 = db.Column(db.Text, nullable=False)
  105. cond_a3_5 = db.Column(db.Text, nullable=False)
  106. cond_b3_5 = db.Column(db.Text, nullable=False)
  107. cond_c3_5 = db.Column(db.Text, nullable=False)
  108. cond_d3_5 = db.Column(db.Text, nullable=False)
  109. do_obj3_1 = db.Column(db.Text, nullable=False)
  110. do_act3_1 = db.Column(db.Text, nullable=False)
  111. do_obj3_2 = db.Column(db.Text, nullable=False)
  112. do_act3_2 = db.Column(db.Text, nullable=False)
  113. do_obj3_3 = db.Column(db.Text, nullable=False)
  114. do_act3_3 = db.Column(db.Text, nullable=False)
  115. do_obj3_4 = db.Column(db.Text, nullable=False)
  116. do_act3_4 = db.Column(db.Text, nullable=False)
  117. do_obj3_5 = db.Column(db.Text, nullable=False)
  118. do_act3_5 = db.Column(db.Text, nullable=False)
  119. cond_z4_1 = db.Column(db.Text, nullable=False)
  120. cond_tank4_1 = db.Column(db.Text, nullable=False)
  121. cond_a4_1 = db.Column(db.Text, nullable=False)
  122. cond_b4_1 = db.Column(db.Text, nullable=False)
  123. cond_c4_1 = db.Column(db.Text, nullable=False)
  124. cond_a4_2 = db.Column(db.Text, nullable=False)
  125. cond_b4_2 = db.Column(db.Text, nullable=False)
  126. cond_c4_2 = db.Column(db.Text, nullable=False)
  127. cond_d4_2 = db.Column(db.Text, nullable=False)
  128. cond_a4_3 = db.Column(db.Text, nullable=False)
  129. cond_b4_3 = db.Column(db.Text, nullable=False)
  130. cond_c4_3 = db.Column(db.Text, nullable=False)
  131. cond_d4_3 = db.Column(db.Text, nullable=False)
  132. cond_a4_4 = db.Column(db.Text, nullable=False)
  133. cond_b4_4 = db.Column(db.Text, nullable=False)
  134. cond_c4_4 = db.Column(db.Text, nullable=False)
  135. cond_d4_4 = db.Column(db.Text, nullable=False)
  136. cond_a4_5 = db.Column(db.Text, nullable=False)
  137. cond_b4_5 = db.Column(db.Text, nullable=False)
  138. cond_c4_5 = db.Column(db.Text, nullable=False)
  139. cond_d4_5 = db.Column(db.Text, nullable=False)
  140. do_obj4_1 = db.Column(db.Text, nullable=False)
  141. do_act4_1 = db.Column(db.Text, nullable=False)
  142. do_obj4_2 = db.Column(db.Text, nullable=False)
  143. do_act4_2 = db.Column(db.Text, nullable=False)
  144. do_obj4_3 = db.Column(db.Text, nullable=False)
  145. do_act4_3 = db.Column(db.Text, nullable=False)
  146. do_obj4_4 = db.Column(db.Text, nullable=False)
  147. do_act4_4 = db.Column(db.Text, nullable=False)
  148. do_obj4_5 = db.Column(db.Text, nullable=False)
  149. do_act4_5 = db.Column(db.Text, nullable=False)
  150. cond_z5_1 = db.Column(db.Text, nullable=False)
  151. cond_tank5_1 = db.Column(db.Text, nullable=False)
  152. cond_a5_1 = db.Column(db.Text, nullable=False)
  153. cond_b5_1 = db.Column(db.Text, nullable=False)
  154. cond_c5_1 = db.Column(db.Text, nullable=False)
  155. cond_a5_2 = db.Column(db.Text, nullable=False)
  156. cond_b5_2 = db.Column(db.Text, nullable=False)
  157. cond_c5_2 = db.Column(db.Text, nullable=False)
  158. cond_d5_2 = db.Column(db.Text, nullable=False)
  159. cond_a5_3 = db.Column(db.Text, nullable=False)
  160. cond_b5_3 = db.Column(db.Text, nullable=False)
  161. cond_c5_3 = db.Column(db.Text, nullable=False)
  162. cond_d5_3 = db.Column(db.Text, nullable=False)
  163. cond_a5_4 = db.Column(db.Text, nullable=False)
  164. cond_b5_4 = db.Column(db.Text, nullable=False)
  165. cond_c5_4 = db.Column(db.Text, nullable=False)
  166. cond_d5_4 = db.Column(db.Text, nullable=False)
  167. cond_a5_5 = db.Column(db.Text, nullable=False)
  168. cond_b5_5 = db.Column(db.Text, nullable=False)
  169. cond_c5_5 = db.Column(db.Text, nullable=False)
  170. cond_d5_5 = db.Column(db.Text, nullable=False)
  171. do_obj5_1 = db.Column(db.Text, nullable=False)
  172. do_act5_1 = db.Column(db.Text, nullable=False)
  173. do_obj5_2 = db.Column(db.Text, nullable=False)
  174. do_act5_2 = db.Column(db.Text, nullable=False)
  175. do_obj5_3 = db.Column(db.Text, nullable=False)
  176. do_act5_3 = db.Column(db.Text, nullable=False)
  177. do_obj5_4 = db.Column(db.Text, nullable=False)
  178. do_act5_4 = db.Column(db.Text, nullable=False)
  179. do_obj5_5 = db.Column(db.Text, nullable=False)
  180. do_act5_5 = db.Column(db.Text, nullable=False)
  181. # # ////////////////////////////////////////////////////////////////////////////////
  182. # 乾燥槽
  183. # 乾燥桶入料_感測器_超音波感測器
  184. class dry_input_sensor(db.Model):
  185. __tablename__ = 'dry_input_sensor'
  186. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  187. tank_num = db.Column(db.Text, nullable=False)
  188. UltraSonic = db.Column(db.Text, nullable=False)
  189. # 乾燥桶_感測器_SHT11
  190. class dry_tank_SHT11(db.Model):
  191. __tablename__ = 'dry_tank_SHT11'
  192. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  193. tank_num = db.Column(db.Text, nullable=False)
  194. SHT11_Temp = db.Column(db.Text, nullable=False)
  195. SHT11_Humidity = db.Column(db.Text, nullable=False)
  196. # 乾燥桶_感測器_土壤三合一感測器
  197. class dry_tank_Soil(db.Model):
  198. __tablename__ = 'dry_tank_Soil'
  199. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  200. tank_num = db.Column(db.Text, nullable=False)
  201. soil_Temp = db.Column(db.Text, nullable=False)
  202. soil_Humidity = db.Column(db.Text, nullable=False)
  203. soil_EC = db.Column(db.Text, nullable=False)
  204. # 乾燥桶_感測器_大氣壓力
  205. class dry_tank_PA(db.Model):
  206. __tablename__ = 'dry_tank_PA'
  207. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  208. tank_num = db.Column(db.Text, nullable=False)
  209. PA = db.Column(db.Text, nullable=False)
  210. # 乾燥桶_感測器_超音波感測器
  211. class dry_tank_UltraSonic(db.Model):
  212. __tablename__ = 'dry_tank_UltraSonic'
  213. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  214. tank_num = db.Column(db.Text, nullable=False)
  215. UltraSonic = db.Column(db.Text, nullable=False)
  216. # 乾燥桶出料_感測器_超音波感測器
  217. class dry_output_sensor(db.Model):
  218. __tablename__ = 'dry_output_sensor'
  219. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  220. tank_num = db.Column(db.Text, nullable=False)
  221. UltraSonic = db.Column(db.Text, nullable=False)
  222. # 乾燥桶入料_排程設定
  223. class set_dry_input(db.Model):
  224. __tablename__ = 'set_dry_input'
  225. sn = db.Column(db.Integer, primary_key=True)
  226. datetime = db.Column(db.DateTime, nullable=False)
  227. input_height = db.Column(db.Text, nullable=False)
  228. input_entertime = db.Column(db.Text, nullable=False)
  229. input_exittime = db.Column(db.Text, nullable=False)
  230. tank_height = db.Column(db.Text, nullable=False)
  231. # 乾燥桶入料_致動器_真空吸料機
  232. class dry_input_brake(db.Model):
  233. __tablename__ = 'dry_input_brake'
  234. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  235. tank_num = db.Column(db.Text, nullable=False)
  236. vacuum = db.Column(db.Integer, nullable=False)
  237. #乾燥桶_致動器_ALL
  238. class dry_tank_brake(db.Model):
  239. __tablename__ = 'dry_tank_brake'
  240. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  241. tank_num = db.Column(db.Text, nullable=False)
  242. vacuum = db.Column(db.Integer, nullable=False)
  243. threewayvalve_input = db.Column(db.Integer, nullable=False)
  244. threewayvalve_bean = db.Column(db.Integer, nullable=False)
  245. diskvalve = db.Column(db.Integer, nullable=False)
  246. solenoid_disinfect = db.Column(db.Integer, nullable=False)
  247. solenoid_water = db.Column(db.Integer, nullable=False)
  248. solenoid_outer_water = db.Column(db.Integer, nullable=False)
  249. motor = db.Column(db.Integer, nullable=False)
  250. blower = db.Column(db.Integer, nullable=False)
  251. heater1 = db.Column(db.Integer, nullable=False)
  252. heater2 = db.Column(db.Integer, nullable=False)
  253. temp1_enable = db.Column(db.Integer, nullable=False)
  254. temp1 = db.Column(db.Float, nullable=False)
  255. # 乾燥桶出料_致動器_真空吸料機
  256. class dry_output_brake(db.Model):
  257. __tablename__ = 'dry_output_brake'
  258. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  259. tank_num = db.Column(db.Text, nullable=False)
  260. vacuum = db.Column(db.Integer, nullable=False)
  261. # ////////////////////////////////////////////////////////////////////////////////
  262. # 發酵槽
  263. # 發酵槽_發酵貨櫃入料儲豆槽_超音波感測器
  264. class ferment_input_UltraSonic(db.Model):
  265. __tablename__ = 'ferment_input_UltraSonic'
  266. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  267. tank_num = db.Column(db.Text, nullable=False)
  268. UltraSonic = db.Column(db.Text, nullable=False)
  269. # 發酵槽_發酵貨櫃入料儲豆槽_致動器
  270. class ferment_input_actuator(db.Model):
  271. __tablename__ = 'ferment_input_actuator'
  272. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  273. tank_num = db.Column(db.Text, nullable=False)
  274. vacuum = db.Column(db.Integer, nullable=False)
  275. # 發酵槽_感測器_SHT11
  276. class ferment_tank_SHT11(db.Model):
  277. __tablename__ = 'ferment_tank_SHT11'
  278. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  279. tank_num = db.Column(db.Text, nullable=False)
  280. SHT11_Temp = db.Column(db.Text, nullable=False)
  281. SHT11_Humidity = db.Column(db.Text, nullable=False)
  282. # 發酵槽_感測器_二氧化碳
  283. class ferment_tank_CO2(db.Model):
  284. __tablename__ = 'ferment_tank_CO2'
  285. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  286. tank_num = db.Column(db.Text, nullable=False)
  287. CO2 = db.Column(db.Text, nullable=False)
  288. # 發酵槽_感測器_PH
  289. class ferment_tank_PH(db.Model):
  290. __tablename__ = 'ferment_tank_PH'
  291. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  292. tank_num = db.Column(db.Text, nullable=False)
  293. PH = db.Column(db.Text, nullable=False)
  294. # 發酵槽_感測器_ORP
  295. class ferment_tank_ORP(db.Model):
  296. __tablename__ = 'ferment_tank_ORP'
  297. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  298. tank_num = db.Column(db.Text, nullable=False)
  299. ORP = db.Column(db.Text, nullable=False)
  300. # 發酵槽_感測器_DO
  301. class ferment_tank_DO(db.Model):
  302. __tablename__ = 'ferment_tank_DO'
  303. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  304. tank_num = db.Column(db.Text, nullable=False)
  305. DO = db.Column(db.Text, nullable=False)
  306. # 發酵槽_感測器_EC
  307. class ferment_tank_EC(db.Model):
  308. __tablename__ = 'ferment_tank_EC'
  309. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  310. tank_num = db.Column(db.Text, nullable=False)
  311. EC = db.Column(db.Text, nullable=False)
  312. # 發酵槽_感測器_PA
  313. class ferment_tank_PA(db.Model):
  314. __tablename__ = 'ferment_tank_PA'
  315. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  316. tank_num = db.Column(db.Text, nullable=False)
  317. PA = db.Column(db.Text, nullable=False)
  318. # 發酵槽保溫夾層_感測器_保溫夾層水位計
  319. class ferment_tank_WaterLevel(db.Model):
  320. __tablename__ = 'ferment_tank_WaterLevel'
  321. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  322. tank_num = db.Column(db.Text, nullable=False)
  323. WaterLevel = db.Column(db.Text, nullable=False)
  324. # 發酵槽_感測器_超音波感測器
  325. class ferment_tank_UltraSonic(db.Model):
  326. __tablename__ = 'ferment_tank_UltraSonic'
  327. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  328. tank_num = db.Column(db.Text, nullable=False)
  329. UltraSonic = db.Column(db.Text, nullable=False)
  330. # 發酵槽_感測器_咖啡生豆高度
  331. class ferment_tank_LiDAR(db.Model):
  332. __tablename__ = 'ferment_tank_LiDAR'
  333. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  334. tank_num = db.Column(db.Text, nullable=False)
  335. LiDAR = db.Column(db.Text, nullable=False)
  336. # 發酵槽_感測器_水位高度
  337. class ferment_tank_PressureWaterLevel(db.Model):
  338. __tablename__ = 'ferment_tank_PressureWaterLevel'
  339. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  340. tank_num = db.Column(db.Text, nullable=False)
  341. PressureWaterLevel = db.Column(db.Text, nullable=False)
  342. # 發酵槽_感測器_馬達編碼器
  343. class ferment_tank_motorEncoder(db.Model):
  344. __tablename__ = 'ferment_tank_motorEncoder'
  345. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  346. tank_num = db.Column(db.Text, nullable=False)
  347. motorEncoder = db.Column(db.Text, nullable=False)
  348. # 發酵槽_致動器
  349. class ferment_tank_actuator(db.Model):
  350. __tablename__ = 'ferment_tank_actuator'
  351. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  352. tank_num = db.Column(db.Text, nullable=False)
  353. vacuum = db.Column(db.Integer, nullable=False)
  354. threewayvalve_input = db.Column(db.Integer, nullable=False)
  355. diskvalve = db.Column(db.Integer, nullable=False)
  356. solenoid_tank_pump = db.Column(db.Integer, nullable=False)
  357. solenoid_tank_disinfect = db.Column(db.Integer, nullable=False)
  358. solenoid_outer_water = db.Column(db.Integer, nullable=False)
  359. solenoid_tank_water_in = db.Column(db.Integer, nullable=False)
  360. solenoid_tank_water_out = db.Column(db.Integer, nullable=False)
  361. pump_sensor = db.Column(db.Integer, nullable=False)
  362. threewayvalve_outer_float = db.Column(db.Integer, nullable=False)
  363. motor = db.Column(db.Integer, nullable=False)
  364. heater1 = db.Column(db.Integer, nullable=False)
  365. heater2 = db.Column(db.Integer, nullable=False)
  366. temp_enable = db.Column(db.Integer, nullable=False)
  367. temp = db.Column(db.Integer, nullable=False)
  368. # 發酵槽_發酵貨櫃出料儲豆槽_感測器
  369. class ferment_output_UltraSonic(db.Model):
  370. __tablename__ = 'ferment_output_UltraSonic'
  371. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  372. tank_num = db.Column(db.Text, nullable=False)
  373. UltraSonic = db.Column(db.Text, nullable=False)
  374. # 發酵槽_發酵貨櫃出料儲豆槽_致動器
  375. class ferment_output_actuator(db.Model):
  376. __tablename__ = 'ferment_output_actuator'
  377. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  378. tank_num = db.Column(db.Text, nullable=False)
  379. vacuum = db.Column(db.Integer, nullable=False)
  380. # 發酵槽_發酵貨櫃自動化狀態判斷
  381. class ferment_container_status(db.Model):
  382. __tablename__ = 'ferment_container_status'
  383. sn = db.Column(db.Integer, primary_key=True)
  384. datetime = db.Column(db.DateTime, nullable=False)
  385. Ferment_Input_1 = db.Column(db.Text, nullable=False)
  386. Ferment_Input_2 = db.Column(db.Text, nullable=False)
  387. Ferment_Tank_1 = db.Column(db.Text, nullable=False)
  388. Ferment_Tank_2 = db.Column(db.Text, nullable=False)
  389. Ferment_Tank_3 = db.Column(db.Text, nullable=False)
  390. Ferment_Tank_4 = db.Column(db.Text, nullable=False)
  391. Ferment_Tank_5 = db.Column(db.Text, nullable=False)
  392. Ferment_Tank_6 = db.Column(db.Text, nullable=False)
  393. Ferment_Tank_7 = db.Column(db.Text, nullable=False)
  394. Ferment_Tank_8 = db.Column(db.Text, nullable=False)
  395. Ferment_Tank_9 = db.Column(db.Text, nullable=False)
  396. Ferment_Tank_10 = db.Column(db.Text, nullable=False)
  397. Ferment_Tank_11 = db.Column(db.Text, nullable=False)
  398. Ferment_Tank_12 = db.Column(db.Text, nullable=False)
  399. Ferment_Output_1 = db.Column(db.Text, nullable=False)
  400. Ferment_Output_2 = db.Column(db.Text, nullable=False)
  401. # 乾燥槽_乾燥貨櫃自動化狀態判斷
  402. class dry_container_status(db.Model):
  403. __tablename__ = 'dry_container_status'
  404. sn = db.Column(db.Integer, primary_key=True)
  405. datetime = db.Column(db.DateTime, nullable=False)
  406. Dry_Input_1 = db.Column(db.Text, nullable=False)
  407. Dry_Input_2 = db.Column(db.Text, nullable=False)
  408. Dry_Tank_1 = db.Column(db.Text, nullable=False)
  409. Dry_Tank_2 = db.Column(db.Text, nullable=False)
  410. Dry_Tank_3 = db.Column(db.Text, nullable=False)
  411. Dry_Tank_4 = db.Column(db.Text, nullable=False)
  412. Dry_Tank_5 = db.Column(db.Text, nullable=False)
  413. Dry_Tank_6 = db.Column(db.Text, nullable=False)
  414. Dry_Tank_7 = db.Column(db.Text, nullable=False)
  415. Dry_Tank_8 = db.Column(db.Text, nullable=False)
  416. Dry_Tank_9 = db.Column(db.Text, nullable=False)
  417. Dry_Tank_10 = db.Column(db.Text, nullable=False)
  418. Dry_Tank_11 = db.Column(db.Text, nullable=False)
  419. Dry_Tank_12 = db.Column(db.Text, nullable=False)
  420. Dry_Output_1 = db.Column(db.Text, nullable=False)
  421. Dry_Output_2 = db.Column(db.Text, nullable=False)
  422. # 乾燥槽_乾燥貨櫃自動化狀態判斷
  423. class clean_container_status(db.Model):
  424. __tablename__ = 'clean_container_status'
  425. sn = db.Column(db.Integer, primary_key=True)
  426. datetime = db.Column(db.DateTime, nullable=False)
  427. Clean_Input_1 = db.Column(db.Text, nullable=False)
  428. Clean_Input_2 = db.Column(db.Text, nullable=False)
  429. Clean_Tank_1 = db.Column(db.Text, nullable=False)
  430. Clean_Tank_2 = db.Column(db.Text, nullable=False)
  431. Clean_Tank_3 = db.Column(db.Text, nullable=False)
  432. Clean_Tank_4 = db.Column(db.Text, nullable=False)
  433. Reclaimed_Tank_1 = db.Column(db.Text, nullable=False)
  434. ColorSelect_Input_1 = db.Column(db.Text, nullable=False)
  435. ColorSelect_Input_2 = db.Column(db.Text, nullable=False)
  436. ColorSelect_Tank_1 = db.Column(db.Text, nullable=False)
  437. ColorSelect_Tank_2 = db.Column(db.Text, nullable=False)
  438. ColorSelect_Output_g1 = db.Column(db.Text, nullable=False)
  439. ColorSelect_Output_b1 = db.Column(db.Text, nullable=False)
  440. ColorSelect_Output_g2 = db.Column(db.Text, nullable=False)
  441. ColorSelect_Output_b2 = db.Column(db.Text, nullable=False)
  442. Peel_Tank_1 = db.Column(db.Text, nullable=False)
  443. Peel_Tank_2 = db.Column(db.Text, nullable=False)
  444. Peel_Output_1 = db.Column(db.Text, nullable=False)
  445. Peel_Output_2 = db.Column(db.Text, nullable=False)
  446. Peel_Output_b1 = db.Column(db.Text, nullable=False)
  447. # ////////////////////////////////////////////////////////////////////////////////
  448. # 清洗貨櫃
  449. # 清洗浮選槽_清洗貨櫃入料儲豆槽_致動器
  450. class clean_input_actuator(db.Model):
  451. __tablename__ = 'clean_input_actuator'
  452. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  453. tank_num = db.Column(db.Text, nullable=False)
  454. vacuum = db.Column(db.Integer, nullable=False)
  455. # 清洗浮選槽_致動器 (old)
  456. class clean_tank_actuator(db.Model):
  457. __tablename__ = 'clean_tank_actuator'
  458. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  459. tank_num = db.Column(db.Text, nullable=False)
  460. vacuum = db.Column(db.Integer, nullable=False)
  461. pump_waterInput = db.Column(db.Integer, nullable=False)
  462. pump_waterL2L3 = db.Column(db.Integer, nullable=False)
  463. pump_waterL4L5 = db.Column(db.Integer, nullable=False)
  464. solenoid_waterL2L3 = db.Column(db.Integer, nullable=False)
  465. solenoid_waterL4L5 = db.Column(db.Integer, nullable=False)
  466. stepping_motor = db.Column(db.Text, nullable=False)
  467. # 清洗浮選槽_致動器 (new)
  468. class cleann_tank_actuator(db.Model):
  469. __tablename__ = 'cleann_tank_actuator'
  470. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  471. tank_num = db.Column(db.Text, nullable=False)
  472. vacuum = db.Column(db.Integer, nullable=False)
  473. threewayvalve_input = db.Column(db.Integer, nullable=False)
  474. motor = db.Column(db.Integer, nullable=False)
  475. solenoid_reclaimed_in = db.Column(db.Integer, nullable=False)
  476. solenoid_water_in = db.Column(db.Integer, nullable=False)
  477. pump_water_in = db.Column(db.Integer, nullable=False)
  478. solenoid_water_out = db.Column(db.Integer, nullable=False)
  479. solenoid_reclaimed_out = db.Column(db.Integer, nullable=False)
  480. solenoid_disinfect = db.Column(db.Integer, nullable=False)
  481. pump_disinfect = db.Column(db.Integer, nullable=False)
  482. diskvalve = db.Column(db.Integer, nullable=False)
  483. # 清洗浮選槽_清洗貨櫃出料儲豆槽_致動器
  484. class clean_output_actuator(db.Model):
  485. __tablename__ = 'clean_output_actuator'
  486. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  487. tank_num = db.Column(db.Text, nullable=False)
  488. vacuum = db.Column(db.Integer, nullable=False)
  489. # 清洗浮選槽_感測器
  490. class clean_tank_UltraSonic(db.Model):
  491. __tablename__ = 'clean_tank_UltraSonic'
  492. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  493. tank_num = db.Column(db.Text, nullable=False)
  494. UltraSonic = db.Column(db.Text, nullable=False)
  495. class clean_tank_Encoder(db.Model):
  496. __tablename__ = 'clean_tank_Encoder'
  497. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  498. tank_num = db.Column(db.Text, nullable=False)
  499. Encoder = db.Column(db.Text, nullable=False)
  500. class clean_tank_Turbidity(db.Model):
  501. __tablename__ = 'clean_tank_Turbidity'
  502. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  503. tank_num = db.Column(db.Text, nullable=False)
  504. tankTurbidity = db.Column(db.Text, nullable=False)
  505. class clean_filter_Turbidity(db.Model):
  506. __tablename__ = 'clean_filter_Turbidity'
  507. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  508. tank_num = db.Column(db.Text, nullable=False)
  509. filterTurbidity = db.Column(db.Text, nullable=False)
  510. # 脫皮機_清洗貨櫃入料儲豆槽_致動器
  511. class peel_input_actuator(db.Model):
  512. __tablename__ = 'peel_input_actuator'
  513. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  514. tank_num = db.Column(db.Text, nullable=False)
  515. vacuum = db.Column(db.Integer, nullable=False)
  516. # 脫皮機_致動器
  517. class peel_tank_actuator(db.Model):
  518. __tablename__ = 'peel_tank_actuator'
  519. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  520. tank_num = db.Column(db.Text, nullable=False)
  521. vacuum = db.Column(db.Integer, nullable=False)
  522. motor = db.Column(db.Integer, nullable=False)
  523. # 脫皮機_感測器
  524. class peel_output_UltraSonic(db.Model):
  525. __tablename__ = 'peel_output_UltraSonic'
  526. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  527. tank_num = db.Column(db.Text, nullable=False)
  528. UltraSonic = db.Column(db.Text, nullable=False)
  529. class peel_output_motorEncoder(db.Model):
  530. __tablename__ = 'peel_output_motorEncoder'
  531. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  532. tank_num = db.Column(db.Text, nullable=False)
  533. motorEncoder = db.Column(db.Text, nullable=False)
  534. # 脫皮機_清洗貨櫃出料儲豆槽_致動器
  535. class peel_output_actuator(db.Model):
  536. __tablename__ = 'peel_output_actuator'
  537. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  538. tank_num = db.Column(db.Text, nullable=False)
  539. vacuum = db.Column(db.Integer, nullable=False)
  540. # 色選機_清洗貨櫃出料儲豆槽_致動器
  541. class colorselect_output_actuator(db.Model):
  542. __tablename__ = 'colorselect_output_actuator'
  543. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  544. tank_num = db.Column(db.Text, nullable=False)
  545. vacuum = db.Column(db.Integer, nullable=False)
  546. class colorselect_tank_actuator(db.Model):
  547. __tablename__ = 'colorselect_tank_actuator'
  548. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  549. tank_num = db.Column(db.Text, nullable=False)
  550. vacuum = db.Column(db.Integer, nullable=False)
  551. motor = db.Column(db.Integer, nullable=False)
  552. nozzle = db.Column(db.Integer, nullable=False)
  553. class colorselect_tank_color(db.Model):
  554. __tablename__ = 'colorselect_tank_color'
  555. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  556. tank_num = db.Column(db.Text, nullable=False)
  557. color = db.Column(db.Integer, nullable=False)
  558. class colorselect_tank_UltraSonic(db.Model):
  559. __tablename__ = 'colorselect_tank_UltraSonic'
  560. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  561. tank_num = db.Column(db.Text, nullable=False)
  562. UltraSonic = db.Column(db.Integer, nullable=False)
  563. # 中水桶_致動器
  564. class reclaimed_tank_actuator(db.Model):
  565. __tablename__ = 'reclaimed_tank_actuator'
  566. datetime = db.Column(db.DateTime, nullable=False, primary_key=True)
  567. tank_num = db.Column(db.Text, nullable=False)
  568. solenoid_water_in = db.Column(db.Integer, nullable=False)
  569. solenoid_water_out = db.Column(db.Integer, nullable=False)
  570. solenoid_reclaimed_out = db.Column(db.Integer, nullable=False)
  571. pump_reclaimed_out = db.Column(db.Integer, nullable=False)
  572. # ////////////////////////////////////////////////////////////////////////////////
  573. # #發酵槽溫度感測器表
  574. # class TankTemSensor(db.Model):
  575. # __tablename__ = 'tank_tem_sensor'
  576. # sn = db.Column(db.Integer, primary_key=True)
  577. # datetime = db.Column(db.DateTime, nullable=False)
  578. # tank_num = db.Column(db.Integer, nullable=False)
  579. # tem = db.Column(db.Text, nullable=False)
  580. # #發酵槽二氧化碳感測器表
  581. # class TankCO2Sensor(db.Model):
  582. # __tablename__ = 'tank_co2_sensor'
  583. # sn = db.Column(db.Integer, primary_key=True)
  584. # datetime = db.Column(db.DateTime, nullable=False)
  585. # tank_num = db.Column(db.Integer, nullable=False)
  586. # co2 = db.Column(db.Text, nullable=False)
  587. # #發酵槽酸鹼值感測器表
  588. # class TankPHSensor(db.Model):
  589. # __tablename__ = 'tank_ph_sensor'
  590. # sn = db.Column(db.Integer, primary_key=True)
  591. # datetime = db.Column(db.DateTime, nullable=False)
  592. # tank_num = db.Column(db.Integer, nullable=False)
  593. # ph = db.Column(db.Text, nullable=False)
  594. # #發酵槽酸鹼值感測器表
  595. # class TankECSensor(db.Model):
  596. # __tablename__ = 'tank_ec_sensor'
  597. # sn = db.Column(db.Integer, primary_key=True)
  598. # datetime = db.Column(db.DateTime, nullable=False)
  599. # tank_num = db.Column(db.Integer, nullable=False)
  600. # ec = db.Column(db.Text, nullable=False)
  601. # #發酵槽超音波感測器表
  602. # class TankSonicSensor(db.Model):
  603. # __tablename__ = 'tank_sonic_sensor'
  604. # sn = db.Column(db.Integer, primary_key=True)
  605. # datetime = db.Column(db.DateTime, nullable=False)
  606. # tank_num = db.Column(db.Integer, nullable=False)
  607. # sonic = db.Column(db.Text, nullable=False)
  608. # class BeanValve(db.Model):
  609. # __tablename__ = 'bean_valve'
  610. # sn = db.Column(db.Integer, primary_key=True)
  611. # datetime = db.Column(db.DateTime, nullable=False)
  612. # duration = db.Column(db.Text, nullable=False)
  613. # start = db.Column(db.Text, nullable=False)
  614. # end = db.Column(db.Text, nullable=False)
  615. # class WashMachine(db.Model):
  616. # __tablename__ = 'wash_machine'
  617. # sn = db.Column(db.Integer, primary_key=True)
  618. # datetime = db.Column(db.DateTime, nullable=False)
  619. # duration = db.Column(db.Text, nullable=False)
  620. # start = db.Column(db.Text, nullable=False)
  621. # end = db.Column(db.Text, nullable=False)
  622. # class ConveyorBelt1(db.Model):
  623. # __tablename__ = 'conveyor_belt1'
  624. # sn = db.Column(db.Integer, primary_key=True)
  625. # datetime = db.Column(db.DateTime, nullable=False)
  626. # duration = db.Column(db.Text, nullable=False)
  627. # start = db.Column(db.Text, nullable=False)
  628. # end = db.Column(db.Text, nullable=False)
  629. # class Cargo1Disinfect(db.Model):
  630. # __tablename__ = 'cargo1_disinfect'
  631. # sn = db.Column(db.Integer, primary_key=True)
  632. # datetime = db.Column(db.DateTime, nullable=False)
  633. # duration = db.Column(db.Text, nullable=False)
  634. # start = db.Column(db.Text, nullable=False)
  635. # end = db.Column(db.Text, nullable=False)
  636. # class ColorMachine(db.Model):
  637. # __tablename__ = 'color_machine'
  638. # sn = db.Column(db.Integer, primary_key=True)
  639. # datetime = db.Column(db.DateTime, nullable=False)
  640. # duration = db.Column(db.Text, nullable=False)
  641. # start = db.Column(db.Text, nullable=False)
  642. # end = db.Column(db.Text, nullable=False)
  643. # class ConveyorBelt2(db.Model):
  644. # __tablename__ = 'conveyor_belt2'
  645. # sn = db.Column(db.Integer, primary_key=True)
  646. # datetime = db.Column(db.DateTime, nullable=False)
  647. # duration = db.Column(db.Text, nullable=False)
  648. # start = db.Column(db.Text, nullable=False)
  649. # end = db.Column(db.Text, nullable=False)
  650. # class PeelingMachine(db.Model):
  651. # __tablename__ = 'peeling_machine'
  652. # sn = db.Column(db.Integer, primary_key=True)
  653. # datetime = db.Column(db.DateTime, nullable=False)
  654. # duration = db.Column(db.Text, nullable=False)
  655. # start = db.Column(db.Text, nullable=False)
  656. # end = db.Column(db.Text, nullable=False)
  657. # class ConveyorBelt3(db.Model):
  658. # __tablename__ = 'conveyor_belt3'
  659. # sn = db.Column(db.Integer, primary_key=True)
  660. # datetime = db.Column(db.DateTime, nullable=False)
  661. # duration = db.Column(db.Text, nullable=False)
  662. # start = db.Column(db.Text, nullable=False)
  663. # end = db.Column(db.Text, nullable=False)
  664. # class Bacteria(db.Model):
  665. # __tablename__ = 'bacteria'
  666. # sn = db.Column(db.Integer, primary_key=True)
  667. # datetime = db.Column(db.DateTime, nullable=False)
  668. # tank_num = db.Column(db.Integer, nullable=False)
  669. # duration = db.Column(db.Text, nullable=False)
  670. # start = db.Column(db.Text, nullable=False)
  671. # end = db.Column(db.Text, nullable=False)
  672. # class Cargo2Disinfect(db.Model):
  673. # __tablename__ = 'cargo2_disinfect'
  674. # sn = db.Column(db.Integer, primary_key=True)
  675. # datetime = db.Column(db.DateTime, nullable=False)
  676. # tank_num = db.Column(db.Integer, nullable=False)
  677. # duration = db.Column(db.Text, nullable=False)
  678. # start = db.Column(db.Text, nullable=False)
  679. # end = db.Column(db.Text, nullable=False)
  680. # class Heating(db.Model):
  681. # __tablename__ = 'heating'
  682. # sn = db.Column(db.Integer, primary_key=True)
  683. # datetime = db.Column(db.DateTime, nullable=False)
  684. # tank_num = db.Column(db.Integer, nullable=False)
  685. # duration = db.Column(db.Text, nullable=False)
  686. # start = db.Column(db.Text, nullable=False)
  687. # end = db.Column(db.Text, nullable=False)
  688. # class Stir(db.Model):
  689. # __tablename__ = 'stir'
  690. # sn = db.Column(db.Integer, primary_key=True)
  691. # datetime = db.Column(db.DateTime, nullable=False)
  692. # tank_num = db.Column(db.Integer, nullable=False)
  693. # duration = db.Column(db.Text, nullable=False)
  694. # start = db.Column(db.Text, nullable=False)
  695. # end = db.Column(db.Text, nullable=False)
  696. # class WaterInjection(db.Model):
  697. # __tablename__ = 'water_injection'
  698. # sn = db.Column(db.Integer, primary_key=True)
  699. # datetime = db.Column(db.DateTime, nullable=False)
  700. # tank_num = db.Column(db.Integer, nullable=False)
  701. # duration = db.Column(db.Text, nullable=False)
  702. # start = db.Column(db.Text, nullable=False)
  703. # end = db.Column(db.Text, nullable=False)
  704. # class TopValve(db.Model):
  705. # __tablename__ = 'top_valve'
  706. # sn = db.Column(db.Integer, primary_key=True)
  707. # datetime = db.Column(db.DateTime, nullable=False)
  708. # tank_num = db.Column(db.Integer, nullable=False)
  709. # duration = db.Column(db.Text, nullable=False)
  710. # start = db.Column(db.Text, nullable=False)
  711. # end = db.Column(db.Text, nullable=False)
  712. # class BottomValve(db.Model):
  713. # __tablename__ = 'bottom_valve'
  714. # sn = db.Column(db.Integer, primary_key=True)
  715. # datetime = db.Column(db.DateTime, nullable=False)
  716. # tank_num = db.Column(db.Integer, nullable=False)
  717. # duration = db.Column(db.Text, nullable=False)
  718. # start = db.Column(db.Text, nullable=False)
  719. # end = db.Column(db.Text, nullable=False)
  720. # class Temperature(db.Model):
  721. # __tablename__ = 'temperature'
  722. # sn = db.Column(db.Integer, primary_key=True)
  723. # datetime = db.Column(db.DateTime, nullable=False)
  724. # tank_num = db.Column(db.Integer, nullable=False)
  725. # duration = db.Column(db.Text, nullable=False)
  726. # start = db.Column(db.Text, nullable=False)
  727. # end = db.Column(db.Text, nullable=False)
  728. # class Hoist(db.Model):
  729. # __tablename__ = 'hoist'
  730. # sn = db.Column(db.Integer, primary_key=True)
  731. # datetime = db.Column(db.DateTime, nullable=False)
  732. # duration = db.Column(db.Text, nullable=False)
  733. # start = db.Column(db.Text, nullable=False)
  734. # end = db.Column(db.Text, nullable=False)
  735. # class Dryer(db.Model):
  736. # __tablename__ = 'dryer'
  737. # sn = db.Column(db.Integer, primary_key=True)
  738. # datetime = db.Column(db.DateTime, nullable=False)
  739. # duration = db.Column(db.Text, nullable=False)
  740. # start = db.Column(db.Text, nullable=False)
  741. # end = db.Column(db.Text, nullable=False)
  742. # class Relay(db.Model):
  743. # __tablename__ = 'relay'
  744. # sn = db.Column(db.Integer, primary_key=True)
  745. # datetime = db.Column(db.DateTime, nullable=False)
  746. # tank_num = db.Column(db.Integer, nullable=False)
  747. # status= db.Column(db.Text, nullable=False)
  748. # class PeelingMachineRPM(db.Model):
  749. # __tablename__ = 'peeling_machine_rpm'
  750. # sn = db.Column(db.Integer, primary_key=True)
  751. # datetime = db.Column(db.DateTime, nullable=False)
  752. # tank_num = db.Column(db.Integer, nullable=False)
  753. # rpm = db.Column(db.Text, nullable=False)
  754. # class StirRPM(db.Model):
  755. # __tablename__ = 'stir_rpm'
  756. # sn = db.Column(db.Integer, primary_key=True)
  757. # datetime = db.Column(db.DateTime, nullable=False)
  758. # tank_num = db.Column(db.Integer, nullable=False)
  759. # rpm = db.Column(db.Text, nullable=False)
  760. db.create_all()