test1.py 56 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523
  1. # from qcloudsms_py import SmsSingleSender
  2. # from qcloudsms_py.httpclient import HTTPError
  3. # from qcloudsms_py import SmsMultiSender
  4. import os
  5. import django
  6. import sys
  7. BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 定位到你的django根目录
  8. sys.path.append(os.path.abspath(os.path.join(BASE_DIR, os.pardir)))
  9. os.environ.setdefault("DJANGO_SETTINGS_MODULE",
  10. "yfwlw_pro.settings") # project_name 项目名称
  11. django.setup()
  12. import json
  13. import time
  14. import requests
  15. import datetime
  16. from apps.ReportManage.all_dict import mobile_list, insect_dict_new, qxz_dict
  17. from apps.AppInfoManage.models import Equip, Equip_type, CBDphoto, Msg_Send, Msg_Conf, Equip_SimInfo, SCDstatus, CBDstatus, RecentCBDdata, MyUser,JKphoto, BZYdata, QXZstatus,QXZdata,\
  18. QXZstatus_New, QXZ_Conf, QXZ_Default_Conf, MyUser, JKphoto, BZYphoto, QXZdata_New, Group, CBDstatus_all, Alarm_record
  19. from apps.SimInfo.views import get_siminfo
  20. import paho.mqtt.client as mqtt
  21. # 短信应用 SDK AppID
  22. appid = 1400227496 # SDK AppID 以1400开头
  23. # 短信应用 SDK AppKey
  24. appkey = "c9aba961bd30072f1e1b9272077abaea"
  25. from requests.auth import HTTPBasicAuth
  26. import xlrd, xlwt
  27. import random
  28. from django.db import transaction
  29. from django.db.models import Q
  30. from django.db.models import Count
  31. import math
  32. import os
  33. import urllib.parse
  34. import urllib.request
  35. import re
  36. from collections import Counter
  37. import datetime
  38. i = CBDstatus.objects.get(equip_id="867814040037265")
  39. # for i in CBDstatus.objects.all():
  40. print("--->>lng",i.lng)
  41. print("--->>lat",i.lat)
  42. # bzy_list = BZYphoto.objects.filter(equip_id=865650043206644)
  43. # for i in bzy_list:
  44. # if i.upl_time.hour == 17 and i.upl_time.minute == 0:
  45. # print(i.upl_time)
  46. # i.delete()
  47. # for i in BZYphoto.objects.all():
  48. # addr = i.addr.split("/")[-1]
  49. # if "192.168" in addr:
  50. # print("长addr",addr)
  51. # _time = addr.split("_")[2][0:14]
  52. # print("------->>",len(_time))
  53. # try:
  54. # _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S')
  55. # except:
  56. # continue
  57. # print(_time)
  58. # if i.upl_time.hour != _time.hour:
  59. # i.upl_time = _time
  60. # i.save()
  61. # elif len(addr) == 18:
  62. # print("短addr",addr)
  63. # _time = addr.split(".")[0][0:14]
  64. # print("------->>",len(_time))
  65. # _time = _time.split("\r")[0]
  66. # try:
  67. # _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S')
  68. # except:
  69. # continue
  70. # print(_time)
  71. # if i.upl_time.hour != _time.hour:
  72. # i.upl_time = _time
  73. # i.save()
  74. # qxz_list = QXZdata_New.objects.filter(equip_id=16064789)[0]
  75. # # for i in qxz_list:
  76. # print(qxz_list.upl_time)
  77. # QXZstatus_New.objects.filter(equip_id=16064789).update(upl_time=qxz_list.upl_time)
  78. # e_id = "868956048888824"
  79. # alarm_list = Alarm_record.objects.all()
  80. # for i in alarm_list:
  81. # # status = eval(i.cbd_status)
  82. # i.e_type = i.equip_id.equip_type.type_id
  83. # i.save()
  84. # alarm_list = Alarm_record.objects.filter(alarm_desc="{'status':0,'type':'offline'}").values().annotate(count=Count('equip_id_id')).values('equip_id_id','count')
  85. # for i in alarm_list:
  86. # print(i)
  87. # _list = []
  88. # equip_list = Equip.objects.filter(Q(equip_type="2") | Q(equip_type="3") | Q(equip_type="4") | Q(equip_type="5"))
  89. # for i in equip_list:
  90. # a_list = Alarm_record.objects.filter(equip_id=i)
  91. # a_list.update(e_type=str(i.equip_type_id))
  92. # print("---------",i)
  93. # print("---------")
  94. # # print(type(alarm_list))
  95. # # for i in alarm_list:
  96. # # _list.append(i['equip_id_id'])
  97. # # print(alarm_list)
  98. # # print(_list)
  99. # b = Counter(alarm_list)
  100. # # # for xx in b:
  101. # # # print(xx)
  102. # # print(type(b))
  103. # print(sorted(b.elements()))
  104. # devices = Alarm_record.objects.filter(alarm_desc="{'status':0,'type':'offline'}")
  105. # # print(devices)
  106. # # print(devices.count())
  107. # data = {}
  108. # for i in devices:
  109. # data.setdefault(i.equip_id_id,[]).append(i.alarm_desc)
  110. # values = {}
  111. # for k,v in data.items():
  112. # values[k] = len(v)
  113. # print(values)
  114. # print(i.equip_id.equip_type.type_id)
  115. # cbd_list = CBDstatus.objects.all()
  116. # for i in cbd_list:
  117. # if i.is_online == "1":
  118. # # print("上报时间",i.upl_time)
  119. # # print("数据时间",RecentCBDdata.objects.get(equip_id=i.equip_id).upl_time)
  120. # aa = i.upl_time
  121. # try:
  122. # bb = RecentCBDdata.objects.get(equip_id=i.equip_id).upl_time
  123. # except:
  124. # continue
  125. # print("状态时间",aa.year,aa.month,aa.day)
  126. # print("数据时间",bb.year,bb.month,bb.day)
  127. # if aa.year != 2020 or aa.month != 6 or aa.day != 28:
  128. # print("执行!")
  129. # staobj = CBDstatus.objects.filter(equip_id=Equip.objects.get(equip_id=i.equip_id))
  130. # # staobj.is_online = "0"
  131. # staobj.update(is_online="0")
  132. # staobj.update(off_time=RecentCBDdata.objects.get(equip_id=i.equip_id).upl_time)
  133. # if aa.year != bb.year or aa.month != bb.month or aa.day != bb.day:
  134. # print("执行!")
  135. # staobj = CBDstatus.objects.filter(equip_id=Equip.objects.get(equip_id=i.equip_id))
  136. # staobj.update(upl_time=RecentCBDdata.objects.get(equip_id=i.equip_id).upl_time)
  137. # aa = CBDstatus.objects.filter(equip_id=Equip.objects.get(equip_id=i.equip_id))
  138. # aa.update(upl_time=i.off_time)
  139. # lists = ["865650044457725"]
  140. # equip = Equip.objects.get(equip_id="868956044831315")
  141. # print(equip)
  142. # photo_addr = " pyftp/ftp_file/bzy_photo/865650043208251/202004/192.168.1.100_01_20200430170516558_ALARM_I.jpg"
  143. # bzys = BZYphoto.objects.create(equip_id=equip, addr=photo_addr)
  144. # print("照片不存在")
  145. # if equip.ftb_addr:
  146. # data = {
  147. # "Image":bzys.addr,
  148. # "imei":bzys.equip_id,
  149. # }
  150. # data = json.dumps(data)
  151. # headers = {"Content-type":"application/json"}
  152. # bzy_photo = requests.post(equip.ftb_addr,data=data,headers=headers)
  153. # book=xlrd.open_workbook('昆虫标定2020.xlsx')
  154. # # book=xlrd.open_workbook('工作表.xlsx')
  155. # # sheet=book.sheet_by_index(0)
  156. # # print(sheet.head())
  157. # sheet=book.sheet_by_name('Sheet1') #根据 sheet名称来
  158. # print(sheet)
  159. # # print(sheet.nrows) #excel里面有多少行
  160. # # print(sheet.ncols) #excel里面有多少列
  161. # # print(sheet.cell(0,12).value) #获取第0行第0列的值
  162. # # print(sheet.row_values(0)) #获取到整行的内容
  163. # # lists = sheet.col_values(21)#获取到整列的内容
  164. # lis = sheet.col_values(0)#获取到整列的内容
  165. # data = []
  166. # date = []
  167. # nu = 0
  168. # for i in lis:
  169. # nu += 1
  170. # lists = re.findall(r'\d+',i)
  171. # data.append(insect_dict_new[lists[0]])
  172. # date.append(lists[1])
  173. # # print(re.findall(r"\d+\.?\d*",i)
  174. # wb = xlwt.Workbook(encoding='utf8')
  175. # sheet = wb.add_sheet('order-sheet',cell_overwrite_ok=True)
  176. # style_heading = xlwt.easyxf()
  177. # # 写入文件标题
  178. # sheet.write(0, 0, '害虫名字', style_heading)
  179. # sheet.write(0, 1, '害虫数量', style_heading)
  180. # data_row = 1
  181. # nu = 0
  182. # for x in range(len(data)):
  183. # sheet.write(data_row, 0, data[x])
  184. # sheet.write(data_row, 1, date[x])
  185. # data_row += 1
  186. # # 写入数据 保存到本地
  187. # user_export = "sexport_file/"
  188. # if os.path.exists(user_export) == False:
  189. # os.makedirs(user_export)
  190. # wb.save(user_export + "昆虫统计表" + ".xls")
  191. # now_time = datetime.datetime.now()
  192. # data = ["865650043206719","865650043207865","865650043189378","865650043202718","865650043206834","865650043207329"]
  193. # def test(imei):
  194. # print(imei)
  195. # # 创建一个文件对象
  196. # wb = xlwt.Workbook(encoding='utf8')
  197. # # 创建一个sheet对象
  198. # end_time = "2020-02-01"
  199. # sheet = wb.add_sheet('order-sheet',cell_overwrite_ok=True)
  200. # cbd_list = CBDphoto.objects.filter(equip_id=imei,upl_time__range=(end_time,now_time))
  201. # print(len(cbd_list))
  202. # #设置文件头的样式,这个不是必须的可以根据自己的需求进行更改
  203. # style_heading = xlwt.easyxf("""
  204. # font:
  205. # name Arial,
  206. # colour_index white,
  207. # bold on,
  208. # height 0xA0;
  209. # align:
  210. # wrap off,
  211. # vert center,
  212. # horiz center;
  213. # pattern:
  214. # pattern solid,
  215. # fore-colour 0x19;
  216. # borders:
  217. # left THIN,
  218. # right THIN,
  219. # top THIN,
  220. # bottom THIN;
  221. # """)
  222. # # 写入文件标题
  223. # sheet.write(0, 0, '设备id', style_heading)
  224. # sheet.write(0, 1, '上传时间', style_heading)
  225. # sheet.write(0, 2, '图片路径', style_heading)
  226. # sheet.write(0, 3, '识别结果', style_heading)
  227. # data_row = 1
  228. # for x in cbd_list:
  229. # pri_time = x.upl_time.strftime('%Y-%m-%d %H:%M:%S')
  230. # sheet.write(data_row, 0, x.equip_id.equip_id)
  231. # sheet.write(data_row, 1, pri_time)
  232. # sheet.write(data_row, 2, x.addr.split("/")[-1])
  233. # sheet.write(data_row, 3, x.indentify_result)
  234. # data_row += 1
  235. # # 写入数据 保存到本地
  236. # user_export = "sexport_file/"
  237. # if os.path.exists(user_export) == False:
  238. # os.makedirs(user_export)
  239. # wb.save(user_export + imei + ".xls")
  240. # if __name__ == '__main__':
  241. # for i in data:
  242. # test(i)
  243. # dat = []
  244. # user_data = user_export + user_name.username + ".xls"
  245. # dat.append({"file": user_data})
  246. # data = json.dumps(dat)
  247. # return HttpResponse(data)
  248. # scd_list = SCDstatus.objects.all()
  249. # cbd_list = CBDstatus.objects.all()
  250. # _list = []
  251. # for i in scd_list:
  252. # if i.lng:
  253. # try:
  254. # res = requests.post("http://api.map.baidu.com/geocoder?location=%s,%s&coord_type=gcj02&output=json"%(i.lat,i.lng))
  255. # city = (eval(res.text))["result"]["addressComponent"]["city"]
  256. # district = (eval(res.text))["result"]["addressComponent"]["district"]
  257. # print(city)
  258. # except:
  259. # continue
  260. # _list.append({"name1":city,"name2":district,"type":2,"equipId":i.equip_id_id,"equipName":i.equip_id.equip_name,"lng":i.lng,"lat":i.lat})
  261. # print(_list)
  262. # title = ["name1","name2","type","equipId","equipName","lng","lat"]
  263. # book = xlwt.Workbook() # 创建一个excel对象
  264. # sheet = book.add_sheet('Sheet1',cell_overwrite_ok=True) # 添加一个sheet页
  265. # for i in range(len(title)): # 遍历列
  266. # # sheet.write(0,i,title[i],style) # 将title数组中的字段写入到0行i列中
  267. # sheet.write(0,i,title[i]) # 将title数组中的字段写入到0行i列中
  268. # # print(sta2)
  269. # for xx in range(len(_list)): # 遍历列表
  270. # sheet.write(xx+1,0,_list[xx]['name1']) # 将equip_id写入到第x+1行,第0列中
  271. # sheet.write(xx+1,1,_list[xx]['name2'])
  272. # sheet.write(xx+1,2,_list[xx]['type'])
  273. # sheet.write(xx+1,3,_list[xx]['equipId'])
  274. # sheet.write(xx+1,4,_list[xx]['equipName'])
  275. # sheet.write(xx+1,5,_list[xx]['lng'])
  276. # sheet.write(xx+1,6,_list[xx]['lat'])
  277. # book.save("654321.xlsx")
  278. # book = xlrd.open_workbook('2020.xlsx')
  279. # sheet=book.sheet_by_name('Sheet2')
  280. # lists = sheet.col_values(0)#获取到整列的内容
  281. # # print(lists)
  282. # user_name = MyUser.objects.get(username="sgnyj")
  283. # list1 = []
  284. # list2 = []
  285. # for i in lists:
  286. # try:
  287. # equip_obj = Equip.objects.get(equip_id=i)
  288. # list1.append(i)
  289. # except Exception as e:
  290. # # print(e)
  291. # list2.append(i)
  292. # print(len(list2))
  293. # print(len(list1))
  294. # lists = []
  295. # for i in list1:
  296. # equip_obj = Equip.objects.get(equip_id=i)
  297. # if equip_obj.equip_user == user_name:
  298. # pass
  299. # elif equip_obj.equip_user:
  300. # print(equip_obj)
  301. # lists.append(equip_obj)
  302. # else:
  303. # equip_obj.equip_user = user_name
  304. # equip_obj.save()
  305. # print(lists)
  306. # print(equip_obj)
  307. # if equip_obj.exists():
  308. # pass
  309. # else:
  310. # print(equip_obj.equip_user)
  311. # # list3 = []
  312. # for i in list2:
  313. # try:
  314. # equip_obj = Equip.objects.get(equip_id=i)
  315. # list3.append(i)
  316. # except Exception as e :
  317. # for i in list1:
  318. # equip_obj = Equip.objects.filter(equip_id=i,equip_user=user_name)
  319. # if equip_obj:
  320. # pass
  321. # else:
  322. # pass
  323. # data = []
  324. # for x in Equip.objects.filter(equip_user=MyUser.objects.get(username="sgnyj")):
  325. # data.append(x.equip_id)
  326. # print(len(data))
  327. # print(len(_list1))
  328. # for xx in _list1:
  329. # if xx not in data:
  330. # print(xx)
  331. # cbdgroup = Group.objects.get(name='测报灯用户')
  332. # # obj = Group.models.get(b_name='xxx')
  333. # uname_obj = MyUser.objects.filter(groups=cbdgroup)
  334. # # groups = Group.objects.filter(user=uname_obj)
  335. # print(uname_obj)
  336. # for i in uname_obj:
  337. # print(i.username)
  338. # while True:
  339. # strtmp = os.popen("systemctl status py_ftp_server.service")
  340. # #print(type(strtmp))
  341. # cmdback = strtmp.read()
  342. # # print("----->>",cmdback)
  343. # if "running" in cmdback:
  344. # print("服务正常运行")
  345. # elif "failed" in cmdback:
  346. # # 需要发送短信的手机号码
  347. # phone_numbers = ["13733763561","18258845915","15225155092"]
  348. # # 短信模板ID,需要在短信控制台中申请
  349. # template_id = 579944 # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
  350. # # 签名
  351. # sms_sign = "云飞科技" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请
  352. # msender = SmsMultiSender(appid, appkey)
  353. # params = ["ftp",]
  354. # try:
  355. # result = msender.send_with_param(86, phone_numbers,
  356. # template_id, params, sign=sms_sign, extend="", ext="")
  357. # except HTTPError as e:
  358. # print(e)
  359. # except Exception as e:
  360. # print(e)
  361. # print(result)
  362. # print("----发送成功")
  363. # print("服务异常!!!")
  364. # time.sleep(60)
  365. # cbdgroup = Group.objects.get(name='测报灯用户')
  366. # aobj = obj.author_set()
  367. # # 如果你使用了如我上面的related_name='auth' 别名属性,就可以
  368. # # user_list = cbdgroup.myuser.all()
  369. # print(user_list)
  370. # print(random.randint(10,30))
  371. # cbd_list = CBDstatus.objects.all()
  372. # for xx in cbd_list:
  373. # imei = xx.equip_id_id
  374. # e1 = ''
  375. # e2 = ''
  376. # e3 = ''
  377. # e4 = ''
  378. # e5 = ''
  379. # e6 = ''
  380. # e7 = ''
  381. # e8 = ''
  382. # e9 = ''
  383. # e10 = ''
  384. # e11 = ''
  385. # e12 = ''
  386. # e13 = ''
  387. # e14 = ''
  388. # e15 = ''
  389. # e16 = ''
  390. # e17 = ''
  391. # e18 = ''
  392. # e19 = ''
  393. # e20 = ''
  394. # e21 = ''
  395. # e22 = ''
  396. # e23 = ''
  397. # e24 = ''
  398. # e25 = ''
  399. # e26 = ''
  400. # e27 = ''
  401. # e28 = ''
  402. # e29 = ''
  403. # e30 = ''
  404. # conf1 = ''
  405. # conf2 = ''
  406. # conf3 = ''
  407. # conf4 = ''
  408. # conf5 = ''
  409. # conf6 = ''
  410. # conf7 = ''
  411. # conf8 = ''
  412. # conf9 = ''
  413. # conf10 = ''
  414. # conf11 = ''
  415. # conf12 = ''
  416. # conf13 = ''
  417. # conf14 = ''
  418. # conf15 = ''
  419. # conf16 = ''
  420. # conf17 = ''
  421. # conf18 = ''
  422. # conf19 = ''
  423. # conf20 = ''
  424. # conf21 = ''
  425. # conf22 = ''
  426. # conf23 = ''
  427. # conf24 = ''
  428. # conf25 = ''
  429. # conf26 = ''
  430. # conf27 = ''
  431. # conf28 = ''
  432. # conf29 = ''
  433. # conf30 = ''
  434. # qxz_list = Equip.objects.filter(equip_type=5)
  435. # for xx in qxz_list:
  436. # equip_id = xx.equip_id
  437. # # time.sleep(10)
  438. # # equip_id = "16064781"
  439. # # equip_id = "16064809"
  440. # # equip_id = "18054384"
  441. # # equip_id = "16064783"
  442. # # equip_id = "16064789"
  443. # # equip_id = "16064808"
  444. # # equip_id = "16064784"
  445. # # equip_id = "16064781"
  446. # for x in QXZdata.objects.filter(equip_id=equip_id):
  447. # e_id = eval(x.qxz_data)['StationID']
  448. # upl_time = x.upl_time
  449. # # qxz_picture = QXZdata.objects.get(equip_id=e_id).qxz_picture
  450. # qxzdata = eval(x.qxz_data)['data']
  451. # # print(qxzdata)
  452. # for i in qxzdata:
  453. # if i['eKey'] == 'e1':
  454. # e1 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  455. # if e1[0] == "#":
  456. # continue
  457. # elif i['eKey'] == 'e2':
  458. # e2 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  459. # if e2[0] == "#":
  460. # continue
  461. # elif i['eKey'] == 'e3':
  462. # e3 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  463. # if e3[0] == "#":
  464. # continue
  465. # elif i['eKey'] == 'e4':
  466. # e4 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  467. # if e4[0] == "#":
  468. # continue
  469. # elif i['eKey'] == 'e5':
  470. # e5 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  471. # if e5[0] == "#":
  472. # continue
  473. # elif i['eKey'] == 'e6':
  474. # e6 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  475. # if e6[0] == "#":
  476. # continue
  477. # elif i['eKey'] == 'e7':
  478. # e7 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  479. # if e7[0] == "#":
  480. # continue
  481. # elif i['eKey'] == 'e8':
  482. # e8 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  483. # if e8[0] == "#":
  484. # continue
  485. # elif i['eKey'] == 'e9':
  486. # e9 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  487. # if e9[0] == "#":
  488. # continue
  489. # elif i['eKey'] == 'e10':
  490. # e10 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  491. # if e10[0] == "#":
  492. # continue
  493. # elif i['eKey'] == 'e11':
  494. # e11 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  495. # if e11[0] == "#":
  496. # continue
  497. # elif i['eKey'] == 'e12':
  498. # e12 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  499. # if e12[0] == "#":
  500. # continue
  501. # elif i['eKey'] == 'e13':
  502. # e13 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  503. # if e13[0] == "#":
  504. # continue
  505. # elif i['eKey'] == 'e14':
  506. # e14 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  507. # if e14[0] == "#":
  508. # continue
  509. # elif i['eKey'] == 'e15':
  510. # e15 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  511. # if e15[0] == "#":
  512. # continue
  513. # elif i['eKey'] == 'e16':
  514. # e16 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  515. # if e16[0] == "#":
  516. # continue
  517. # elif i['eKey'] == 'e17':
  518. # e17 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  519. # if e17[0] == "#":
  520. # continue
  521. # elif i['eKey'] == 'e18':
  522. # e18 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  523. # if e18[0] == "#":
  524. # continue
  525. # elif i['eKey'] == 'e19':
  526. # e19 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  527. # if e19[0] == "#":
  528. # continue
  529. # elif i['eKey'] == 'e20':
  530. # e20 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  531. # if e20[0] == "#":
  532. # continue
  533. # elif i['eKey'] == 'e21':
  534. # e21 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  535. # if e21[0] == "#":
  536. # continue
  537. # elif i['eKey'] == 'e22':
  538. # e22 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  539. # if e22[0] == "#":
  540. # continue
  541. # elif i['eKey'] == 'e23':
  542. # e23 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  543. # if e23[0] == "#":
  544. # continue
  545. # elif i['eKey'] == 'e24':
  546. # e24 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  547. # if e24[0] == "#":
  548. # continue
  549. # elif i['eKey'] == 'e25':
  550. # e25 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  551. # if e25[0] == "#":
  552. # continue
  553. # elif i['eKey'] == 'e26':
  554. # e26 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  555. # if e26[0] == "#":
  556. # continue
  557. # elif i['eKey'] == 'e27':
  558. # e27 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  559. # if e27[0] == "#":
  560. # continue
  561. # elif i['eKey'] == 'e28':
  562. # e28 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  563. # if e28[0] == "#":
  564. # continue
  565. # elif i['eKey'] == 'e29':
  566. # e29 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  567. # if e29[0] == "#":
  568. # continue
  569. # elif i['eKey'] == 'e30':
  570. # e30 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  571. # if e30[0] == "#":
  572. # continue
  573. # if QXZdata_New.objects.filter(equip_id=e_id,upl_time=upl_time).exists():
  574. # print("------create default-------")
  575. # else:
  576. # QXZdata_New.objects.create(equip_id_id=e_id,
  577. # e1=e1,e2=e2,e3=e3,e4=e4,e5=e5,e6=e6,e7=e7,e8=e8,e9=e9,e10=e10,
  578. # e11=e11,e12=e12,e13=e13,e14=e14,e15=e15,e16=e16,e17=e17,e18=e18,e19=e19,e20=e20,
  579. # e21=e21,e22=e22,e23=e23,e24=e24,e25=e25,e26=e26,e27=e27,e28=e28,e29=e29,e30=e30,
  580. # upl_time=upl_time)
  581. # print("------create success-------")
  582. # e1 = ''
  583. # e2 = ''
  584. # e3 = ''
  585. # e4 = ''
  586. # e5 = ''
  587. # e6 = ''
  588. # e7 = ''
  589. # e8 = ''
  590. # e9 = ''
  591. # e10 = ''
  592. # e11 = ''
  593. # e12 = ''
  594. # e13 = ''
  595. # e14 = ''
  596. # e15 = ''
  597. # e16 = ''
  598. # e17 = ''
  599. # e18 = ''
  600. # e19 = ''
  601. # e20 = ''
  602. # e21 = ''
  603. # e22 = ''
  604. # e23 = ''
  605. # e24 = ''
  606. # e25 = ''
  607. # e26 = ''
  608. # e27 = ''
  609. # e28 = ''
  610. # e29 = ''
  611. # e30 = ''
  612. #--------------------------------------------------------------------------------------------------------------
  613. # file_dir = "pyftp/ftp_file/bzy_photo/865650042816179"
  614. # print("file_dir",file_dir)
  615. # for root, dirs, files in os.walk(file_dir):
  616. # # print("root-------------->>",root) #当前目录路径
  617. # # print("子目录文件dirs=======>>",dirs) #当前路径下所有子目录
  618. # # print("非子目录文件files========>>",files) #当前路径下所有非目录子文件
  619. # for i in files:
  620. # # if len(i) == 45:
  621. # file = root + "/" + i
  622. # # st = root.split("/")[-1] + i.split(".")[0]
  623. # st = i.split(".")[3].split("_")[2][0:14]
  624. # print("st",st)
  625. # print("file====>>",file)
  626. # try:
  627. # pic_time = datetime.datetime.strptime(st,"%Y%m%d%H%M%S")
  628. # except Exception as eeex:
  629. # print("错误信息为",eeex)
  630. # continue
  631. # # if JKphoto.objects.filter(addr=file).exists():
  632. # # photoobj = JKphoto.objects.get(addr=file)
  633. # # photoobj.upl_time = pic_time
  634. # # photoobj.save()
  635. # # print("照片存在")
  636. # # else:
  637. # # print("照片不存在")
  638. # # try:
  639. # # imei_obj = Equip.objects.get(equip_id=235185770)
  640. # # JKphoto.objects.create(equip_id=imei_obj,addr=file,upl_time=pic_time)
  641. # # except Exception as e:
  642. # # print("错误信息为",e)
  643. # if BZYphoto.objects.filter(addr=file).exists():
  644. # photoobj = BZYphoto.objects.get(addr=file)
  645. # photoobj.upl_time = pic_time
  646. # photoobj.save()
  647. # print("照片存在")
  648. # else:
  649. # print("照片不存在")
  650. # try:
  651. # imei_obj = Equip.objects.get(equip_id=865650042816179)
  652. # BZYphoto.objects.create(equip_id=imei_obj,addr=file,upl_time=pic_time)
  653. # except Exception as e:
  654. # print("错误信息为",e)
  655. #--------------------------------------------------------------------------------------------------------------
  656. # print(root)
  657. # file = file_dir + "/" + i
  658. # jpg_time = time.ctime(os.path.getctime(file))
  659. # print("jpg_time",jpg_time)
  660. # # st = s_time+jpg_time[11:19]
  661. # st = i.split(".")[3].split("_")[2][0:12]
  662. # print("-------------------",i.split(".")[3].split("_")[2][0:14])
  663. # # pic_time_1 = s_time+i.split(".")[0]
  664. # # pic_time_1 = datetime.datetime.strptime(pic_time_1,"%Y%m%d%H-%M-%S")
  665. # # print("-------------------->",pic_time_1)
  666. # # print("-------------------->",type(pic_time_1))
  667. # pic_time = datetime.datetime.strptime(st,"%Y%m%d%H%M%S")
  668. # print("类型查看",type(pic_time))
  669. # print("把字符串转成datetime: ", datetime.datetime.strptime(st,"%Y%m%d%H%M%S"))
  670. # print("file:",file)
  671. # if CBDphoto.objects.filter(addr=file).exists():
  672. # # photoobj = CBDphoto.objects.get(addr=file)
  673. # # photoobj.upl_time = pic_time_1
  674. # # photoobj.save()
  675. # print("照片存在")
  676. # else:
  677. # print("照片不存在")
  678. # try:
  679. # imei_obj = Equip.objects.get(equip_id=imei)
  680. # CBDphoto.objects.create(equip_id=imei_obj,addr=file,upl_time=pic_time)
  681. # except Exception as e:
  682. # print("错误信息为",e)
  683. # -------------------------------------------------------MQTT TEST-------------------------------------
  684. # import threading
  685. # def cbdthread(e_id):
  686. # i = 0
  687. # TASK_TOPIC = '/yfkj/cbd/pub/%s'%e_id # 客户端发布消息主题
  688. # client_id = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  689. # client = mqtt.Client(client_id, transport='tcp')
  690. # client.connect("39.104.94.153", 1883, 60) # 此处端口默认为1883,通信端口期keepalive默认60
  691. # client.loop_start()
  692. # # print("子线程名称输出",threading.currentThread().name)
  693. # """
  694. # 客户端发布消息
  695. # :param message: 消息主体
  696. # :return:
  697. # """
  698. # payload = {"cmd": "status", "ext": {"lux": 0, "lng": "113.61237910001185", "ts": 1, "upds": 0, "lps": 0, "csq": 31, "dver": "5.2HK", "hs": 0, "ws": 0, "rps": 1, "tps": 0, "proj": "DCCBD-2_HK", "stamp": "20200107151511", "vs": 201, "dtype": 3, "imei": "%s"%e_id, "lamp": 0, "lat": "34.80817089999999", "dnds": 0, "gs": 0, "iccid": "898602B62518C0046484"}}
  699. # # publish(主题:Topic; 消息内容)
  700. # while True:
  701. # client.publish(TASK_TOPIC, json.dumps(payload, ensure_ascii=False))
  702. # print("Successful send message!",e_id)
  703. # time.sleep(1)
  704. # print("=============",i)
  705. # i = i + 1
  706. # e_id = 10000
  707. # for i in range(10):
  708. # t = threading.Thread(target=cbdthread,args=(e_id,))
  709. # #打印出当前线程的名称和id
  710. # # print(threading.currentThread().name)
  711. # # t.setDaemon(True)
  712. # t.start()
  713. # e_id = e_id + 1
  714. # if e_id == 10009:
  715. # while True:
  716. # print("主线程名称输出",threading.currentThread().name)
  717. # thread_num = len(threading.enumerate())
  718. # print("线程数量是%d" % thread_num)
  719. # time.sleep(1)
  720. # -------------------------------------------------------MQTT TEST-------------------------------------
  721. # print(type(os.path.getsize('F:\\1111.jpg')))
  722. # msg_conf_list = Msg_Conf.objects.all()
  723. # for i in msg_conf_list:
  724. # cbd_obj = Equip.objects.get(equip_id=i.equip_id)
  725. # equip_name = ""
  726. # if cbd_obj.equip_name == "" or cbd_obj.equip_name == None:
  727. # equip_name = cbd_obj.equip_id
  728. # else:
  729. # equip_name = cbd_obj.equip_name
  730. # msgconf = eval(i.conf)
  731. # # 需要发送短信的手机号码
  732. # phone_numbers = msgconf["phone"]
  733. # # 短信模板ID,需要在短信控制台中申请
  734. # template_id = 431378 # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
  735. # # 签名
  736. # sms_sign = "云飞科技" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请
  737. # ssender = SmsSingleSender(appid, appkey)
  738. # params = ["","","由于入冬无虫子,暂时停止短信发送服务,将于明年三月份开启"] # 当模板没有参数时,`params = []`
  739. # try:
  740. # result = ssender.send_with_param(86, phone_numbers,
  741. # template_id, params, sign=sms_sign, extend="", ext="") # 签名参数未提供或者为空时,会使用默认签名发送短信
  742. # except HTTPError as e:
  743. # print(e)
  744. # except Exception as e:
  745. # print(e)
  746. # print(result)
  747. # Msg_Send.objects.create(mobile=msgconf["phone"],equip_id=i.equip_id,send_dec=params,result_desc=result)
  748. # pest_name = []
  749. # print("----发送成功",phone_numbers)
  750. # 账号有效期设置
  751. # user_obj = MyUser.objects.all()
  752. # for i in user_obj:
  753. # if i.date_joined.year == 2019 and i.date_joined.month >= 10:
  754. # print(i.date_joined)
  755. # print(i.username)
  756. # i.expire_date = i.date_joined + datetime.timedelta(days=730)
  757. # i.save()
  758. # print("操作成功")
  759. # # 查看最近有虫子的测报灯
  760. # one_month = datetime.timedelta(days=30)
  761. # now_time = datetime.datetime.now()
  762. # photo_list = CBDphoto.objects.all()
  763. # for i in photo_list:
  764. # if now_time - i.upl_time <= one_month and i.indentify_result:
  765. # print(i.equip_id_id)
  766. # def iccid_info(iccid):
  767. # cbd_obj = CBDstatus.objects.all().values()
  768. # scd_obj = SCDstatus.objects.all().values()
  769. # dat = []
  770. # for i in cbd_obj:
  771. # try:
  772. # if iccid == eval(i["cbd_status"])["iccid"]:
  773. # # print(eval(i["cbd_status"])["iccid"])
  774. # # print(i["off_time"])
  775. # ic_eq = {"id":i["equip_id_id"],"lng":i["lng"],"lat":i["lat"],"offtime":i["off_time"]}
  776. # dat.append(ic_eq)
  777. # except Exception as e:
  778. # pass
  779. # for x in scd_obj:
  780. # try:
  781. # if iccid == eval(x["scd_status"])["iccid"]:
  782. # ic_eq = {"id":x["equip_id_id"],"lng":x["lng"],"lat":x["lat"],"offtime":x["off_time"]}
  783. # dat.append(ic_eq)
  784. # except Exception as e:
  785. # pass
  786. # return dat
  787. # book=xlrd.open_workbook('河南云飞科技发展有限公司.xlsx')
  788. # sheet=book.sheet_by_index(0) #根据sheet编号来
  789. # # sheet=book.sheet_by_name('sheet1') #根据 sheet名称来
  790. # # print(sheet.nrows) #excel里面有多少行
  791. # # print(sheet.ncols) #excel里面有多少列
  792. # # print(sheet.cell(0,0).value) #获取第0行第0列的值
  793. # # print(sheet.row_values(0)) #获取到整行的内容
  794. # # print(sheet.col_values(1)) #获取到整列的内容
  795. # iccid_list = []
  796. # sta2 = []
  797. # iccid_excel = sheet.col_values(1)
  798. # for i in range(len(iccid_excel)):
  799. # if i == 0:
  800. # continue
  801. # # print(iccid_excel[i])
  802. # # iccid_list.append(iccid_excel[i])
  803. # # print(iccid_info(iccid_excel[i]))
  804. # if len(iccid_info(iccid_excel[i])) > 1:
  805. # # print("此卡用于多个设备需单独记录=====>>",iccid_excel[i])
  806. # equip_id = "999999"
  807. # location = ""
  808. # equip_type = ""
  809. # equip_user = ""
  810. # elif len(iccid_info(iccid_excel[i])) == 1:
  811. # try:
  812. # equip_id = iccid_info(iccid_excel[i])[0]["id"]
  813. # except:
  814. # equip_id = ""
  815. # try:
  816. # lat = iccid_info(iccid_excel[i])[0]["lat"]
  817. # except:
  818. # lat = ""
  819. # try:
  820. # lng = iccid_info(iccid_excel[i])[0]["lng"]
  821. # except:
  822. # lng = ""
  823. # try:
  824. # equip_type = Equip.objects.get(equip_id=equip_id).equip_type.type_name
  825. # except:
  826. # equip_type = ""
  827. # try:
  828. # equip_user = Equip.objects.get(equip_id=equip_id).equip_user.username
  829. # except:
  830. # equip_user = ""
  831. # if lat:
  832. # res = requests.post("http://api.map.baidu.com/geocoder?location=%s,%s&coord_type=gcj02&output=json"%(lat,lng))
  833. # location = (eval(res.text))["result"]["addressComponent"]["province"]+eval(res.text)["result"]["addressComponent"]["district"]
  834. # else:
  835. # location = ""
  836. # elif len(iccid_info(iccid_excel[i])) == 0:
  837. # equip_id = "000000"
  838. # location = ""
  839. # equip_type = ""
  840. # equip_user = ""
  841. # sta2.append({"iccid":iccid_excel[i],"equip_id":equip_id,"location":location,"equip_user":equip_user,"equip_type":equip_type})
  842. # # print(sta2)
  843. # title = ["iccid","设备id","设备类型","设备位置","设备用户"]
  844. # book = xlwt.Workbook() # 创建一个excel对象
  845. # sheet = book.add_sheet('Sheet1',cell_overwrite_ok=True) # 添加一个sheet页
  846. # for i in range(len(title)): # 遍历列
  847. # # sheet.write(0,i,title[i],style) # 将title数组中的字段写入到0行i列中
  848. # sheet.write(0,15+i,title[i]) # 将title数组中的字段写入到0行i列中
  849. # # print(sta2)
  850. # for x in range(len(sta2)): # 遍历列表
  851. # sheet.write(x+1,15,sta2[x]['iccid']) # 将equip_id写入到第x+1行,第0列中
  852. # sheet.write(x+1,16,sta2[x]['equip_id'])
  853. # sheet.write(x+1,17,sta2[x]['equip_type'])
  854. # sheet.write(x+1,18,sta2[x]['location']) # 设备开关
  855. # sheet.write(x+1,19,sta2[x]['equip_user'])
  856. # book.save("123456.xlsx")
  857. # print(iccid_list)
  858. # for x in iccid_list:
  859. # print(x)
  860. # print(iccid_info(x))
  861. # time.sleep(1)
  862. # print(iccid_list[i])
  863. # for i in range(sheet.nrows): #循环获取每行的内容
  864. # print(sheet.row_values(i))
  865. # equip_list = Equip.objects.all()
  866. # for i in equip_list:
  867. # print(type(i.equip_type_id))
  868. # datalist = RecentCBDdata.objects.all()
  869. # for i in datalist:
  870. # if i.discern == False:
  871. # i.disc = 1
  872. # i.save()
  873. # elif i.discern == True:
  874. # i.disc = 0
  875. # i.save()
  876. # print("数据导入完毕")
  877. # 判断测报灯流量卡充值停用账号
  878. # simlist = Equip_SimInfo.objects.all()
  879. # for i in simlist:
  880. # dateTime_p = datetime.datetime.strptime(i.expiry_date,'%Y-%m-%d %H:%M:%S')
  881. # # 判断sim卡是否30天到期
  882. # if dateTime_p - datetime.datetime.now() > datetime.timedelta(days=30):
  883. # pass
  884. # elif datetime.timedelta(days=0) > dateTime_p - datetime.datetime.now() > datetime.timedelta(days=0):
  885. # print("发送短信通知")
  886. # elif dateTime_p - datetime.datetime.now() < datetime.timedelta(days=0):
  887. # if i.equip_id.equip_type_id == 2:
  888. # print("杀虫灯")
  889. # # 判断杀虫灯状态30天内是否有数据
  890. # if datetime.datetime.now() - SCDstatus.objects.get(equip_id=i.equip_id).upl_time > datetime.timedelta(days=30):
  891. # pass
  892. # else:
  893. # print("停用账号")
  894. # elif i.equip_id.equip_type_id == 3:
  895. # print("测报灯")
  896. # # 判断测报灯状态30天内是否有数据
  897. # if datetime.datetime.now() - CBDstatus.objects.get(equip_id=i.equip_id).upl_time > datetime.timedelta(days=30):
  898. # pass
  899. # else:
  900. # print("停用账号")
  901. # end_date = datetime.datetime.now()
  902. # one_day = datetime.timedelta(days=1)
  903. # one_day_later = datetime.datetime.now() - one_day
  904. # print(one_day_later)
  905. # new_time = "%s-%s-%s %s:%s:%s" %(one_day_later.year,one_day_later.month,one_day_later.day,"19","00","00")
  906. # start_date = datetime.datetime.strptime(new_time,"%Y-%m-%d %H:%M:%S")
  907. # cbd_obj = Equip.objects.get(equip_id='86123456789')
  908. # equip_name = ""
  909. # if cbd_obj.equip_name == "" or cbd_obj.equip_name == None:
  910. # equip_name = cbd_obj.equip_id
  911. # else:
  912. # equip_name = cbd_obj.equip_name
  913. # msg_conf_list = Msg_Conf.objects.get(equip_id=cbd_obj)
  914. # msgconf = eval(msg_conf_list.conf)
  915. # if msgconf["appointPest"] == "on":
  916. # pest_num = 0
  917. # pest_name = []
  918. # pest_nums = []
  919. # pest_dict = {}
  920. # pest_dict_new = {}
  921. # cbd_list = CBDphoto.objects.filter(equip_id=cbd_obj)
  922. # for x in cbd_list:
  923. # if x.indentify_result == None or x.indentify_result == "":
  924. # pass
  925. # else:
  926. # for a in x.indentify_result.split("#"):
  927. # pest_num = pest_num + int(a.split(",")[1])
  928. # pest_name.append(int(a.split(",")[0]))
  929. # pest_nums.append(int(a.split(",")[1]))
  930. # for xx in range(len(pest_name)):
  931. # c = {pest_name[xx]:pest_nums[xx]}
  932. # for d in c:
  933. # if d in pest_dict:
  934. # pest_dict[d] = pest_dict[d] + c[d]
  935. # else:
  936. # pest_dict.update(c)
  937. # print(pest_dict)
  938. # send_dict = {}
  939. # print(msgconf["appointPestName"].split("#"))
  940. # print(msgconf["appointPestNum"].split("#"))
  941. # msg_name = msgconf["appointPestName"].split("#")
  942. # msg_num = msgconf["appointPestNum"].split("#")
  943. # for i in range(len(msg_name)):
  944. # if pest_dict[int(msg_name[i])] > int(msg_num[i]):
  945. # aaa = {insect_dict_new[msg_name[i]]:"%s头"%int(msg_num[i])}
  946. # send_dict.update(aaa)
  947. # print(send_dict)
  948. # if pest_dict[int(msgconf["appointPestName"])] >= int(msgconf["appointPestNum"]):
  949. # pass
  950. # pest_num = 0
  951. # pest_name = []
  952. # pest_nums = []
  953. # pest_dict = {}
  954. # pest_dict_new = {}
  955. # equip_obj = Equip.objects.get(equip_id="868575028850321")
  956. # file_dir = "pyftp/ftp_file/bzy_photo/%s"%868575028850321
  957. # print("file_dir",file_dir)
  958. # sta1 = BZYstatus.objects.all()
  959. # sta3 = []
  960. # photo_list = []
  961. # for i in sta1:
  962. # sta3.append(i.equip_id.equip_id)
  963. # for imei in sta3:
  964. # equip_obj = Equip.objects.get(equip_id=imei)
  965. # file_dir = "pyftp/ftp_file/bzy_photo/%s"%imei
  966. # # print("file_dir",file_dir)
  967. # for root, dirs, files in os.walk(file_dir):
  968. # # print("当前目录为=========>>",root) #当前目录路径
  969. # # print("当前子目录为=========>>",dirs) #当前路径下所有子目录
  970. # if root.endswith(imei):
  971. # pass
  972. # else:
  973. # # print("当前目录------->>",root)
  974. # for roots, dirss, file in os.walk(root):
  975. # # print(roots) #当前目录路径
  976. # # print(dirs) #当前路径下所有子目录
  977. # # print(file) #当前路径下所有非目录子文件
  978. # if file != []:
  979. # for i in file:
  980. # photo_addr = roots + "/" + i
  981. # # print(photo_addr)
  982. # if BZYphoto.objects.filter(addr=photo_addr).exists():
  983. # # print("照片存在")
  984. # # print(i[17:29])
  985. # # print("-----")
  986. # # sp = datetime.datetime.now().year
  987. # # sp_str = i.split(str(sp))[1]
  988. # # # print(sp_str[0:8])
  989. # # st = str(sp) + sp_str[0:8]
  990. # # print(st)
  991. # pass
  992. # else:
  993. # print("-----")
  994. # sp = datetime.datetime.now().year
  995. # sp_str = i.split(str(sp))[1]
  996. # # print(sp_str[0:8])
  997. # st = str(sp) + sp_str[0:8]
  998. # # st = i[17:29]
  999. # # print(st)
  1000. # pic_time = datetime.datetime.strptime(st,"%Y%m%d%H%M%S")
  1001. # print(pic_time)
  1002. # BZYphoto.objects.create(equip_id=equip_obj,addr=photo_addr,upl_time=pic_time)
  1003. # sta1 = BZYstatus.objects.all()
  1004. # sta3 = []
  1005. # photo_list = []
  1006. # for i in sta1:
  1007. # sta3.append(i.equip_id.equip_id)
  1008. # for imei in sta3:
  1009. # equip_obj = Equip.objects.get(equip_id=imei)
  1010. # file_dir = "pyftp/ftp_file/bzy_photo/%s"%imei
  1011. # # print("file_dir",file_dir)
  1012. # for root, dirs, files in os.walk(file_dir):
  1013. # # print("当前目录为=========>>",root) #当前目录路径
  1014. # # print("当前子目录为=========>>",dirs) #当前路径下所有子目录
  1015. # if root.endswith(imei):
  1016. # pass
  1017. # else:
  1018. # # print("当前目录------->>",root)
  1019. # for roots, dirss, file in os.walk(root):
  1020. # # print(roots) #当前目录路径
  1021. # # print(dirs) #当前路径下所有子目录
  1022. # # print(file) #当前路径下所有非目录子文件
  1023. # if file != []:
  1024. # for i in file:
  1025. # photo_addr = roots + "/" + i
  1026. # # print(photo_addr)
  1027. # if BZYphoto.objects.filter(addr=photo_addr).exists():
  1028. # print("照片存在")
  1029. # print(i[16:34])
  1030. # else:
  1031. # # os.path.getctime(photo_addr) # 输出文件的创建时间
  1032. # # print("文件创建时间",os.path.getctime(photo_addr))
  1033. # # timeStamp = os.path.getctime(photo_addr)
  1034. # # timeArray = time.localtime(timeStamp)
  1035. # # otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
  1036. # # print(otherStyleTime)
  1037. # # BZYphoto.objects.create(equip_id=equip_obj,addr=photo_addr)
  1038. # print("-----")
  1039. # print("=========================")
  1040. # # print(photo_list)
  1041. # print("=========================")
  1042. # sta1 = SCDstatus.objects.all()
  1043. # sta2 = CBDstatus.objects.all()
  1044. # # 获取设备列表中的SIM卡的iccid号码:
  1045. # iccids = []
  1046. # # 获取设备的id:
  1047. # equip_ids = []
  1048. # # 获取设备的名称:
  1049. # equip_names = []
  1050. # # 遍历查询流量信息:
  1051. # siminfos = []
  1052. # for i in sta1:
  1053. # try:
  1054. # iccid = eval(i.scd_status)['iccid']
  1055. # except:
  1056. # iccid = ""
  1057. # iccids.append(iccid)
  1058. # equip_ids.append(str(i.equip_id))
  1059. # equip_names.append(str(i.equip_id.equip_name))
  1060. # for i in sta2:
  1061. # try:
  1062. # iccid = eval(i.cbd_status)['iccid']
  1063. # except:
  1064. # iccid = ""
  1065. # iccids.append(iccid)
  1066. # equip_ids.append(str(i.equip_id))
  1067. # equip_names.append(str(i.equip_id.equip_name))
  1068. # print('all iccids :',iccids)
  1069. # print('all equip_ids :',equip_ids)
  1070. # print('all equip_names :',equip_names)
  1071. # print('iccids :',iccids)
  1072. # print('equip_ids :',equip_ids)
  1073. # print('equip_names :',equip_names)
  1074. # # 调用api查到的iccid号:
  1075. # for i in range(len(iccids)):
  1076. # if iccids[i] != "":
  1077. # # print("------",i)
  1078. # # print('iccids :',iccids[i])
  1079. # # print('equip_ids :',equip_ids[i])
  1080. # # print('equip_names :',equip_names[i])
  1081. # res = get_siminfo(iccids[i])
  1082. # sim_res = res.text.encode('utf-8').decode('unicode_escape')
  1083. # if eval(sim_res)["code"] == 0:
  1084. # timeStamp = eval(sim_res)["data"]["expiry_date"]
  1085. # dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
  1086. # otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S")
  1087. # timeStamp1 = eval(sim_res)["data"]["active_date"]
  1088. # dateArray1 = datetime.datetime.utcfromtimestamp(timeStamp1)
  1089. # otherStyleTime1 = dateArray1.strftime("%Y-%m-%d %H:%M:%S")
  1090. # if Equip_SimInfo.objects.filter(equip_id=equip_ids[i]).exists():
  1091. # siminfo_obj = Equip_SimInfo.objects.get(equip_id=equip_ids[i])
  1092. # siminfo_obj.equip_name = equip_names[i]
  1093. # siminfo_obj.iccid = eval(sim_res)["data"]["iccid"]
  1094. # siminfo_obj.msisdn = eval(sim_res)["data"]["msisdn"]
  1095. # siminfo_obj.imsi = eval(sim_res)["data"]["imsi"]
  1096. # siminfo_obj.sp_code = eval(sim_res)["data"]["sp_code"]
  1097. # siminfo_obj.carrier = eval(sim_res)["data"]["carrier"]
  1098. # siminfo_obj.data_plan = eval(sim_res)["data"]["data_plan"]
  1099. # siminfo_obj.data_usage = eval(sim_res)["data"]["data_usage"]
  1100. # siminfo_obj.account_status = eval(sim_res)["data"]["account_status"]
  1101. # siminfo_obj.expiry_date = otherStyleTime
  1102. # siminfo_obj.active = eval(sim_res)["data"]["active"]
  1103. # siminfo_obj.test_valid_date = eval(sim_res)["data"]["test_valid_date"]
  1104. # siminfo_obj.silent_valid_date = eval(sim_res)["data"]["silent_valid_date"]
  1105. # siminfo_obj.test_used_data_usage = eval(sim_res)["data"]["test_used_data_usage"]
  1106. # siminfo_obj.active_date = otherStyleTime1
  1107. # siminfo_obj.data_balance = eval(sim_res)["data"]["data_balance"]
  1108. # siminfo_obj.outbound_date = eval(sim_res)["data"]["outbound_date"]
  1109. # siminfo_obj.support_sms = eval(sim_res)["data"]["support_sms"]
  1110. # siminfo_obj.upl_time = datetime.datetime.now()
  1111. # siminfo_obj.save()
  1112. # else:
  1113. # Equip_SimInfo.objects.create(
  1114. # equip_id = Equip.objects.get(equip_id=equip_ids[i]),
  1115. # equip_name = equip_names[i],
  1116. # iccid = eval(sim_res)["data"]["iccid"],
  1117. # msisdn = eval(sim_res)["data"]["msisdn"],
  1118. # imsi = eval(sim_res)["data"]["imsi"],
  1119. # sp_code = eval(sim_res)["data"]["sp_code"],
  1120. # carrier = eval(sim_res)["data"]["carrier"],
  1121. # data_plan = eval(sim_res)["data"]["data_plan"],
  1122. # data_usage = eval(sim_res)["data"]["data_usage"],
  1123. # account_status = eval(sim_res)["data"]["account_status"],
  1124. # expiry_date = otherStyleTime,
  1125. # active = eval(sim_res)["data"]["active"],
  1126. # test_valid_date = eval(sim_res)["data"]["test_valid_date"],
  1127. # silent_valid_date = eval(sim_res)["data"]["silent_valid_date"],
  1128. # test_used_data_usage = eval(sim_res)["data"]["test_used_data_usage"],
  1129. # active_date = otherStyleTime1,
  1130. # data_balance = eval(sim_res)["data"]["data_balance"],
  1131. # outbound_date = eval(sim_res)["data"]["outbound_date"],
  1132. # support_sms = eval(sim_res)["data"]["support_sms"]
  1133. # )
  1134. # print("-----sim卡信息更新成功------")
  1135. # 保存调用查询流量的api返回的数据;
  1136. # dat = []
  1137. # for j in list(range(0,siminfo_dict['data']['count'])):
  1138. # equip_iccids.append(siminfo_dict['data']['card_list'][j]['iccid'])
  1139. # # print('equip_iccids:',equip_iccids)
  1140. # for j in list(range(0,len(iccids))):
  1141. # siminfo_dict=eval(siminfo_str)
  1142. # if (iccids[j] in equip_iccids) == True:
  1143. # dat.append(siminfo_dict['data']['card_list'][equip_iccids.index(iccids[j])])
  1144. # else:
  1145. # dat.append({})
  1146. # dat[j]['equip_id']=equip_ids[j]
  1147. # dat[j]['equip_name']=equip_names[j]
  1148. # # print("dat[%d]=%s" %(j,dat[j]))
  1149. # iccids[j] = ""# 每次判断玩将该值清空,防止多个设备用一个SIM卡测试时显示异常;
  1150. # # print('----- iccids :',iccids)
  1151. # print("------------------------",dat)
  1152. # print("dat:",dat)
  1153. # ----------------------------------测报灯图片存在与否判断-----------------------------------
  1154. # sta1 = CBDstatus.objects.all()
  1155. # sta3 = []
  1156. # photo_list = []
  1157. # for i in sta1:
  1158. # sta3.append(i.equip_id.equip_id)
  1159. # for imei in sta3:
  1160. # file_dir = "pyftp/ftp_file/ykm_cbd/%s"%imei
  1161. # # print("file_dir",file_dir)
  1162. # for root, dirs, files in os.walk(file_dir):
  1163. # # print("当前目录为=========>>",root) #当前目录路径
  1164. # # print("当前子目录为=========>>",dirs) #当前路径下所有子目录
  1165. # if root.endswith(imei):
  1166. # pass
  1167. # else:
  1168. # # print("当前目录------->>",root)
  1169. # for roots, dirss, file in os.walk(root):
  1170. # # print(roots) #当前目录路径
  1171. # # print(dirs) #当前路径下所有子目录
  1172. # # print(file) #当前路径下所有非目录子文件
  1173. # if file != []:
  1174. # for i in file:
  1175. # photo_addr = roots + "/" + i
  1176. # # print(photo_addr)
  1177. # if CBDphoto.objects.filter(addr=photo_addr).exists():
  1178. # print("照片存在")
  1179. # else:
  1180. # photo_list.append(photo_addr)
  1181. # print("=========================")
  1182. # print(photo_list)
  1183. # print("=========================")
  1184. # -----------------------------------------------------------------------------------------------
  1185. # sta1 = BZYstatus.objects.all()
  1186. # sta3 = []
  1187. # photo_list = []
  1188. # for i in sta1:
  1189. # sta3.append(i.equip_id.equip_id)
  1190. # for imei in sta3:
  1191. # file_dir = "pyftp/ftp_file/ykm_cbd/%s"%imei
  1192. # # print("file_dir",file_dir)
  1193. # for root, dirs, files in os.walk(file_dir):
  1194. # # print("当前目录为=========>>",root) #当前目录路径
  1195. # # print("当前子目录为=========>>",dirs) #当前路径下所有子目录
  1196. # if root.endswith(imei):
  1197. # pass
  1198. # else:
  1199. # # print("当前目录------->>",root)
  1200. # for roots, dirss, file in os.walk(root):
  1201. # # print(roots) #当前目录路径
  1202. # # print(dirs) #当前路径下所有子目录
  1203. # # print(file) #当前路径下所有非目录子文件
  1204. # if file != []:
  1205. # for i in file:
  1206. # photo_addr = roots + "/" + i
  1207. # # print(photo_addr)
  1208. # if CBDphoto.objects.filter(addr=photo_addr).exists():
  1209. # print("照片存在")
  1210. # else:
  1211. # photo_list.append(photo_addr)
  1212. # print("=========================")
  1213. # print(photo_list)
  1214. # print("=========================")
  1215. # try:
  1216. # path = "pyftp/ftp_file/ykm_cbd/%s"%imei
  1217. # lsdir = os.listdir(path)
  1218. # dirs = [i for i in lsdir if os.path.isdir(os.path.join(path, i))]
  1219. # if dirs:
  1220. # for i in dirs:
  1221. # print_files(os.path.join(path, i))
  1222. # files = [i for i in lsdir if os.path.isfile(os.path.join(path,i))]
  1223. # for f in files:
  1224. # print(os.path.join(path, f))
  1225. # except Exception as e:
  1226. # print("=================>>",e)
  1227. # print("文件夹不存在")
  1228. # file_dir = "pyftp/ftp_file/ykm_cbd/%s"%imei
  1229. # print("file_dir",file_dir)
  1230. # for root, dirs, files in os.walk(file_dir):
  1231. # print(root) #当前目录路径
  1232. # print(dirs) #当前路径下所有子目录
  1233. # print(files) #当前路径下所有非目录子文件
  1234. # for i in files:
  1235. # file = file_dir + "/" + i
  1236. # jpg_time = time.ctime(os.path.getctime(file))
  1237. # print("jpg_time",jpg_time)
  1238. # st = s_time+jpg_time[11:19]
  1239. # print("-------------------",i.split(".")[0])
  1240. # pic_time_1 = s_time+i.split(".")[0]
  1241. # pic_time_1 = datetime.datetime.strptime(pic_time_1,"%Y%m%d%H-%M-%S")
  1242. # print("-------------------->",pic_time_1)
  1243. # print("-------------------->",type(pic_time_1))
  1244. # pic_time = datetime.datetime.strptime(st,"%Y%m%d%H:%M:%S")
  1245. # print("类型查看",type(pic_time))
  1246. # print("把字符串转成datetime: ", datetime.datetime.strptime(st,"%Y%m%d%H:%M:%S"))
  1247. # if CBDphoto.objects.filter(addr=file).exists():
  1248. # photoobj = CBDphoto.objects.get(addr=file)
  1249. # photoobj.upl_time = pic_time_1
  1250. # photoobj.save()
  1251. # print("照片存在")
  1252. # else:
  1253. # print("照片不存在")
  1254. # try:
  1255. # imei_obj = Equip.objects.get(equip_id=imei)
  1256. # CBDphoto.objects.create(equip_id=imei_obj,addr=file,upl_time=pic_time)
  1257. # except Exception as e:
  1258. # print("错误信息为",e)
  1259. # a = 0
  1260. # qxz_obj = QXZdata.objects.filter(equip_id="16062023")
  1261. # for i in qxz_obj:
  1262. # a = a + 1
  1263. # i.delete()
  1264. # print("----删除成功%s"%a)
  1265. # =========================================================================================================
  1266. # equip_list = Equip.objects.all()
  1267. # bbb = 0
  1268. # for i in equip_list:
  1269. # photo_list = CBDphoto.objects.filter(equip_id=i.equip_id)
  1270. # status_list = CBDdata.objects.filter(equip_id=i.equip_id)
  1271. # for x in photo_list:
  1272. # for a in status_list:
  1273. # if x.at == None:
  1274. # if a.upl_time.year == x.upl_time.year and a.upl_time.month == x.upl_time.month and a.upl_time.day == x.upl_time.day and a.upl_time.hour == x.upl_time.hour:
  1275. # # print("数据时间==================>",a.upl_time)
  1276. # # print("设备温度==================>",eval(a.cbd_data)["at"])
  1277. # # print("设备湿度==================>",eval(a.cbd_data)["ah"])
  1278. # # print("照片时间==================>",x.upl_time)
  1279. # x.at = eval(a.cbd_data)["at"]
  1280. # x.ah = eval(a.cbd_data)["ah"]
  1281. # x.save()
  1282. # bbb = bbb + 1
  1283. # print(bbb)
  1284. # print("========操作成功=======")
  1285. # =========================================================================================================
  1286. # file_dir="pyftp/ftp_file/bzy_photo/865650042816310/201909"
  1287. # # print("file_dir",file_dir)
  1288. # # bzy_obj = Equip.objects.get(equip_id=imei)
  1289. # for root, dirs, files in os.walk(file_dir):
  1290. # print("当前目录为=========>>",root) #当前目录路径
  1291. # print("当前子目录为=========>>",dirs) #当前路径下所有子目录
  1292. # print("当前目录文件为=========>>",files) #当前路径下所有非目录子文件
  1293. # for i in files:
  1294. # photo_addr = file_dir + "/" + i
  1295. # print("文件夹图片路径===========》》",photo_addr)
  1296. # if BZYphoto.objects.filter(addr=photo_addr).exists():
  1297. # print("照片存在")
  1298. # else:
  1299. # print("照片不存在")
  1300. # BZYphoto.objects.create(equip_id=bzy_obj,addr=photo_addr)
  1301. # if root.endswith(imei):
  1302. # pass
  1303. # else:
  1304. # # print("当前目录------->>",root)
  1305. # for roots, dirss, file in os.walk(root):
  1306. # # print(roots) #当前目录路径
  1307. # # print(dirs) #当前路径下所有子目录
  1308. # # print(file) #当前路径下所有非目录子文件
  1309. # if file != []:
  1310. # for i in file:
  1311. # photo_addr = roots + "/" + i
  1312. # # print(photo_addr)
  1313. # if BZYphoto.objects.filter(addr=photo_addr).exists():
  1314. # print("照片存在")
  1315. # else:
  1316. # BZYphoto.objects.create(equip_id=bzy_obj,addr=photo_addr)
  1317. # ---------------------------丁艳青定制设备----------------------------------------------------------
  1318. # one_day = datetime.timedelta(days=1)
  1319. # minut = datetime.timedelta(minutes=random.choice(range(20,34)))
  1320. # start_time = '2019-07-29 19:00:08'
  1321. # start_time = datetime.datetime.strptime(start_time,'%Y-%m-%d %H:%M:%S')
  1322. # a = 1
  1323. # b = 1
  1324. # photo_list = CBDphoto.objects.filter(equip_id="865650040895753")
  1325. # for i in photo_list:
  1326. # i.upl_time = start_time + datetime.timedelta(days=b) + datetime.timedelta(minutes=random.choice(range(20,34))) * a
  1327. # i.save()
  1328. # a = a + 1
  1329. # print("修改次数",a)
  1330. # if a == 5:
  1331. # print("---跨天")
  1332. # b = b + 1
  1333. # i.upl_time = start_time + datetime.timedelta(days=b) + datetime.timedelta(minutes=random.choice(range(20,34)))
  1334. # i.save()
  1335. # a = 0
  1336. # data_obj = RecentCBDdata.objects.get(equip_id="865650042837894")
  1337. # print(eval(data_obj.cbd_data)['at'])
  1338. # scd_list = RecentSCDdata.objects.all().values()
  1339. # for i in scd_list:
  1340. # try:
  1341. # if eval(i['scd_data'])['lng'] == 0:
  1342. # print(i['equip_id_id'])
  1343. # except:
  1344. # print("---报错设备号为:",i['equip_id_id'])
  1345. # print("-----lng-------",eval(i['scd_data'])['lng'])