|
@@ -169,6 +169,8 @@ class EquipmentInfoService:
|
|
|
if event_type:
|
|
|
# 多类型查询
|
|
|
eventTypeList = cls.get_comb_event_type(event_type)
|
|
|
+ eventTypeList += cls.get_combo_type_bins(event_type)
|
|
|
+ eventTypeList = list(set(eventTypeList))
|
|
|
qs = qs.filter(event_type__in=eventTypeList)
|
|
|
if start_time and end_time:
|
|
|
qs = qs.filter(event_time__range=(start_time, end_time))
|
|
@@ -380,3 +382,32 @@ class EquipmentInfoService:
|
|
|
num //= 2
|
|
|
result = str(ret) + result
|
|
|
return result
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def get_combo_type_bins(event_type):
|
|
|
+ """
|
|
|
+ 获取组合类型二进制列表
|
|
|
+ @param event_type: 标签类型
|
|
|
+ @return:
|
|
|
+ """
|
|
|
+ res_list = []
|
|
|
+ try:
|
|
|
+ if ',' in event_type:
|
|
|
+ res_list = event_type.split(',')
|
|
|
+ res_list = [int(i.strip()) for i in res_list]
|
|
|
+ else:
|
|
|
+ res_list = [int(event_type)]
|
|
|
+ combo_types = [51, 57, 58, 60]
|
|
|
+ for e_item in res_list:
|
|
|
+ bins = EquipmentInfoService.combo_type_all()
|
|
|
+ if e_item in combo_types:
|
|
|
+ event_label = combo_types.index(e_item) + 1
|
|
|
+ for item in bins:
|
|
|
+ val = str(item)
|
|
|
+ val_len = len(val)
|
|
|
+ if val_len >= event_label and int(val[val_len - event_label]) == 1:
|
|
|
+ res_list.append(int(item))
|
|
|
+ return res_list
|
|
|
+ except Exception as e:
|
|
|
+ print('推送错误异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+ return res_list
|