62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
from Modules.Filters.FiltersObj import FiltersObj
|
|
from Modules.Filters.FiltersUtils import FilterUtils
|
|
from DBHelper.MongoHelperInstance import DB_TEST
|
|
|
|
|
|
class FilterImpl(object):
|
|
|
|
@staticmethod
|
|
def new_filter(**kwargs):
|
|
data = kwargs['data']
|
|
|
|
filters = FiltersObj()
|
|
filters.filter_id = FilterUtils.make_new_cid()
|
|
filters.filter_name = data['filter_name']
|
|
filters.filter_range = data['filter_range']
|
|
|
|
search_case = filters.SearchCase()
|
|
if 'by_cid' in data['search_case']:
|
|
by_cid = search_case.ByCid()
|
|
by_cid.cid = data['search_case']['by_cid']['cid']
|
|
search_case.by_cid = by_cid
|
|
if 'by_report_date' in data['search_case']:
|
|
report_date = search_case.ByReportDate()
|
|
report_date.report_date = data['search_case']['by_report_date']['report_date']
|
|
search_case.by_report_date = report_date
|
|
if 'by_diy_case' in data['search_case']:
|
|
search_case.by_diy_case = data['search_case']['by_diy_case']
|
|
filters.search_case = search_case
|
|
|
|
set_value = filters.SetValue()
|
|
|
|
def dispose_setting(dispose_data):
|
|
"""处理异常值"""
|
|
dispose_obj = set_value.DisposeExcept()
|
|
if 'null_type' in dispose_data:
|
|
dispose_obj.null_type = None
|
|
elif 'numeric_type' in dispose_data:
|
|
numeric_type = dispose_obj.NumericType()
|
|
numeric_type.value = dispose_data['numeric_type']['value']
|
|
numeric_type.bit = dispose_data['numeric_type']['bit']
|
|
dispose_obj.numeric_type = numeric_type
|
|
else:
|
|
dispose_obj.text_type = dispose_data['text_type']
|
|
return dispose_obj
|
|
|
|
if 'case_none_str' in data['set_value']:
|
|
set_value.dispose_none_string = dispose_setting(data['set_value']['case_none_str'])
|
|
if 'case_none' in data['set_value']:
|
|
set_value.dispose_none_value = dispose_setting(data['set_value']['case_none'])
|
|
if 'case_no_key' in data['set_value']:
|
|
set_value.dispose_not_exist = dispose_setting(data['set_value']['case_no_key'])
|
|
filters.set_value = set_value
|
|
|
|
DB_TEST.upsert_single_data(
|
|
'模型数据',
|
|
'筛选器数据',
|
|
{'筛选器名称': data['filter_name']},
|
|
filters.fields_toggle()
|
|
)
|
|
|
|
return '新建成功'
|