api-datamanager/Modules/Filters/FiltersObj.py

119 lines
3.7 KiB
Python
Raw Normal View History

2022-07-19 15:12:44 +08:00
from Utils.ObjUtil import SpecObject
from Utils.ValidateUtil import ValidateAttr, Validate
class FiltersObj(SpecObject):
"""筛选器"""
class FilterRange(SpecObject):
"""筛选范围"""
class DataBase(SpecObject):
"""数据库"""
class DataSheet(SpecObject):
"""数据表"""
class DataField(SpecObject):
"""字段"""
sub_field = ValidateAttr(field="sub_field", type=[str, dict])
fields_map = {
"sub_field": "子字段"
}
data_field = ValidateAttr(field="data_field", type=DataField)
fields_map = {
"data_field": "字段"
}
data_sheet = ValidateAttr(field="data_sheet", type=DataSheet)
fields_map = {
"data_sheet": "数据表"
}
data_base = ValidateAttr(field="data_base", type=DataBase)
fields_map = {
"data_base": "数据库"
}
class SearchCase(SpecObject):
"""筛选条件"""
class ByCid(SpecObject):
"""企业ID筛选"""
cid = ValidateAttr(field='cid', type=str)
fields_map = {
"cid": "企业ID"
}
class ByReportDate(SpecObject):
"""报告期筛选"""
report_date = ValidateAttr(field='report_date', func=Validate.date_format)
fields_map = {
"cid": "报告期"
}
by_cid = ValidateAttr(field="by_cid", str=ByCid)
by_report_date = ValidateAttr(field="by_report_date", str=ByReportDate)
by_diy_case = ValidateAttr(field="by_diy_case", str=dict)
fields_map = {
"by_cid": "企业ID筛选",
"by_report_date": "报告期筛选",
"by_diy_case": "自定义筛选",
}
class SetValue(SpecObject):
"""筛选范围"""
class DisposeExcept(SpecObject):
"""处理异常值"""
class NumericType(SpecObject):
"""数值型"""
value = ValidateAttr(field='value', type=[float, int])
bit = ValidateAttr(field='bit', type=int)
fields_map = {
"value": "",
"bit": "保留位数"
}
null_type = ValidateAttr(field='null_type', type=None)
numeric_type = ValidateAttr(field='numeric_type', type=NumericType)
text_type = ValidateAttr(field='text_type', type=str)
fields_map = {
"null_type": "空值",
"numeric_type": "数值型",
"text_type": "文本型"
}
case_none_str = ValidateAttr(field="case_none_str", type=DisposeExcept)
case_none = ValidateAttr(field="case_none", type=DisposeExcept)
case_no_key = ValidateAttr(field="case_no_key", type=DisposeExcept)
fields_map = {
"case_none_str": "处理空字符串",
"case_none": "处理空值",
"case_no_key": "处理不存在"
}
filter_id = ValidateAttr(field="filter_id", type=str)
filter_name = ValidateAttr(field="filter_name", type=str)
filter_range = ValidateAttr(field="filter_range", type=dict)
search_case = ValidateAttr(field="search_case", type=SearchCase)
set_value = ValidateAttr(field="set_value", type=SetValue)
fields_map = {
"filter_id": "筛选器ID",
"filter_name": "筛选器名称",
"filter_range": "筛选范围",
"search_case": "筛选条件",
"set_value": "取值设置"
}