def getRegionMonitorResult(self, openid, data): if data.has_key("from_time"): from_time = datetime.datetime.strptime(data.from_time, "%Y-%m-%d %H:%M:%S") to_time = datetime.datetime.strptime(data.to_time, "%Y-%m-%d %H:%M:%S") else: now = datetime.datetime.now() from_time = datetime.datetime.strptime( now.strftime("%Y-%m-%d 00:00:00"), "%Y-%m-%d %H:%M:%S") to_time = (from_time + datetime.timedelta(days=1)) imei = data.imei cfgPara = seatdb.getMonitorRegionResultByImei(imei, from_time, to_time) cfgPara["total"] = len(cfgPara["rows"]) cfgPara["from_time"] = from_time.strftime("%Y-%m-%d %H:%M:%S") cfgPara["to_time"] = to_time.strftime("%Y-%m-%d %H:%M:%S") dev = devdb.getDeviceByImei(imei, format="string") if web.ctx.method == 'GET': cfgPara["openid"] = openid cfgPara["dev"] = dev fixPara = {"openid": openid} _cfgPara = json.dumps(cfgPara, ensure_ascii=False) ret = self.render.regionmonitor(_cfgPara, fixPara) else: ret = uTools.formatPostMsg(cfgPara) return ret
def offlineNotify(self, data): imei = data.imei dev = devdb.getDeviceByImei(imei, format="string") if dev["phone"] == None or dev["phone"] == "": dev["phone"] = "未知手机卡" cfgPara = {"dev": dev} jdkSign = {} cfgPara = json.dumps(cfgPara, ensure_ascii=False) ret = self.render.offline_notify(cfgPara, jdkSign) return ret
def getFileName(imei, create_at): print("getFileName...start") busline = linedb.getBuslineByImei(imei) company = linedb.getCompanyByBusline(busline["id"]) bus = devdb.getDeviceByImei(imei) _date = datetime.datetime.now().strftime("%Y-%m-%d") filename = (bus["name"] if bus["name"] != "" else imei) dir = files_path + company["company"] + "/" + busline[ "from_name"] + "-" + busline["to_name"] + "/" + _date makedir(dir) _filename = dir + "/" + busline["from_name"] + "-" + busline[ "to_name"] + "_" + filename print("getFileName...done:{0}".format(_filename)) return _filename
def get_bustravel_detail(self, openid, data): span_id = data.span_id cfgPara = busdb.getDetailBusTravelStat(span_id) imei = cfgPara["imei"] company = linedb.getCompanyByImei(imei) dev = devdb.getDeviceByImei(imei, format="string") cfgPara["name"] = dev["name"] cfgPara["company_id"] = company["id"] cfgPara["openid"] = openid jdksign = objWeixin.get_jdk_sign(self.env["url"]) sharePara = tradeObj.genPreSharePara("share-view", openid, imei) sharePara["blank_color"] = "#C0C0C0" sharePara["manager"] = objWeixin.getManager(openid) sharePara["company_id"] = company["id"] sharePara["openid"] = openid cfgPara = json.dumps(cfgPara, ensure_ascii=False) ret = self.render.bustravel_detail(cfgPara, jdksign, sharePara) return ret
def get_bustravel_current(self, openid, data): imei = data.imei company = linedb.getCompanyByImei(imei) dev = devdb.getDeviceByImei(imei, format="string") cfgPara = busdb.getCurrentBusTravelStat(imei) if cfgPara == None: #暂时没有数据 ret = web.seeother( "/device?act=seat-status-auto&openid={0}&imei={1}&company_id={2}" .format(openid, imei, company["id"])) else: cfgPara["name"] = dev["name"] cfgPara["imei"] = imei cfgPara["company_id"] = company["id"] jdksign = objWeixin.get_jdk_sign(self.env["url"]) sharePara = tradeObj.genPreSharePara("share-view", openid, imei) sharePara["manager"] = objWeixin.getManager(openid) sharePara["company_id"] = company["id"] cfgPara = json.dumps(cfgPara, ensure_ascii=False) ret = self.render.bustravel_current(cfgPara, jdksign, sharePara) return ret
def getBusConfig(self,openid,data): dev = devdb.getDeviceByImei(data.imei,format="string") ret = {"total":0,"rows":[]} ret["rows"].append({"name" :"IMEI" ,"db_name":"imei" ,"value":dev["imei"]}) ret["rows"].append({"name" :"车牌号" ,"db_name":"name" ,"value":dev["name"],"editor":"text"}) ret["rows"].append({"name" :"SIM卡号" ,"db_name":"phone" ,"value":dev["phone"],"editor":"text"}) ret["rows"].append({"name" :"设备类型" ,"db_name":"devType","value":dev["devType"]}) ret["rows"].append({"name" :"注册日期" ,"db_name":"regedit_at","value":dev["regedit_at"]}) ret["rows"].append({"name" :"座位类型" ,"db_name":"seat_type","value":dev["seat_type"],"editor":{ "type":'combobox', "options":{ "valueField":'seatid', "textField":'seatname', "method":'get', "url":'/pc/monitor?act=get-bus-seattype', "required":True }, } }) ret["total"] = len(ret["rows"]) ret = uTools.formatPostMsg(ret) return ret
def getSeatsByImeiAuto(self, roleType,openid,data): if data.has_key("imei"): imei = data.imei else: imei = devdb.getDemoDeviceImei() #演示大巴 #判定该用户对imei的可视权限--暂缺 if data.has_key("his_datetime") or roleType=="operator-history": if data.has_key("his_datetime"): his_datetime = data.his_datetime else: his_datetime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") seatStatus= busdb.getSeatStatus(imei,his_datetime) else: seatStatus = busdb.getSeatStatus(imei) cfgPara=seatStatus["param"] _typeMap = {"region":"区间检测","timer":"定时分析","timely":"及时数据"} if seatStatus["region"]!=None: _type="region" elif seatStatus["timer"]!=None: _type="timer" else: _type="timely" cfgPara["srcType"] =_typeMap[_type] for key in seatStatus[_type]: cfgPara[key] = seatStatus[_type][key] dev = devdb.getDeviceByImei(imei,format="string") company = linedb.getCompanyByImei(imei) cfgPara["name"] =dev["name"] cfgPara["dev"] =dev cfgPara["company_id"] =company["id"] cfgPara["heartbeat_at"]=dev["heardbeat_at"] cfgPara["openid"] =openid #修正统计座位数 seat_num = 0 for seat in dev["seat_template"].split(";"): if seat.split(",")[0]!="": seat_num+=1 cfgPara["seat_num"] = seat_num cfgPara["sum"]["空座"] = seat_num -cfgPara["sum"]["有人"] cfgPara["openid"] =openid if web.ctx.method=='POST': ret =uTools.formatPostMsg(cfgPara) else: if dev["seat_template"]==None or dev["seat_template"]=="": ret = web.seeother('/device?act=bus-config&imei={0}&openid={1}'.format(imei,openid)) else: jdksign = objWeixin.get_jdk_sign(self.env["url"]) sharePara=tradeObj.genPreSharePara("share-view",openid,cfgPara["dev"]['imei']) sharePara["seat_template"] = self.seat_template(dev["seat_template"]) sharePara["blank_color"]="#C0C0C0" sharePara["manager"] = linedb.getManageEmployee(openid) sharePara["company_id"] =company["id"] cfgPara = json.dumps(cfgPara,ensure_ascii=False) if roleType=="operator": ret = self.render.seat_status_auto(cfgPara,jdksign,sharePara) elif roleType=="operator-history": ret = self.render.seat_status_his(cfgPara,jdksign,sharePara) else: if dev["seat_type"]=="bed": ret = self.render.bed_status_auto(cfgPara,jdksign,sharePara) elif dev["seat_type"]=="midbus": ret = self.render.seat_midbus_status_auto(cfgPara,jdksign,sharePara) elif dev["seat_type"]=="seat53": if imei=='681501000179443': print("sharePara----sharePara") print(sharePara) ret = self.render.seat53_status_auto(cfgPara,jdksign,sharePara) elif dev["seat_type"]=="seat39": ret = self.render.seat39_status_auto(cfgPara,jdksign,sharePara) else: ret = web.seeother('/device?act=bus-config&imei={0}&openid={1}'.format(imei,openid)) return ret