# from qcloudsms_py import SmsSingleSender # from qcloudsms_py.httpclient import HTTPError # from qcloudsms_py import SmsMultiSender import os import django import sys BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 定位到你的django根目录 sys.path.append(os.path.abspath(os.path.join(BASE_DIR, os.pardir))) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "yfwlw_pro.settings") # project_name 项目名称 django.setup() import json import time import requests import datetime from apps.ReportManage.all_dict import mobile_list, insect_dict_new, qxz_dict from apps.AppInfoManage.models import Equip, Equip_type, CBDphoto, Msg_Send, Msg_Conf, Equip_SimInfo, SCDstatus, CBDstatus, RecentCBDdata, MyUser,JKphoto, BZYdata, QXZstatus,QXZdata,\ QXZstatus_New, QXZ_Conf, QXZ_Default_Conf, MyUser, JKphoto, BZYphoto, QXZdata_New, Group, CBDstatus_all, Alarm_record from apps.SimInfo.views import get_siminfo import paho.mqtt.client as mqtt # 短信应用 SDK AppID appid = 1400227496 # SDK AppID 以1400开头 # 短信应用 SDK AppKey appkey = "c9aba961bd30072f1e1b9272077abaea" from requests.auth import HTTPBasicAuth import xlrd, xlwt import random from django.db import transaction from django.db.models import Q from django.db.models import Count import math import os import urllib.parse import urllib.request import re from collections import Counter import datetime import oss2 import threadpool # i = CBDstatus.objects.get(equip_id="867814040037265") # for i in CBDstatus.objects.all(): # print("--->>lng",i.lng) # print("--->>lat",i.lat) # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 # auth = oss2.Auth('', '') auth = oss2.Auth('LTAI4G7tFh5Nk4KXZoSPk1D8', 'RV4S2SfbLPoFNjlI4uIOoA0J1LQPQc') # Endpoint以杭州为例,其它Region请按实际情况填写。 # bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '') # bucket = oss2.Bucket(auth, 'https://cbdphoto.oss-cn-hangzhou.aliyuncs.com', 'cbdphoto') bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'cbdpic') # # 必须以二进制的方式打开文件,因为需要知道文件包含的字节数。 # with open('./1.jpg', 'rb') as fileobj: # # Seek方法用于指定从第1000个字节位置开始读写。上传时会从您指定的第1000个字节位置开始上传,直到文件结束。 # fileobj.seek(1000, os.SEEK_SET) # # Tell方法用于返回当前位置。 # current = fileobj.tell() # bucket.put_object('2.jpg', fileobj) # aa = bucket.put_object_from_file('10/112234.jpg', '112233.jpg') # print(aa) def TimeStampToTime(timestamp): timeStruct = time.localtime(timestamp) str_p = time.strftime('%Y-%m-%d %H:%M:%S',timeStruct) dateTime_p = datetime.datetime.strptime(str_p,'%Y-%m-%d %H:%M:%S') return dateTime_p def get_FileCreateTime(filePath): # filePath = unicode(filePath,'utf8') t = os.path.getmtime(filePath) return TimeStampToTime(t) # for obj in oss2.ObjectIterator(bucket, prefix='202009/865650042837720/'): # addr = "https://bzypic.oss-cn-hangzhou.aliyuncs.com/" + obj.key # if BZYphoto.objects.filter(addr=addr).exists(): # print("照片存在") # else: # print("照片不存在") # print(addr) # for x in Equip.objects.filter(equip_type=3): # imei = x.equip_id # equip_obj = x imei = "869300039256106" equip_obj = Equip.objects.get(equip_id=imei) file_dir = "../pyftp/ftp_file/ykm_cbd/%s"%imei for root, dirs, file in os.walk(file_dir): if file != [] and "jpg" in file[0]: # print("当前路径下所有非目录子文件>>",file) for i in file: pic_addr_1 = root + "/" + i pic_addr = pic_addr_1.replace("../","") picname_1 = get_FileCreateTime(pic_addr_1) # print("文件时间为",picname_1) # now = datetime.datetime.now() addr = pic_addr.split("/")[-1] if "ALARM_INPUT" in addr or "FACE_BACKGROUND" in addr or "FACE_SNAP" in addr or "MOTION_DETECTION" in addr or "ALARM_INP" in addr: # print("长addr",addr) _time = addr.split("_")[2][0:14] # print("------->>",len(_time)) try: _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') except: print("时间转化错误alarm") print("----->>",addr) _time = picname_1 # print("192.168的时间",pic_addr) # print("------->>",_time) # if i.upl_time.hour != _time.hour: # i.upl_time = _time # i.save() elif len(addr) == 18: _time = addr.split(".")[0][0:14] _time = _time.split("\r")[0] try: _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') except: print("时间转化错误18") print("----->>",addr) _time = picname_1 # print("len=18的时间",pic_addr) # print("------->>",_time) elif len(addr) == 35: _time = addr.split("-")[1] + addr.split("-")[2] _time = _time.split(".")[0] try: _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') except: print("时间转化错误18") print("----->>",addr) _time = picname_1 # print("len=18的时间",pic_addr) # print("------->>",_time) elif ":" in addr: _year_month = pic_addr.split("/")[-2] _day = addr.split(".")[0] _time = _year_month + _day try: _time = datetime.datetime.strptime(_time,'%Y%m%d%H:%M:%S') except: print("时间转化错误 :") print("----->>",addr) _time = get_FileCreateTime(pic_addr_1) # print("带:的时间",pic_addr) # print("------->>",_time) elif "-" in addr and len(addr) < 15: _year_month = pic_addr.split("/")[-2] _day = addr.split(".")[0] _time = _year_month + _day try: _time = datetime.datetime.strptime(_time,'%Y%m%d%H-%M-%S') except: print("时间转化错误-") print("----->>",addr) _time = get_FileCreateTime(pic_addr_1) # print("带-的时间",pic_addr) # print("------->>",_time) elif len(addr) == 10: _year_month = pic_addr.split("/")[-2] _day = addr.split(".")[0] _time = _year_month + _day try: _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') except: print("时间转化错误10") print("----->>",pic_addr) _time = get_FileCreateTime(pic_addr_1) # print("len=10的时间",pic_addr) # print("------->>",_time) elif "-" in addr and len(addr) > 15: _addr = addr.split('.')[-2] _addr = _addr.split('-') _time = _addr[-2] + _addr[-1] try: _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') except: print("时间转化错误--") print("----->>",pic_addr) _time = get_FileCreateTime(pic_addr_1) else: print("其他addr",addr) print("其他",pic_addr) _time = get_FileCreateTime(pic_addr_1) # time.sleep(1) if _time.year == 1970: _time = get_FileCreateTime(pic_addr_1) strnow = datetime.datetime.strftime(_time,'%Y%m') picname = datetime.datetime.strftime(_time,'%Y%m%d%H%M%S') # # bucket_pic = bucket.put_object_from_file(strnow + '/' + imei + '/'+ picname + '.jpg', pic_addr_1) # print("图片数据库路径为pic_addr",pic_addr) # new_addr = "https://cbdpic.oss-cn-hangzhou.aliyuncs.com/" + strnow + '/' + imei + '/'+ picname + '.jpg' new_addr = "http://cbd.yfpyx.com/" + imei + '/' + strnow + '/'+ picname + '.jpg' exist = bucket.object_exists(imei + '/' + strnow + '/'+ picname + '.jpg') if exist: print('object exist') if CBDphoto.objects.filter(addr=pic_addr).exists(): if CBDphoto.objects.filter(addr=new_addr).exists(): pass else: data_obj = RecentCBDdata.objects.get(equip_id=equip_obj) # CBDphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time) CBDphoto.objects.filter(addr=pic_addr).update(addr=new_addr) # os.remove(pic_addr_1) print("图片删除成功") print("数据库创建链接成功") else: if CBDphoto.objects.filter(addr=new_addr).exists(): pass else: data_obj = RecentCBDdata.objects.get(equip_id=equip_obj) # CBDphoto.objects.create(equip_id=equip, addr=img_addr,at=eval(data_obj.cbd_data)['at'],ah=eval(data_obj.cbd_data)['ah']) CBDphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time,at=eval(data_obj.cbd_data)['at'],ah=eval(data_obj.cbd_data)['ah']) # os.remove(pic_addr_1) print("图片删除成功") else: print('object not exist') bucket_pic = bucket.put_object_from_file(imei + '/' + strnow + '/'+ picname + '.jpg', pic_addr_1) print("----------->>>",bucket_pic) if CBDphoto.objects.filter(addr=pic_addr).exists(): if CBDphoto.objects.filter(addr=new_addr).exists(): pass else: data_obj = RecentCBDdata.objects.get(equip_id=equip_obj) # CBDphoto.objects.create(equip_id=equip, addr=img_addr,at=eval(data_obj.cbd_data)['at'],ah=eval(data_obj.cbd_data)['ah']) CBDphoto.objects.filter(addr=pic_addr).update(addr=new_addr) # os.remove(pic_addr_1) print("图片删除成功") else: if CBDphoto.objects.filter(addr=new_addr).exists(): pass else: data_obj = RecentCBDdata.objects.get(equip_id=equip_obj) # CBDphoto.objects.create(equip_id=equip, addr=img_addr,at=eval(data_obj.cbd_data)['at'],ah=eval(data_obj.cbd_data)['ah']) CBDphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time,at=eval(data_obj.cbd_data)['at'],ah=eval(data_obj.cbd_data)['ah']) # os.remove(pic_addr_1) print("图片删除成功") # BZYphoto.objects.create(equip_id=imei,addr=new_addr,upl_time=picname) print("oss传输成功") # pool = threadpool.ThreadPool(2) # req = threadpool.makeRequests(get_image_result, data) # [pool.putRequest(req) for req in req] # pool.wait() # addr = pic_addr.split("/")[-1] # if "192.168" in addr: # print("长addr",addr) # _time = addr.split("_")[2][0:14] # print("------->>",len(_time)) # try: # _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') # except: # continue # print(_time) # # if i.upl_time.hour != _time.hour: # # i.upl_time = _time # # i.save() # elif len(addr) == 18: # print("短addr",addr) # _time = addr.split(".")[0][0:14] # print("------->>",len(_time)) # _time = _time.split("\r")[0] # try: # _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') # except: # continue # print("文件链接为",pic_addr_1) # # picname_1 = get_FileCreateTime(pic_addr_1) # print("文件时间为",picname_1) # now = datetime.datetime.now() # strnow = datetime.datetime.strftime(_time,'%Y%m') # picname = datetime.datetime.strftime(_time,'%Y%m%d%H%M%S') # bucket_pic = bucket.put_object_from_file(strnow + '/' + imei + '/'+ picname + '.jpg', pic_addr_1) # print("图片数据库路径为pic_addr",pic_addr) # new_addr = "https://bzypic.oss-cn-hangzhou.aliyuncs.com/" + strnow + '/' + imei + '/'+ picname + '.jpg' # exist = bucket.object_exists(strnow + '/' + imei + '/'+ picname + '.jpg') # if BZYphoto.objects.filter(addr=pic_addr).exists(): # print("照片存在") # print("新的照片路径为",new_addr) # # 返回值为true表示文件存在,false表示文件不存在。 # if exist: # if BZYphoto.objects.filter(addr=new_addr).exists(): # BZYphoto.objects.filter(addr=new_addr).update(equip_id=equip_obj,upl_time=_time) # print('object exist') # BZYphoto.objects.filter(addr=pic_addr).update(equip_id=equip_obj,addr=new_addr,upl_time=_time) # else: # BZYphoto.objects.filter(addr=pic_addr).update(equip_id=equip_obj,addr=new_addr,upl_time=_time) # bucket_pic = bucket.put_object_from_file(strnow + '/' + imei + '/'+ picname + '.jpg', pic_addr_1) # print("oss传输成功") # print('object not exist') # else: # print("照片不存在") # # print("图片时间为",get_FileCreateTime(picname)) # if exist: # if BZYphoto.objects.filter(addr=new_addr).exists(): # BZYphoto.objects.filter(addr=new_addr).update(equip_id=equip_obj,upl_time=_time) # else: # print('object exist') # BZYphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time) # else: # if BZYphoto.objects.filter(addr=new_addr).exists(): # BZYphoto.objects.filter(addr=new_addr).update(equip_id=equip_obj,upl_time=_time) # else: # print('object exist') # BZYphoto.objects.create(equip_id=equip_obj,addr=new_addr,upl_time=_time) # # BZYphoto.objects.create(equip_id=imei,addr=new_addr,upl_time=picname) # bucket_pic = bucket.put_object_from_file(strnow + '/' + imei + '/'+ picname + '.jpg', pic_addr_1) # print("oss传输成功") # print('object not exist') # if CBDphoto.objects.filter(addr=pic_addr).exists(): # print("照片存在") # else: # print("图片时间为",get_FileCreateTime(pic_addr_1)) # print("!!!未发现照片入库") # print("当前图片路径为pic_addr",pic_addr) # print("最外层文件夹",root) # print("当前目录路径>>",root) #当前目录路径 # print("当前路径下所有子目录>>",dirs) #当前路径下所有子目录 # print("当前路径下所有非目录子文件>>",file) #当前路径下所有非目录子文件 # if dirs == []: # if file == []: # print("当前目录路径>>",root) #当前目录路径 # print("当前路径下所有子目录>>",dirs) #当前路径下所有子目录 # print("当前路径下所有非目录子文件>>",file) #当前路径下所有非目录子文件 # print(imei) # print("当前路径下所有非目录子文件>>",file) # print("当前目录------->>",root) # for roots, dirss, files in os.walk(root): # print("当前目录路径>>",roots) #当前目录路径 # print("当前路径下所有子目录>>",dirss) #当前路径下所有子目录 # print("当前路径下所有非目录子文件>>",files) #当前路径下所有非目录子文件 # imei = "868956044786428" # equip_obj = Equip.objects.get(equip_id=imei) # file_dir = "../pyftp/ftp_file/ykm_cbd/%s"%imei # for root, dirs, files in os.walk(file_dir): # print(root) # # print("当前目录------->>",root) # for roots, dirss, file in os.walk(root): # print("当前目录路径>>",roots) #当前目录路径 # print("当前路径下所有子目录>>",dirs) #当前路径下所有子目录 # print("当前路径下所有非目录子文件>>",file) #当前路径下所有非目录子文件 # if file != []: # for i in file: # photo_addr = roots + "/" + i # photo_addr = photo_addr.replace("../","") # print(photo_addr) # if CBDphoto.objects.filter(addr=photo_addr).exists(): # print("照片存在") # pass # else: # # addr = photo_addr # addr = photo_addr.split("/")[-1] # if "192.168" in addr: # print("长addr",addr) # _time = addr.split("_")[2][0:14] # print("------->>",len(_time)) # try: # _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') # except: # continue # print(_time) # # if i.upl_time.hour != _time.hour: # # i.upl_time = _time # # i.save() # elif len(addr) == 18: # print("短addr",addr) # _time = addr.split(".")[0][0:14] # print("------->>",len(_time)) # _time = _time.split("\r")[0] # try: # _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') # except: # continue # print(_time) # # if i.upl_time.hour != _time.hour: # # i.upl_time = _time # # i.save() # print("图片时间为",_time) # print("图片链接为",photo_addr) # CBDphoto.objects.create(equip_id=equip_obj,addr=photo_addr,upl_time=_time) # print('=================================================') # bzy_list = BZYphoto.objects.filter(equip_id=865650043206644) # for i in bzy_list: # if i.upl_time.hour == 17 and i.upl_time.minute == 0: # print(i.upl_time) # i.delete() # for i in BZYphoto.objects.all(): # addr = i.addr.split("/")[-1] # if "192.168" in addr: # print("长addr",addr) # _time = addr.split("_")[2][0:14] # print("------->>",len(_time)) # try: # _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') # except: # continue # print(_time) # if i.upl_time.hour != _time.hour: # i.upl_time = _time # i.save() # elif len(addr) == 18: # print("短addr",addr) # _time = addr.split(".")[0][0:14] # print("------->>",len(_time)) # _time = _time.split("\r")[0] # try: # _time = datetime.datetime.strptime(_time,'%Y%m%d%H%M%S') # except: # continue # print(_time) # if i.upl_time.hour != _time.hour: # i.upl_time = _time # i.save() # qxz_list = QXZdata_New.objects.filter(equip_id=16064789)[0] # # for i in qxz_list: # print(qxz_list.upl_time) # QXZstatus_New.objects.filter(equip_id=16064789).update(upl_time=qxz_list.upl_time) # e_id = "868956048888824" # alarm_list = Alarm_record.objects.all() # for i in alarm_list: # # status = eval(i.cbd_status) # i.e_type = i.equip_id.equip_type.type_id # i.save() # alarm_list = Alarm_record.objects.filter(alarm_desc="{'status':0,'type':'offline'}").values().annotate(count=Count('equip_id_id')).values('equip_id_id','count') # for i in alarm_list: # print(i) # _list = [] # equip_list = Equip.objects.filter(Q(equip_type="2") | Q(equip_type="3") | Q(equip_type="4") | Q(equip_type="5")) # for i in equip_list: # a_list = Alarm_record.objects.filter(equip_id=i) # a_list.update(e_type=str(i.equip_type_id)) # print("---------",i) # print("---------") # # print(type(alarm_list)) # # for i in alarm_list: # # _list.append(i['equip_id_id']) # # print(alarm_list) # # print(_list) # b = Counter(alarm_list) # # # for xx in b: # # # print(xx) # # print(type(b)) # print(sorted(b.elements())) # devices = Alarm_record.objects.filter(alarm_desc="{'status':0,'type':'offline'}") # # print(devices) # # print(devices.count()) # data = {} # for i in devices: # data.setdefault(i.equip_id_id,[]).append(i.alarm_desc) # values = {} # for k,v in data.items(): # values[k] = len(v) # print(values) # print(i.equip_id.equip_type.type_id) # cbd_list = CBDstatus.objects.all() # for i in cbd_list: # if i.is_online == "1": # # print("上报时间",i.upl_time) # # print("数据时间",RecentCBDdata.objects.get(equip_id=i.equip_id).upl_time) # aa = i.upl_time # try: # bb = RecentCBDdata.objects.get(equip_id=i.equip_id).upl_time # except: # continue # print("状态时间",aa.year,aa.month,aa.day) # print("数据时间",bb.year,bb.month,bb.day) # if aa.year != 2020 or aa.month != 6 or aa.day != 28: # print("执行!") # staobj = CBDstatus.objects.filter(equip_id=Equip.objects.get(equip_id=i.equip_id)) # # staobj.is_online = "0" # staobj.update(is_online="0") # staobj.update(off_time=RecentCBDdata.objects.get(equip_id=i.equip_id).upl_time) # if aa.year != bb.year or aa.month != bb.month or aa.day != bb.day: # print("执行!") # staobj = CBDstatus.objects.filter(equip_id=Equip.objects.get(equip_id=i.equip_id)) # staobj.update(upl_time=RecentCBDdata.objects.get(equip_id=i.equip_id).upl_time) # aa = CBDstatus.objects.filter(equip_id=Equip.objects.get(equip_id=i.equip_id)) # aa.update(upl_time=i.off_time) # lists = ["865650044457725"] # equip = Equip.objects.get(equip_id="868956044831315") # print(equip) # photo_addr = " pyftp/ftp_file/bzy_photo/865650043208251/202004/192.168.1.100_01_20200430170516558_ALARM_I.jpg" # bzys = BZYphoto.objects.create(equip_id=equip, addr=photo_addr) # print("照片不存在") # if equip.ftb_addr: # data = { # "Image":bzys.addr, # "imei":bzys.equip_id, # } # data = json.dumps(data) # headers = {"Content-type":"application/json"} # bzy_photo = requests.post(equip.ftb_addr,data=data,headers=headers) # book=xlrd.open_workbook('昆虫标定2020.xlsx') # # book=xlrd.open_workbook('工作表.xlsx') # # sheet=book.sheet_by_index(0) # # print(sheet.head()) # sheet=book.sheet_by_name('Sheet1') #根据 sheet名称来 # print(sheet) # # print(sheet.nrows) #excel里面有多少行 # # print(sheet.ncols) #excel里面有多少列 # # print(sheet.cell(0,12).value) #获取第0行第0列的值 # # print(sheet.row_values(0)) #获取到整行的内容 # # lists = sheet.col_values(21)#获取到整列的内容 # lis = sheet.col_values(0)#获取到整列的内容 # data = [] # date = [] # nu = 0 # for i in lis: # nu += 1 # lists = re.findall(r'\d+',i) # data.append(insect_dict_new[lists[0]]) # date.append(lists[1]) # # print(re.findall(r"\d+\.?\d*",i) # wb = xlwt.Workbook(encoding='utf8') # sheet = wb.add_sheet('order-sheet',cell_overwrite_ok=True) # style_heading = xlwt.easyxf() # # 写入文件标题 # sheet.write(0, 0, '害虫名字', style_heading) # sheet.write(0, 1, '害虫数量', style_heading) # data_row = 1 # nu = 0 # for x in range(len(data)): # sheet.write(data_row, 0, data[x]) # sheet.write(data_row, 1, date[x]) # data_row += 1 # # 写入数据 保存到本地 # user_export = "sexport_file/" # if os.path.exists(user_export) == False: # os.makedirs(user_export) # wb.save(user_export + "昆虫统计表" + ".xls") # now_time = datetime.datetime.now() # data = ["865650043206719","865650043207865","865650043189378","865650043202718","865650043206834","865650043207329"] # def test(imei): # print(imei) # # 创建一个文件对象 # wb = xlwt.Workbook(encoding='utf8') # # 创建一个sheet对象 # end_time = "2020-02-01" # sheet = wb.add_sheet('order-sheet',cell_overwrite_ok=True) # cbd_list = CBDphoto.objects.filter(equip_id=imei,upl_time__range=(end_time,now_time)) # print(len(cbd_list)) # #设置文件头的样式,这个不是必须的可以根据自己的需求进行更改 # style_heading = xlwt.easyxf(""" # font: # name Arial, # colour_index white, # bold on, # height 0xA0; # align: # wrap off, # vert center, # horiz center; # pattern: # pattern solid, # fore-colour 0x19; # borders: # left THIN, # right THIN, # top THIN, # bottom THIN; # """) # # 写入文件标题 # sheet.write(0, 0, '设备id', style_heading) # sheet.write(0, 1, '上传时间', style_heading) # sheet.write(0, 2, '图片路径', style_heading) # sheet.write(0, 3, '识别结果', style_heading) # data_row = 1 # for x in cbd_list: # pri_time = x.upl_time.strftime('%Y-%m-%d %H:%M:%S') # sheet.write(data_row, 0, x.equip_id.equip_id) # sheet.write(data_row, 1, pri_time) # sheet.write(data_row, 2, x.addr.split("/")[-1]) # sheet.write(data_row, 3, x.indentify_result) # data_row += 1 # # 写入数据 保存到本地 # user_export = "sexport_file/" # if os.path.exists(user_export) == False: # os.makedirs(user_export) # wb.save(user_export + imei + ".xls") # if __name__ == '__main__': # for i in data: # test(i) # dat = [] # user_data = user_export + user_name.username + ".xls" # dat.append({"file": user_data}) # data = json.dumps(dat) # return HttpResponse(data) # scd_list = SCDstatus.objects.all() # cbd_list = CBDstatus.objects.all() # _list = [] # for i in scd_list: # if i.lng: # try: # res = requests.post("http://api.map.baidu.com/geocoder?location=%s,%s&coord_type=gcj02&output=json"%(i.lat,i.lng)) # city = (eval(res.text))["result"]["addressComponent"]["city"] # district = (eval(res.text))["result"]["addressComponent"]["district"] # print(city) # except: # continue # _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}) # print(_list) # title = ["name1","name2","type","equipId","equipName","lng","lat"] # book = xlwt.Workbook() # 创建一个excel对象 # sheet = book.add_sheet('Sheet1',cell_overwrite_ok=True) # 添加一个sheet页 # for i in range(len(title)): # 遍历列 # # sheet.write(0,i,title[i],style) # 将title数组中的字段写入到0行i列中 # sheet.write(0,i,title[i]) # 将title数组中的字段写入到0行i列中 # # print(sta2) # for xx in range(len(_list)): # 遍历列表 # sheet.write(xx+1,0,_list[xx]['name1']) # 将equip_id写入到第x+1行,第0列中 # sheet.write(xx+1,1,_list[xx]['name2']) # sheet.write(xx+1,2,_list[xx]['type']) # sheet.write(xx+1,3,_list[xx]['equipId']) # sheet.write(xx+1,4,_list[xx]['equipName']) # sheet.write(xx+1,5,_list[xx]['lng']) # sheet.write(xx+1,6,_list[xx]['lat']) # book.save("654321.xlsx") # book = xlrd.open_workbook('2020.xlsx') # sheet=book.sheet_by_name('Sheet2') # lists = sheet.col_values(0)#获取到整列的内容 # # print(lists) # user_name = MyUser.objects.get(username="sgnyj") # list1 = [] # list2 = [] # for i in lists: # try: # equip_obj = Equip.objects.get(equip_id=i) # list1.append(i) # except Exception as e: # # print(e) # list2.append(i) # print(len(list2)) # print(len(list1)) # lists = [] # for i in list1: # equip_obj = Equip.objects.get(equip_id=i) # if equip_obj.equip_user == user_name: # pass # elif equip_obj.equip_user: # print(equip_obj) # lists.append(equip_obj) # else: # equip_obj.equip_user = user_name # equip_obj.save() # print(lists) # print(equip_obj) # if equip_obj.exists(): # pass # else: # print(equip_obj.equip_user) # # list3 = [] # for i in list2: # try: # equip_obj = Equip.objects.get(equip_id=i) # list3.append(i) # except Exception as e : # for i in list1: # equip_obj = Equip.objects.filter(equip_id=i,equip_user=user_name) # if equip_obj: # pass # else: # pass # data = [] # for x in Equip.objects.filter(equip_user=MyUser.objects.get(username="sgnyj")): # data.append(x.equip_id) # print(len(data)) # print(len(_list1)) # for xx in _list1: # if xx not in data: # print(xx) # cbdgroup = Group.objects.get(name='测报灯用户') # # obj = Group.models.get(b_name='xxx') # uname_obj = MyUser.objects.filter(groups=cbdgroup) # # groups = Group.objects.filter(user=uname_obj) # print(uname_obj) # for i in uname_obj: # print(i.username) # while True: # strtmp = os.popen("systemctl status py_ftp_server.service") # #print(type(strtmp)) # cmdback = strtmp.read() # # print("----->>",cmdback) # if "running" in cmdback: # print("服务正常运行") # elif "failed" in cmdback: # # 需要发送短信的手机号码 # phone_numbers = ["13733763561","18258845915","15225155092"] # # 短信模板ID,需要在短信控制台中申请 # template_id = 579944 # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请 # # 签名 # sms_sign = "云飞科技" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请 # msender = SmsMultiSender(appid, appkey) # params = ["ftp",] # try: # result = msender.send_with_param(86, phone_numbers, # template_id, params, sign=sms_sign, extend="", ext="") # except HTTPError as e: # print(e) # except Exception as e: # print(e) # print(result) # print("----发送成功") # print("服务异常!!!") # time.sleep(60) # cbdgroup = Group.objects.get(name='测报灯用户') # aobj = obj.author_set() # # 如果你使用了如我上面的related_name='auth' 别名属性,就可以 # # user_list = cbdgroup.myuser.all() # print(user_list) # print(random.randint(10,30)) # cbd_list = CBDstatus.objects.all() # for xx in cbd_list: # imei = xx.equip_id_id # e1 = '' # e2 = '' # e3 = '' # e4 = '' # e5 = '' # e6 = '' # e7 = '' # e8 = '' # e9 = '' # e10 = '' # e11 = '' # e12 = '' # e13 = '' # e14 = '' # e15 = '' # e16 = '' # e17 = '' # e18 = '' # e19 = '' # e20 = '' # e21 = '' # e22 = '' # e23 = '' # e24 = '' # e25 = '' # e26 = '' # e27 = '' # e28 = '' # e29 = '' # e30 = '' # conf1 = '' # conf2 = '' # conf3 = '' # conf4 = '' # conf5 = '' # conf6 = '' # conf7 = '' # conf8 = '' # conf9 = '' # conf10 = '' # conf11 = '' # conf12 = '' # conf13 = '' # conf14 = '' # conf15 = '' # conf16 = '' # conf17 = '' # conf18 = '' # conf19 = '' # conf20 = '' # conf21 = '' # conf22 = '' # conf23 = '' # conf24 = '' # conf25 = '' # conf26 = '' # conf27 = '' # conf28 = '' # conf29 = '' # conf30 = '' # qxz_list = Equip.objects.filter(equip_type=5) # for xx in qxz_list: # equip_id = xx.equip_id # # time.sleep(10) # # equip_id = "16064781" # # equip_id = "16064809" # # equip_id = "18054384" # # equip_id = "16064783" # # equip_id = "16064789" # # equip_id = "16064808" # # equip_id = "16064784" # # equip_id = "16064781" # for x in QXZdata.objects.filter(equip_id=equip_id): # e_id = eval(x.qxz_data)['StationID'] # upl_time = x.upl_time # # qxz_picture = QXZdata.objects.get(equip_id=e_id).qxz_picture # qxzdata = eval(x.qxz_data)['data'] # # print(qxzdata) # for i in qxzdata: # if i['eKey'] == 'e1': # e1 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e1[0] == "#": # continue # elif i['eKey'] == 'e2': # e2 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e2[0] == "#": # continue # elif i['eKey'] == 'e3': # e3 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e3[0] == "#": # continue # elif i['eKey'] == 'e4': # e4 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e4[0] == "#": # continue # elif i['eKey'] == 'e5': # e5 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e5[0] == "#": # continue # elif i['eKey'] == 'e6': # e6 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e6[0] == "#": # continue # elif i['eKey'] == 'e7': # e7 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e7[0] == "#": # continue # elif i['eKey'] == 'e8': # e8 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e8[0] == "#": # continue # elif i['eKey'] == 'e9': # e9 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e9[0] == "#": # continue # elif i['eKey'] == 'e10': # e10 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e10[0] == "#": # continue # elif i['eKey'] == 'e11': # e11 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e11[0] == "#": # continue # elif i['eKey'] == 'e12': # e12 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e12[0] == "#": # continue # elif i['eKey'] == 'e13': # e13 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e13[0] == "#": # continue # elif i['eKey'] == 'e14': # e14 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e14[0] == "#": # continue # elif i['eKey'] == 'e15': # e15 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e15[0] == "#": # continue # elif i['eKey'] == 'e16': # e16 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e16[0] == "#": # continue # elif i['eKey'] == 'e17': # e17 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e17[0] == "#": # continue # elif i['eKey'] == 'e18': # e18 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e18[0] == "#": # continue # elif i['eKey'] == 'e19': # e19 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e19[0] == "#": # continue # elif i['eKey'] == 'e20': # e20 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e20[0] == "#": # continue # elif i['eKey'] == 'e21': # e21 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e21[0] == "#": # continue # elif i['eKey'] == 'e22': # e22 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e22[0] == "#": # continue # elif i['eKey'] == 'e23': # e23 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e23[0] == "#": # continue # elif i['eKey'] == 'e24': # e24 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e24[0] == "#": # continue # elif i['eKey'] == 'e25': # e25 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e25[0] == "#": # continue # elif i['eKey'] == 'e26': # e26 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e26[0] == "#": # continue # elif i['eKey'] == 'e27': # e27 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e27[0] == "#": # continue # elif i['eKey'] == 'e28': # e28 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e28[0] == "#": # continue # elif i['eKey'] == 'e29': # e29 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e29[0] == "#": # continue # elif i['eKey'] == 'e30': # e30 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey']) # if e30[0] == "#": # continue # if QXZdata_New.objects.filter(equip_id=e_id,upl_time=upl_time).exists(): # print("------create default-------") # else: # QXZdata_New.objects.create(equip_id_id=e_id, # e1=e1,e2=e2,e3=e3,e4=e4,e5=e5,e6=e6,e7=e7,e8=e8,e9=e9,e10=e10, # e11=e11,e12=e12,e13=e13,e14=e14,e15=e15,e16=e16,e17=e17,e18=e18,e19=e19,e20=e20, # e21=e21,e22=e22,e23=e23,e24=e24,e25=e25,e26=e26,e27=e27,e28=e28,e29=e29,e30=e30, # upl_time=upl_time) # print("------create success-------") # e1 = '' # e2 = '' # e3 = '' # e4 = '' # e5 = '' # e6 = '' # e7 = '' # e8 = '' # e9 = '' # e10 = '' # e11 = '' # e12 = '' # e13 = '' # e14 = '' # e15 = '' # e16 = '' # e17 = '' # e18 = '' # e19 = '' # e20 = '' # e21 = '' # e22 = '' # e23 = '' # e24 = '' # e25 = '' # e26 = '' # e27 = '' # e28 = '' # e29 = '' # e30 = '' #-------------------------------------------------------------------------------------------------------------- # file_dir = "pyftp/ftp_file/bzy_photo/865650042816179" # print("file_dir",file_dir) # for root, dirs, files in os.walk(file_dir): # # print("root-------------->>",root) #当前目录路径 # # print("子目录文件dirs=======>>",dirs) #当前路径下所有子目录 # # print("非子目录文件files========>>",files) #当前路径下所有非目录子文件 # for i in files: # # if len(i) == 45: # file = root + "/" + i # # st = root.split("/")[-1] + i.split(".")[0] # st = i.split(".")[3].split("_")[2][0:14] # print("st",st) # print("file====>>",file) # try: # pic_time = datetime.datetime.strptime(st,"%Y%m%d%H%M%S") # except Exception as eeex: # print("错误信息为",eeex) # continue # # if JKphoto.objects.filter(addr=file).exists(): # # photoobj = JKphoto.objects.get(addr=file) # # photoobj.upl_time = pic_time # # photoobj.save() # # print("照片存在") # # else: # # print("照片不存在") # # try: # # imei_obj = Equip.objects.get(equip_id=235185770) # # JKphoto.objects.create(equip_id=imei_obj,addr=file,upl_time=pic_time) # # except Exception as e: # # print("错误信息为",e) # if BZYphoto.objects.filter(addr=file).exists(): # photoobj = BZYphoto.objects.get(addr=file) # photoobj.upl_time = pic_time # photoobj.save() # print("照片存在") # else: # print("照片不存在") # try: # imei_obj = Equip.objects.get(equip_id=865650042816179) # BZYphoto.objects.create(equip_id=imei_obj,addr=file,upl_time=pic_time) # except Exception as e: # print("错误信息为",e) #-------------------------------------------------------------------------------------------------------------- # print(root) # file = file_dir + "/" + i # jpg_time = time.ctime(os.path.getctime(file)) # print("jpg_time",jpg_time) # # st = s_time+jpg_time[11:19] # st = i.split(".")[3].split("_")[2][0:12] # print("-------------------",i.split(".")[3].split("_")[2][0:14]) # # pic_time_1 = s_time+i.split(".")[0] # # pic_time_1 = datetime.datetime.strptime(pic_time_1,"%Y%m%d%H-%M-%S") # # print("-------------------->",pic_time_1) # # print("-------------------->",type(pic_time_1)) # pic_time = datetime.datetime.strptime(st,"%Y%m%d%H%M%S") # print("类型查看",type(pic_time)) # print("把字符串转成datetime: ", datetime.datetime.strptime(st,"%Y%m%d%H%M%S")) # print("file:",file) # if CBDphoto.objects.filter(addr=file).exists(): # # photoobj = CBDphoto.objects.get(addr=file) # # photoobj.upl_time = pic_time_1 # # photoobj.save() # print("照片存在") # else: # print("照片不存在") # try: # imei_obj = Equip.objects.get(equip_id=imei) # CBDphoto.objects.create(equip_id=imei_obj,addr=file,upl_time=pic_time) # except Exception as e: # print("错误信息为",e) # -------------------------------------------------------MQTT TEST------------------------------------- # import threading # def cbdthread(e_id): # i = 0 # TASK_TOPIC = '/yfkj/cbd/pub/%s'%e_id # 客户端发布消息主题 # client_id = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time())) # client = mqtt.Client(client_id, transport='tcp') # client.connect("39.104.94.153", 1883, 60) # 此处端口默认为1883,通信端口期keepalive默认60 # client.loop_start() # # print("子线程名称输出",threading.currentThread().name) # """ # 客户端发布消息 # :param message: 消息主体 # :return: # """ # 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"}} # # publish(主题:Topic; 消息内容) # while True: # client.publish(TASK_TOPIC, json.dumps(payload, ensure_ascii=False)) # print("Successful send message!",e_id) # time.sleep(1) # print("=============",i) # i = i + 1 # e_id = 10000 # for i in range(10): # t = threading.Thread(target=cbdthread,args=(e_id,)) # #打印出当前线程的名称和id # # print(threading.currentThread().name) # # t.setDaemon(True) # t.start() # e_id = e_id + 1 # if e_id == 10009: # while True: # print("主线程名称输出",threading.currentThread().name) # thread_num = len(threading.enumerate()) # print("线程数量是%d" % thread_num) # time.sleep(1) # -------------------------------------------------------MQTT TEST------------------------------------- # print(type(os.path.getsize('F:\\1111.jpg'))) # msg_conf_list = Msg_Conf.objects.all() # for i in msg_conf_list: # cbd_obj = Equip.objects.get(equip_id=i.equip_id) # equip_name = "" # if cbd_obj.equip_name == "" or cbd_obj.equip_name == None: # equip_name = cbd_obj.equip_id # else: # equip_name = cbd_obj.equip_name # msgconf = eval(i.conf) # # 需要发送短信的手机号码 # phone_numbers = msgconf["phone"] # # 短信模板ID,需要在短信控制台中申请 # template_id = 431378 # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请 # # 签名 # sms_sign = "云飞科技" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请 # ssender = SmsSingleSender(appid, appkey) # params = ["","","由于入冬无虫子,暂时停止短信发送服务,将于明年三月份开启"] # 当模板没有参数时,`params = []` # try: # result = ssender.send_with_param(86, phone_numbers, # template_id, params, sign=sms_sign, extend="", ext="") # 签名参数未提供或者为空时,会使用默认签名发送短信 # except HTTPError as e: # print(e) # except Exception as e: # print(e) # print(result) # Msg_Send.objects.create(mobile=msgconf["phone"],equip_id=i.equip_id,send_dec=params,result_desc=result) # pest_name = [] # print("----发送成功",phone_numbers) # 账号有效期设置 # user_obj = MyUser.objects.all() # for i in user_obj: # if i.date_joined.year == 2019 and i.date_joined.month >= 10: # print(i.date_joined) # print(i.username) # i.expire_date = i.date_joined + datetime.timedelta(days=730) # i.save() # print("操作成功") # # 查看最近有虫子的测报灯 # one_month = datetime.timedelta(days=30) # now_time = datetime.datetime.now() # photo_list = CBDphoto.objects.all() # for i in photo_list: # if now_time - i.upl_time <= one_month and i.indentify_result: # print(i.equip_id_id) # def iccid_info(iccid): # cbd_obj = CBDstatus.objects.all().values() # scd_obj = SCDstatus.objects.all().values() # dat = [] # for i in cbd_obj: # try: # if iccid == eval(i["cbd_status"])["iccid"]: # # print(eval(i["cbd_status"])["iccid"]) # # print(i["off_time"]) # ic_eq = {"id":i["equip_id_id"],"lng":i["lng"],"lat":i["lat"],"offtime":i["off_time"]} # dat.append(ic_eq) # except Exception as e: # pass # for x in scd_obj: # try: # if iccid == eval(x["scd_status"])["iccid"]: # ic_eq = {"id":x["equip_id_id"],"lng":x["lng"],"lat":x["lat"],"offtime":x["off_time"]} # dat.append(ic_eq) # except Exception as e: # pass # return dat # book=xlrd.open_workbook('河南云飞科技发展有限公司.xlsx') # sheet=book.sheet_by_index(0) #根据sheet编号来 # # sheet=book.sheet_by_name('sheet1') #根据 sheet名称来 # # print(sheet.nrows) #excel里面有多少行 # # print(sheet.ncols) #excel里面有多少列 # # print(sheet.cell(0,0).value) #获取第0行第0列的值 # # print(sheet.row_values(0)) #获取到整行的内容 # # print(sheet.col_values(1)) #获取到整列的内容 # iccid_list = [] # sta2 = [] # iccid_excel = sheet.col_values(1) # for i in range(len(iccid_excel)): # if i == 0: # continue # # print(iccid_excel[i]) # # iccid_list.append(iccid_excel[i]) # # print(iccid_info(iccid_excel[i])) # if len(iccid_info(iccid_excel[i])) > 1: # # print("此卡用于多个设备需单独记录=====>>",iccid_excel[i]) # equip_id = "999999" # location = "" # equip_type = "" # equip_user = "" # elif len(iccid_info(iccid_excel[i])) == 1: # try: # equip_id = iccid_info(iccid_excel[i])[0]["id"] # except: # equip_id = "" # try: # lat = iccid_info(iccid_excel[i])[0]["lat"] # except: # lat = "" # try: # lng = iccid_info(iccid_excel[i])[0]["lng"] # except: # lng = "" # try: # equip_type = Equip.objects.get(equip_id=equip_id).equip_type.type_name # except: # equip_type = "" # try: # equip_user = Equip.objects.get(equip_id=equip_id).equip_user.username # except: # equip_user = "" # if lat: # res = requests.post("http://api.map.baidu.com/geocoder?location=%s,%s&coord_type=gcj02&output=json"%(lat,lng)) # location = (eval(res.text))["result"]["addressComponent"]["province"]+eval(res.text)["result"]["addressComponent"]["district"] # else: # location = "" # elif len(iccid_info(iccid_excel[i])) == 0: # equip_id = "000000" # location = "" # equip_type = "" # equip_user = "" # sta2.append({"iccid":iccid_excel[i],"equip_id":equip_id,"location":location,"equip_user":equip_user,"equip_type":equip_type}) # # print(sta2) # title = ["iccid","设备id","设备类型","设备位置","设备用户"] # book = xlwt.Workbook() # 创建一个excel对象 # sheet = book.add_sheet('Sheet1',cell_overwrite_ok=True) # 添加一个sheet页 # for i in range(len(title)): # 遍历列 # # sheet.write(0,i,title[i],style) # 将title数组中的字段写入到0行i列中 # sheet.write(0,15+i,title[i]) # 将title数组中的字段写入到0行i列中 # # print(sta2) # for x in range(len(sta2)): # 遍历列表 # sheet.write(x+1,15,sta2[x]['iccid']) # 将equip_id写入到第x+1行,第0列中 # sheet.write(x+1,16,sta2[x]['equip_id']) # sheet.write(x+1,17,sta2[x]['equip_type']) # sheet.write(x+1,18,sta2[x]['location']) # 设备开关 # sheet.write(x+1,19,sta2[x]['equip_user']) # book.save("123456.xlsx") # print(iccid_list) # for x in iccid_list: # print(x) # print(iccid_info(x)) # time.sleep(1) # print(iccid_list[i]) # for i in range(sheet.nrows): #循环获取每行的内容 # print(sheet.row_values(i)) # equip_list = Equip.objects.all() # for i in equip_list: # print(type(i.equip_type_id)) # datalist = RecentCBDdata.objects.all() # for i in datalist: # if i.discern == False: # i.disc = 1 # i.save() # elif i.discern == True: # i.disc = 0 # i.save() # print("数据导入完毕") # 判断测报灯流量卡充值停用账号 # simlist = Equip_SimInfo.objects.all() # for i in simlist: # dateTime_p = datetime.datetime.strptime(i.expiry_date,'%Y-%m-%d %H:%M:%S') # # 判断sim卡是否30天到期 # if dateTime_p - datetime.datetime.now() > datetime.timedelta(days=30): # pass # elif datetime.timedelta(days=0) > dateTime_p - datetime.datetime.now() > datetime.timedelta(days=0): # print("发送短信通知") # elif dateTime_p - datetime.datetime.now() < datetime.timedelta(days=0): # if i.equip_id.equip_type_id == 2: # print("杀虫灯") # # 判断杀虫灯状态30天内是否有数据 # if datetime.datetime.now() - SCDstatus.objects.get(equip_id=i.equip_id).upl_time > datetime.timedelta(days=30): # pass # else: # print("停用账号") # elif i.equip_id.equip_type_id == 3: # print("测报灯") # # 判断测报灯状态30天内是否有数据 # if datetime.datetime.now() - CBDstatus.objects.get(equip_id=i.equip_id).upl_time > datetime.timedelta(days=30): # pass # else: # print("停用账号") # end_date = datetime.datetime.now() # one_day = datetime.timedelta(days=1) # one_day_later = datetime.datetime.now() - one_day # print(one_day_later) # new_time = "%s-%s-%s %s:%s:%s" %(one_day_later.year,one_day_later.month,one_day_later.day,"19","00","00") # start_date = datetime.datetime.strptime(new_time,"%Y-%m-%d %H:%M:%S") # cbd_obj = Equip.objects.get(equip_id='86123456789') # equip_name = "" # if cbd_obj.equip_name == "" or cbd_obj.equip_name == None: # equip_name = cbd_obj.equip_id # else: # equip_name = cbd_obj.equip_name # msg_conf_list = Msg_Conf.objects.get(equip_id=cbd_obj) # msgconf = eval(msg_conf_list.conf) # if msgconf["appointPest"] == "on": # pest_num = 0 # pest_name = [] # pest_nums = [] # pest_dict = {} # pest_dict_new = {} # cbd_list = CBDphoto.objects.filter(equip_id=cbd_obj) # for x in cbd_list: # if x.indentify_result == None or x.indentify_result == "": # pass # else: # for a in x.indentify_result.split("#"): # pest_num = pest_num + int(a.split(",")[1]) # pest_name.append(int(a.split(",")[0])) # pest_nums.append(int(a.split(",")[1])) # for xx in range(len(pest_name)): # c = {pest_name[xx]:pest_nums[xx]} # for d in c: # if d in pest_dict: # pest_dict[d] = pest_dict[d] + c[d] # else: # pest_dict.update(c) # print(pest_dict) # send_dict = {} # print(msgconf["appointPestName"].split("#")) # print(msgconf["appointPestNum"].split("#")) # msg_name = msgconf["appointPestName"].split("#") # msg_num = msgconf["appointPestNum"].split("#") # for i in range(len(msg_name)): # if pest_dict[int(msg_name[i])] > int(msg_num[i]): # aaa = {insect_dict_new[msg_name[i]]:"%s头"%int(msg_num[i])} # send_dict.update(aaa) # print(send_dict) # if pest_dict[int(msgconf["appointPestName"])] >= int(msgconf["appointPestNum"]): # pass # pest_num = 0 # pest_name = [] # pest_nums = [] # pest_dict = {} # pest_dict_new = {} # equip_obj = Equip.objects.get(equip_id="868575028850321") # file_dir = "pyftp/ftp_file/bzy_photo/%s"%868575028850321 # print("file_dir",file_dir) # sta1 = BZYstatus.objects.all() # sta3 = [] # photo_list = [] # for i in sta1: # sta3.append(i.equip_id.equip_id) # for imei in sta3: # equip_obj = Equip.objects.get(equip_id=imei) # file_dir = "pyftp/ftp_file/bzy_photo/%s"%imei # # print("file_dir",file_dir) # for root, dirs, files in os.walk(file_dir): # # print("当前目录为=========>>",root) #当前目录路径 # # print("当前子目录为=========>>",dirs) #当前路径下所有子目录 # if root.endswith(imei): # pass # else: # # print("当前目录------->>",root) # for roots, dirss, file in os.walk(root): # # print(roots) #当前目录路径 # # print(dirs) #当前路径下所有子目录 # # print(file) #当前路径下所有非目录子文件 # if file != []: # for i in file: # photo_addr = roots + "/" + i # # print(photo_addr) # if BZYphoto.objects.filter(addr=photo_addr).exists(): # # print("照片存在") # # print(i[17:29]) # # print("-----") # # sp = datetime.datetime.now().year # # sp_str = i.split(str(sp))[1] # # # print(sp_str[0:8]) # # st = str(sp) + sp_str[0:8] # # print(st) # pass # else: # print("-----") # sp = datetime.datetime.now().year # sp_str = i.split(str(sp))[1] # # print(sp_str[0:8]) # st = str(sp) + sp_str[0:8] # # st = i[17:29] # # print(st) # pic_time = datetime.datetime.strptime(st,"%Y%m%d%H%M%S") # print(pic_time) # BZYphoto.objects.create(equip_id=equip_obj,addr=photo_addr,upl_time=pic_time) # sta1 = BZYstatus.objects.all() # sta3 = [] # photo_list = [] # for i in sta1: # sta3.append(i.equip_id.equip_id) # for imei in sta3: # equip_obj = Equip.objects.get(equip_id=imei) # file_dir = "pyftp/ftp_file/bzy_photo/%s"%imei # # print("file_dir",file_dir) # for root, dirs, files in os.walk(file_dir): # # print("当前目录为=========>>",root) #当前目录路径 # # print("当前子目录为=========>>",dirs) #当前路径下所有子目录 # if root.endswith(imei): # pass # else: # # print("当前目录------->>",root) # for roots, dirss, file in os.walk(root): # # print(roots) #当前目录路径 # # print(dirs) #当前路径下所有子目录 # # print(file) #当前路径下所有非目录子文件 # if file != []: # for i in file: # photo_addr = roots + "/" + i # # print(photo_addr) # if BZYphoto.objects.filter(addr=photo_addr).exists(): # print("照片存在") # print(i[16:34]) # else: # # os.path.getctime(photo_addr) # 输出文件的创建时间 # # print("文件创建时间",os.path.getctime(photo_addr)) # # timeStamp = os.path.getctime(photo_addr) # # timeArray = time.localtime(timeStamp) # # otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) # # print(otherStyleTime) # # BZYphoto.objects.create(equip_id=equip_obj,addr=photo_addr) # print("-----") # print("=========================") # # print(photo_list) # print("=========================") # sta1 = SCDstatus.objects.all() # sta2 = CBDstatus.objects.all() # # 获取设备列表中的SIM卡的iccid号码: # iccids = [] # # 获取设备的id: # equip_ids = [] # # 获取设备的名称: # equip_names = [] # # 遍历查询流量信息: # siminfos = [] # for i in sta1: # try: # iccid = eval(i.scd_status)['iccid'] # except: # iccid = "" # iccids.append(iccid) # equip_ids.append(str(i.equip_id)) # equip_names.append(str(i.equip_id.equip_name)) # for i in sta2: # try: # iccid = eval(i.cbd_status)['iccid'] # except: # iccid = "" # iccids.append(iccid) # equip_ids.append(str(i.equip_id)) # equip_names.append(str(i.equip_id.equip_name)) # print('all iccids :',iccids) # print('all equip_ids :',equip_ids) # print('all equip_names :',equip_names) # print('iccids :',iccids) # print('equip_ids :',equip_ids) # print('equip_names :',equip_names) # # 调用api查到的iccid号: # for i in range(len(iccids)): # if iccids[i] != "": # # print("------",i) # # print('iccids :',iccids[i]) # # print('equip_ids :',equip_ids[i]) # # print('equip_names :',equip_names[i]) # res = get_siminfo(iccids[i]) # sim_res = res.text.encode('utf-8').decode('unicode_escape') # if eval(sim_res)["code"] == 0: # timeStamp = eval(sim_res)["data"]["expiry_date"] # dateArray = datetime.datetime.utcfromtimestamp(timeStamp) # otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S") # timeStamp1 = eval(sim_res)["data"]["active_date"] # dateArray1 = datetime.datetime.utcfromtimestamp(timeStamp1) # otherStyleTime1 = dateArray1.strftime("%Y-%m-%d %H:%M:%S") # if Equip_SimInfo.objects.filter(equip_id=equip_ids[i]).exists(): # siminfo_obj = Equip_SimInfo.objects.get(equip_id=equip_ids[i]) # siminfo_obj.equip_name = equip_names[i] # siminfo_obj.iccid = eval(sim_res)["data"]["iccid"] # siminfo_obj.msisdn = eval(sim_res)["data"]["msisdn"] # siminfo_obj.imsi = eval(sim_res)["data"]["imsi"] # siminfo_obj.sp_code = eval(sim_res)["data"]["sp_code"] # siminfo_obj.carrier = eval(sim_res)["data"]["carrier"] # siminfo_obj.data_plan = eval(sim_res)["data"]["data_plan"] # siminfo_obj.data_usage = eval(sim_res)["data"]["data_usage"] # siminfo_obj.account_status = eval(sim_res)["data"]["account_status"] # siminfo_obj.expiry_date = otherStyleTime # siminfo_obj.active = eval(sim_res)["data"]["active"] # siminfo_obj.test_valid_date = eval(sim_res)["data"]["test_valid_date"] # siminfo_obj.silent_valid_date = eval(sim_res)["data"]["silent_valid_date"] # siminfo_obj.test_used_data_usage = eval(sim_res)["data"]["test_used_data_usage"] # siminfo_obj.active_date = otherStyleTime1 # siminfo_obj.data_balance = eval(sim_res)["data"]["data_balance"] # siminfo_obj.outbound_date = eval(sim_res)["data"]["outbound_date"] # siminfo_obj.support_sms = eval(sim_res)["data"]["support_sms"] # siminfo_obj.upl_time = datetime.datetime.now() # siminfo_obj.save() # else: # Equip_SimInfo.objects.create( # equip_id = Equip.objects.get(equip_id=equip_ids[i]), # equip_name = equip_names[i], # iccid = eval(sim_res)["data"]["iccid"], # msisdn = eval(sim_res)["data"]["msisdn"], # imsi = eval(sim_res)["data"]["imsi"], # sp_code = eval(sim_res)["data"]["sp_code"], # carrier = eval(sim_res)["data"]["carrier"], # data_plan = eval(sim_res)["data"]["data_plan"], # data_usage = eval(sim_res)["data"]["data_usage"], # account_status = eval(sim_res)["data"]["account_status"], # expiry_date = otherStyleTime, # active = eval(sim_res)["data"]["active"], # test_valid_date = eval(sim_res)["data"]["test_valid_date"], # silent_valid_date = eval(sim_res)["data"]["silent_valid_date"], # test_used_data_usage = eval(sim_res)["data"]["test_used_data_usage"], # active_date = otherStyleTime1, # data_balance = eval(sim_res)["data"]["data_balance"], # outbound_date = eval(sim_res)["data"]["outbound_date"], # support_sms = eval(sim_res)["data"]["support_sms"] # ) # print("-----sim卡信息更新成功------") # 保存调用查询流量的api返回的数据; # dat = [] # for j in list(range(0,siminfo_dict['data']['count'])): # equip_iccids.append(siminfo_dict['data']['card_list'][j]['iccid']) # # print('equip_iccids:',equip_iccids) # for j in list(range(0,len(iccids))): # siminfo_dict=eval(siminfo_str) # if (iccids[j] in equip_iccids) == True: # dat.append(siminfo_dict['data']['card_list'][equip_iccids.index(iccids[j])]) # else: # dat.append({}) # dat[j]['equip_id']=equip_ids[j] # dat[j]['equip_name']=equip_names[j] # # print("dat[%d]=%s" %(j,dat[j])) # iccids[j] = ""# 每次判断玩将该值清空,防止多个设备用一个SIM卡测试时显示异常; # # print('----- iccids :',iccids) # print("------------------------",dat) # print("dat:",dat) # ----------------------------------测报灯图片存在与否判断----------------------------------- # sta1 = CBDstatus.objects.all() # sta3 = [] # photo_list = [] # for i in sta1: # sta3.append(i.equip_id.equip_id) # for imei in sta3: # file_dir = "pyftp/ftp_file/ykm_cbd/%s"%imei # # print("file_dir",file_dir) # for root, dirs, files in os.walk(file_dir): # # print("当前目录为=========>>",root) #当前目录路径 # # print("当前子目录为=========>>",dirs) #当前路径下所有子目录 # if root.endswith(imei): # pass # else: # # print("当前目录------->>",root) # for roots, dirss, file in os.walk(root): # # print(roots) #当前目录路径 # # print(dirs) #当前路径下所有子目录 # # print(file) #当前路径下所有非目录子文件 # if file != []: # for i in file: # photo_addr = roots + "/" + i # # print(photo_addr) # if CBDphoto.objects.filter(addr=photo_addr).exists(): # print("照片存在") # else: # photo_list.append(photo_addr) # print("=========================") # print(photo_list) # print("=========================") # ----------------------------------------------------------------------------------------------- # sta1 = BZYstatus.objects.all() # sta3 = [] # photo_list = [] # for i in sta1: # sta3.append(i.equip_id.equip_id) # for imei in sta3: # file_dir = "pyftp/ftp_file/ykm_cbd/%s"%imei # # print("file_dir",file_dir) # for root, dirs, files in os.walk(file_dir): # # print("当前目录为=========>>",root) #当前目录路径 # # print("当前子目录为=========>>",dirs) #当前路径下所有子目录 # if root.endswith(imei): # pass # else: # # print("当前目录------->>",root) # for roots, dirss, file in os.walk(root): # # print(roots) #当前目录路径 # # print(dirs) #当前路径下所有子目录 # # print(file) #当前路径下所有非目录子文件 # if file != []: # for i in file: # photo_addr = roots + "/" + i # # print(photo_addr) # if CBDphoto.objects.filter(addr=photo_addr).exists(): # print("照片存在") # else: # photo_list.append(photo_addr) # print("=========================") # print(photo_list) # print("=========================") # try: # path = "pyftp/ftp_file/ykm_cbd/%s"%imei # lsdir = os.listdir(path) # dirs = [i for i in lsdir if os.path.isdir(os.path.join(path, i))] # if dirs: # for i in dirs: # print_files(os.path.join(path, i)) # files = [i for i in lsdir if os.path.isfile(os.path.join(path,i))] # for f in files: # print(os.path.join(path, f)) # except Exception as e: # print("=================>>",e) # print("文件夹不存在") # file_dir = "pyftp/ftp_file/ykm_cbd/%s"%imei # print("file_dir",file_dir) # for root, dirs, files in os.walk(file_dir): # print(root) #当前目录路径 # print(dirs) #当前路径下所有子目录 # print(files) #当前路径下所有非目录子文件 # for i in files: # file = file_dir + "/" + i # jpg_time = time.ctime(os.path.getctime(file)) # print("jpg_time",jpg_time) # st = s_time+jpg_time[11:19] # print("-------------------",i.split(".")[0]) # pic_time_1 = s_time+i.split(".")[0] # pic_time_1 = datetime.datetime.strptime(pic_time_1,"%Y%m%d%H-%M-%S") # print("-------------------->",pic_time_1) # print("-------------------->",type(pic_time_1)) # pic_time = datetime.datetime.strptime(st,"%Y%m%d%H:%M:%S") # print("类型查看",type(pic_time)) # print("把字符串转成datetime: ", datetime.datetime.strptime(st,"%Y%m%d%H:%M:%S")) # if CBDphoto.objects.filter(addr=file).exists(): # photoobj = CBDphoto.objects.get(addr=file) # photoobj.upl_time = pic_time_1 # photoobj.save() # print("照片存在") # else: # print("照片不存在") # try: # imei_obj = Equip.objects.get(equip_id=imei) # CBDphoto.objects.create(equip_id=imei_obj,addr=file,upl_time=pic_time) # except Exception as e: # print("错误信息为",e) # a = 0 # qxz_obj = QXZdata.objects.filter(equip_id="16062023") # for i in qxz_obj: # a = a + 1 # i.delete() # print("----删除成功%s"%a) # ========================================================================================================= # equip_list = Equip.objects.all() # bbb = 0 # for i in equip_list: # photo_list = CBDphoto.objects.filter(equip_id=i.equip_id) # status_list = CBDdata.objects.filter(equip_id=i.equip_id) # for x in photo_list: # for a in status_list: # if x.at == None: # 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: # # print("数据时间==================>",a.upl_time) # # print("设备温度==================>",eval(a.cbd_data)["at"]) # # print("设备湿度==================>",eval(a.cbd_data)["ah"]) # # print("照片时间==================>",x.upl_time) # x.at = eval(a.cbd_data)["at"] # x.ah = eval(a.cbd_data)["ah"] # x.save() # bbb = bbb + 1 # print(bbb) # print("========操作成功=======") # ========================================================================================================= # file_dir="pyftp/ftp_file/bzy_photo/865650042816310/201909" # # print("file_dir",file_dir) # # bzy_obj = Equip.objects.get(equip_id=imei) # for root, dirs, files in os.walk(file_dir): # print("当前目录为=========>>",root) #当前目录路径 # print("当前子目录为=========>>",dirs) #当前路径下所有子目录 # print("当前目录文件为=========>>",files) #当前路径下所有非目录子文件 # for i in files: # photo_addr = file_dir + "/" + i # print("文件夹图片路径===========》》",photo_addr) # if BZYphoto.objects.filter(addr=photo_addr).exists(): # print("照片存在") # else: # print("照片不存在") # BZYphoto.objects.create(equip_id=bzy_obj,addr=photo_addr) # if root.endswith(imei): # pass # else: # # print("当前目录------->>",root) # for roots, dirss, file in os.walk(root): # # print(roots) #当前目录路径 # # print(dirs) #当前路径下所有子目录 # # print(file) #当前路径下所有非目录子文件 # if file != []: # for i in file: # photo_addr = roots + "/" + i # # print(photo_addr) # if BZYphoto.objects.filter(addr=photo_addr).exists(): # print("照片存在") # else: # BZYphoto.objects.create(equip_id=bzy_obj,addr=photo_addr) # ---------------------------丁艳青定制设备---------------------------------------------------------- # one_day = datetime.timedelta(days=1) # minut = datetime.timedelta(minutes=random.choice(range(20,34))) # start_time = '2019-07-29 19:00:08' # start_time = datetime.datetime.strptime(start_time,'%Y-%m-%d %H:%M:%S') # a = 1 # b = 1 # photo_list = CBDphoto.objects.filter(equip_id="865650040895753") # for i in photo_list: # i.upl_time = start_time + datetime.timedelta(days=b) + datetime.timedelta(minutes=random.choice(range(20,34))) * a # i.save() # a = a + 1 # print("修改次数",a) # if a == 5: # print("---跨天") # b = b + 1 # i.upl_time = start_time + datetime.timedelta(days=b) + datetime.timedelta(minutes=random.choice(range(20,34))) # i.save() # a = 0 # data_obj = RecentCBDdata.objects.get(equip_id="865650042837894") # print(eval(data_obj.cbd_data)['at']) # scd_list = RecentSCDdata.objects.all().values() # for i in scd_list: # try: # if eval(i['scd_data'])['lng'] == 0: # print(i['equip_id_id']) # except: # print("---报错设备号为:",i['equip_id_id']) # print("-----lng-------",eval(i['scd_data'])['lng'])