qx_data.py 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. import os
  2. import sys
  3. import time
  4. import django
  5. local_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  6. print(local_path)
  7. if local_path not in sys.path:
  8. sys.path.append(local_path)
  9. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kedong.settings")
  10. django.setup()
  11. from django.conf import settings
  12. from smartfarming.models.device import MongoDevice
  13. from smartfarming.models.weather import QXZdata_New
  14. import json
  15. import requests
  16. import pymongo
  17. from urllib import parse
  18. my_client = pymongo.MongoClient(host="8.136.98.49", port=27017, username="root", password="yfkj@6020")
  19. my_col = my_client['smartfarming']['sa_device']
  20. qx_device = {
  21. # "861551055315402",
  22. # "861551056086671",
  23. # "861551056088693",
  24. # "861551056088479",
  25. # "861551056088719",
  26. # "861551055313365",
  27. # "861551056086614",
  28. # "861551056093800"
  29. "861551056095367",
  30. "861551056102502",
  31. "861551056096621",
  32. "861551056101785",
  33. "861551056086549",
  34. "861551055354120",
  35. "861551055353536",
  36. "861551056092018",
  37. "861551055319586",
  38. "861551056088875",
  39. "861551055324651",
  40. "861551055313423"
  41. }
  42. def dsj_qxz_conf_info():
  43. user = parse.quote_plus("root")
  44. passwd = parse.quote_plus("yfkj@6020")
  45. # 账号密码方式连接MongoDB | "mongodb://用户名:密码@公网ip:端口/"
  46. myclient = pymongo.MongoClient("mongodb://{0}:{1}@8.136.98.49:57017/".format(user,passwd))
  47. # myclient = pymongo.MongoClient("mongodb://127.0.0.1:12514/")
  48. # 指定数据库
  49. db = myclient.smartfarming
  50. # 指定集合
  51. collection = db.sa_device
  52. collection1 = db.sa_qxz_data
  53. for i in qx_device:
  54. device_info = collection.find_one({'device_id':i})
  55. device_id = device_info['id']
  56. id = device_info["id"]
  57. device, is_created = MongoDevice.objects.get_or_create(
  58. device_id = device_info["device_id"],
  59. defaults={
  60. "dver_num": device_info["dver_num"],
  61. "device_model": device_info["device_model"],
  62. "device_type_id": device_info["device_type_id"],
  63. "device_name": device_info["device_name"],
  64. "owner_uid": device_info["owner_uid"],
  65. "user_dealer": device_info["user_dealer"],
  66. "province": device_info["province"],
  67. "city": device_info["city"],
  68. "district": device_info["district"],
  69. "device_code": device_info["device_code"],
  70. "device_status": device_info["device_status"],
  71. "off_time": device_info["off_time"],
  72. "ftp_push_addr": device_info["ftp_push_addr"],
  73. "serverconf": device_info["serverconf"],
  74. "lng": device_info["lng"],
  75. "lat": device_info["lat"],
  76. "gps": device_info["gps"],
  77. "addtime": device_info["addtime"],
  78. "uptime": device_info["uptime"],
  79. "glass_slide_time": device_info["glass_slide_time"],
  80. "cultivate_time": device_info["cultivate_time"],
  81. "add_position": device_info["add_position"],
  82. "simid": device_info["simid"],
  83. "disable": device_info["disable"],
  84. "decoy": device_info["decoy"],
  85. "sim_dealer": device_info["sim_dealer"],
  86. "xy_uptime": device_info["xy_uptime"],
  87. "networking": device_info["networking"],
  88. "equipment": device_info["equipment"],
  89. "sale_uid": device_info["sale_uid"],
  90. "salesman_task_number": device_info["salesman_task_number"],
  91. "whether_equipment_status": device_info["whether_equipment_status"],
  92. "device_expire_time": device_info["device_expire_time"],
  93. "device_activation": device_info["device_activation"],
  94. "device_expire": device_info["device_expire"],
  95. "device_expire_days": device_info["device_expire_days"],
  96. "water_pump_switch": device_info["water_pump_switch"],
  97. "device_notes": device_info["device_notes"],
  98. "water_pump_times": device_info["water_pump_times"],
  99. "water_pump_switch_times": device_info["water_pump_switch_times"],
  100. "xy_expire_time": device_info["xy_expire_time"],
  101. "device_tag": device_info["device_tag"]
  102. }
  103. )
  104. print(device.id, is_created)
  105. data = {'device_id': i,'uptime':{'$gt':1688919860}}
  106. cursor = collection1.find(data,{'_id':0,'id':0})
  107. for i in cursor:
  108. qx_data = QXZdata_New.objects.create(
  109. device_id = i['device_id'],
  110. uptime = i['uptime'],
  111. e1 = i['e1'],
  112. e2 = i['e2'],
  113. e3 = i['e3'],
  114. e4 = i['e4'],
  115. e5 = i['e5'],
  116. e6 = i['e6'],
  117. e7 = i['e7'],
  118. e8 = i['e8'],
  119. e9 = i['e9'],
  120. e10 = i['e10'],
  121. e11 = i['e11'],
  122. e12 = i['e12'],
  123. e13 = i['e13'],
  124. e14 = i['e14'],
  125. e15 = i['e15'],
  126. e16 = i['e16'],
  127. e17 = i['e17'],
  128. e18 = i['e18'],
  129. e19 = i['e19'],
  130. e20 = i['e20'],
  131. e21 = i['e21'],
  132. e22 = i['e22'],
  133. e23 = i['e23'],
  134. e24 = i['e24'],
  135. e25 = i['e25'],
  136. e26 = i['e26'],
  137. e27 = i['e27'],
  138. e28 = i['e28'],
  139. e29 = i['e29'],
  140. e30 = i['e30']
  141. )
  142. print(f"设备: {i} 数据量 {cursor.count()}")
  143. return True
  144. if __name__ == "__main__":
  145. dsj_qxz_conf_info()