Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 4
0
    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
Esempio n. 5
0
    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
Esempio n. 6
0
 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
Esempio n. 7
0
 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