|
@@ -223,9 +223,9 @@ class info_path(Load):
|
|
|
,height = '300'
|
|
|
,add = False
|
|
|
|
|
|
- ,search = (('farm_id-select-','type_id-select-', 'gateway_id-select-', 'hardware_type-select-'), (u'选择农场',u'设备名称',u'设备类型',u'网关',u'硬件类型'))
|
|
|
- ,thead = (u'所属农场', u'设备名称', u'设备id', u'连接状态', u'数值', u'设备类型', u'网关',u'硬件类型')
|
|
|
- ,tbody = ('farm','name', 'hardware_id', 'status', 'show_num', 'type', 'gateway', 'hardware_type')
|
|
|
+ ,search = (('farm_id-select-','type_id-select-', 'gateway_id-select-', 'hardware_type-select-'), (u'选择农场',u'设备类型',u'网关',u'硬件类型'))
|
|
|
+ ,thead = (u'所属农场', u'设备名称', u'设备id', u'连接状态', u'值', u'设备类型', u'网关',u'硬件类型')
|
|
|
+ ,tbody = ('farm','name', 'hardware_id', 'status', 'show', 'type', 'gateway', 'hardware_type')
|
|
|
,state = False
|
|
|
)
|
|
|
self.data['common']['search_farm_id-select-'] = Demeter.config['setting']['farmList']
|
|
@@ -238,20 +238,26 @@ class info_path(Load):
|
|
|
for key, value in enumerate(self.data['list']):
|
|
|
farm = self.service('common').one('farm', id=value['farm_id'])
|
|
|
self.data['list'][key]['farm'] = farm['name']
|
|
|
- info = self.service('common').one('device_type', id=value['type_id'])
|
|
|
- self.data['list'][key]['type'] = info['name']
|
|
|
+ self.data['list'][key]['type'] = '无'
|
|
|
+ if value['type_id']:
|
|
|
+ info = self.service('common').one('device_type', id=value['type_id'])
|
|
|
+ if info:
|
|
|
+ self.data['list'][key]['type'] = info['name']
|
|
|
info = self.service('common').one('device_gateway', id=value['gateway_id'])
|
|
|
self.data['list'][key]['gateway'] = info['name']
|
|
|
if value['status']:
|
|
|
self.data['list'][key]['status'] = '连接'
|
|
|
else:
|
|
|
self.data['list'][key]['status'] = '断开'
|
|
|
-
|
|
|
- if value['show_num']:
|
|
|
+ if value['num'] and value['show']:
|
|
|
+ value['show'] = str(value['show'])
|
|
|
|
|
|
- self.data['list'][key]['show_num'] = '<a href="/device/stat?id='+value['id']+'">' + value['show_num'] + '</a><br />更新时间:' + Demeter.date(value['cdate'])
|
|
|
+ self.data['list'][key]['show'] = '<a href="/device/stat?id='+value['id']+'&search_date-select-=1&method=list">'+value['show'] + '</a><br />更新时间:' + Demeter.date(value['cdate']) + '<br /><a href="/device/stat?id='+value['id']+'&search_date-select-=1&method=avg">[平均值统计]</a> <a href="/device/stat?id='+value['id']+'&search_date-select-=1&method=maxmin">[高低值统计]</a>'
|
|
|
+ elif value['show']:
|
|
|
+ self.data['list'][key]['show'] = '<a href="/device/pic?id='+value['id']+'"><img src="'+value['show']+'" width="200px"/></a><br />更新时间:' + Demeter.date(value['cdate'])
|
|
|
else:
|
|
|
- self.data['list'][key]['show_num'] = '0'
|
|
|
+ self.data['list'][key]['show'] = ''
|
|
|
+
|
|
|
hardware_type = self.service('common').one('hardware_type', id=value['hardware_type'])
|
|
|
self.data['list'][key]['hardware_type'] = hardware_type['name']
|
|
|
|
|
@@ -278,41 +284,57 @@ class info_update_path(Load):
|
|
|
def delete(self):
|
|
|
self.commonDelete('device_info')
|
|
|
|
|
|
-class stat_path(Load):
|
|
|
+class pic_path(Load):
|
|
|
@Web.auth
|
|
|
def get(self):
|
|
|
self.common(
|
|
|
- name = u'设备统计'
|
|
|
- ,path = 'stat'
|
|
|
+ name = u'摄像头图片'
|
|
|
+ ,path = 'pic'
|
|
|
,width = '600'
|
|
|
,height = '300'
|
|
|
- ,add = False
|
|
|
- ,edit = False
|
|
|
- ,search = (('label-1','cdate-time-start','cdate-time-end', 'date-select-'), (u'日期范围',u'开始时间',u'截止时间',u'周期选择'))
|
|
|
+
|
|
|
+
|
|
|
+ ,search = (('label-1','cdate-time-start','cdate-time-end'), (u'日期范围',u'开始时间',u'截止时间'))
|
|
|
+ ,thead = (u'图片地址', u'更新时间')
|
|
|
+ ,tbody = ('pic', 'cdate')
|
|
|
,state = False
|
|
|
)
|
|
|
- self.data['common']['search_date-select-'] = [{'id':'1d', 'name':'一天'},{'id':'7d', 'name':'一周'},{'id':'1m', 'name':'一个月'},{'id':'6m', 'name':'半年'}]
|
|
|
+
|
|
|
+ self.commonList('device_pic')
|
|
|
+ if self.data['list']:
|
|
|
+ for key, value in enumerate(self.data['list']):
|
|
|
+ self.data['list'][key]['pic'] = '<img src="'+value['pic']+'" width="200px" />'
|
|
|
+ self.commonView('list')
|
|
|
+
|
|
|
+class stat_path(Load):
|
|
|
+ @Web.auth
|
|
|
+ def get(self):
|
|
|
+ method = self.input('method', 'avg')
|
|
|
id = self.input('id')
|
|
|
+ self.common(
|
|
|
+ name = u'设备统计'
|
|
|
+ ,path = 'stat'
|
|
|
+ ,search = (('label-1','cdate-time-start','cdate-time-end', 'date-select-'), (u'日期范围',u'开始时间',u'截止时间',u'周期选择'))
|
|
|
+ )
|
|
|
data = self.service('common').one('device_info', id=id)
|
|
|
- model = Demeter.model('data', 'tsdb')
|
|
|
- search = []
|
|
|
- if 'date-select-' in self.data['search'] and self.data['search']['date-select-']:
|
|
|
- value = self.data['search']['date-select-']
|
|
|
- if value == '1d':
|
|
|
- search.append('group by time(30m) where time > now() – 1d')
|
|
|
- elif value == '7d':
|
|
|
- search.append('group by time(300m) where time > now() – 7d')
|
|
|
- elif value == '1m':
|
|
|
- search.append('group by time(1d) where time > now() – 1m')
|
|
|
- elif value == '6m':
|
|
|
- search.append('group by time(10d) where time > now() – 6m')
|
|
|
- search = "".join(search)
|
|
|
- self.data['list'] = model.get(data['farm_id'], data['hardware_id'], search=search)
|
|
|
-
|
|
|
- if self.data['list']:
|
|
|
- self.data['category'] = json.dumps(self.data['list'][0])
|
|
|
- self.data['value'] = json.dumps(self.data['list'][1])
|
|
|
+ typeInfo = self.service('common').one('device_type', id=data['type_id'])
|
|
|
+ farm = self.service('common').one('farm', id=data['farm_id'])
|
|
|
self.data['info'] = data
|
|
|
+ self.data['type'] = typeInfo
|
|
|
+ self.data['farm'] = farm
|
|
|
+ self.data['method'] = method
|
|
|
+
|
|
|
+ model = Demeter.model('data', 'tsdb')
|
|
|
+ self.data['common']['search_date-select-'] = model.dateConfig()
|
|
|
+ search = {}
|
|
|
+ if 'cdate-time-start' in self.data['search']:
|
|
|
+ search['start'] = self.data['search']['cdate-time-start']
|
|
|
+ if 'cdate-time-end' in self.data['search']:
|
|
|
+ search['end'] = self.data['search']['cdate-time-end']
|
|
|
+ if 'date-select-' in self.data['search']:
|
|
|
+ search['group'] = self.data['search']['date-select-']
|
|
|
+ self.data['list'] = model.getData(method, search, data)
|
|
|
+
|
|
|
self.commonView('stat')
|
|
|
|
|
|
|