119 lines
3.7 KiB
Python
119 lines
3.7 KiB
Python
|
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": "取值设置"
|
||
|
}
|