2022-07-05 10:46:00 +08:00
|
|
|
from Utils.ObjUtil import SpecObject
|
|
|
|
from Utils.ValidateUtil import ValidateAttr, Validate
|
|
|
|
|
|
|
|
|
|
|
|
class ScoreModelObj(SpecObject):
|
|
|
|
"""打分模型"""
|
|
|
|
|
|
|
|
class LevelSetting(SpecObject):
|
|
|
|
"""级别设置"""
|
|
|
|
level = ValidateAttr(field='level', type=str)
|
|
|
|
score = ValidateAttr(field='score', type=[int, float])
|
|
|
|
position = ValidateAttr(field='position', type=[int, float])
|
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"level": "级别",
|
|
|
|
"score": "得分",
|
|
|
|
"position": "分位"
|
|
|
|
}
|
|
|
|
|
|
|
|
class Dimension(SpecObject):
|
|
|
|
"""维度"""
|
|
|
|
|
|
|
|
class FirstIndex(SpecObject):
|
|
|
|
"""一级指标"""
|
|
|
|
|
|
|
|
class SecondaryIndex(SpecObject):
|
|
|
|
"""二级指标"""
|
|
|
|
|
|
|
|
class ScoreSetting(SpecObject):
|
|
|
|
"""打分设置"""
|
|
|
|
pattern = ValidateAttr(field="pattern", type=str)
|
|
|
|
interval = ValidateAttr(field="interval", type=list)
|
|
|
|
score_position = ValidateAttr(field="score_position", type=list)
|
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"pattern": "模式",
|
|
|
|
"interval": "区间",
|
|
|
|
"score_position": "打分位"
|
|
|
|
}
|
|
|
|
|
|
|
|
class BindIndex(SpecObject):
|
|
|
|
"""打分指标"""
|
|
|
|
|
|
|
|
class BindSet(SpecObject):
|
|
|
|
"""绑定设置"""
|
|
|
|
|
|
|
|
class Params(SpecObject):
|
|
|
|
"""传入参数"""
|
|
|
|
|
|
|
|
class DataBind(SpecObject):
|
|
|
|
"""数据绑定"""
|
2022-07-07 15:28:39 +08:00
|
|
|
|
|
|
|
class FilterRange(SpecObject):
|
|
|
|
"""筛选范围"""
|
|
|
|
data_base = ValidateAttr(field="data_base", type=str)
|
|
|
|
data_sheet = ValidateAttr(field="data_sheet", type=str)
|
|
|
|
data_field = ValidateAttr(field="data_field", type=str)
|
2022-07-20 15:00:14 +08:00
|
|
|
data_sub_field = ValidateAttr(field="data_sub_field", type=str)
|
2022-07-07 15:28:39 +08:00
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"data_base": "数据库",
|
|
|
|
"data_sheet": "数据表",
|
2022-07-20 15:00:14 +08:00
|
|
|
"data_field": "字段",
|
|
|
|
"data_sub_field": "子字段"
|
2022-07-07 15:28:39 +08:00
|
|
|
}
|
|
|
|
|
2022-07-20 15:00:14 +08:00
|
|
|
class SearchCase(SpecObject):
|
2022-07-07 15:28:39 +08:00
|
|
|
"""筛选条件"""
|
2022-07-20 15:00:14 +08:00
|
|
|
|
|
|
|
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 = {
|
2022-07-20 16:11:31 +08:00
|
|
|
"report_date": "报告期"
|
2022-07-20 15:00:14 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
by_cid = ValidateAttr(field="by_cid", str=ByCid)
|
2022-07-20 16:11:31 +08:00
|
|
|
by_report_date = ValidateAttr(field="by_report_date", type=ByReportDate)
|
2022-07-20 15:00:14 +08:00
|
|
|
by_diy_case = ValidateAttr(field="by_diy_case", str=dict)
|
2022-07-07 15:28:39 +08:00
|
|
|
|
|
|
|
fields_map = {
|
2022-07-20 15:00:14 +08:00
|
|
|
"by_cid": "企业ID筛选",
|
|
|
|
"by_report_date": "报告期筛选",
|
|
|
|
"by_diy_case": "自定义筛选",
|
2022-07-07 15:28:39 +08:00
|
|
|
}
|
|
|
|
|
2022-07-20 15:00:14 +08:00
|
|
|
class SetValue(SpecObject):
|
|
|
|
"""筛选范围"""
|
|
|
|
|
2022-07-07 15:28:39 +08:00
|
|
|
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": "文本型"
|
|
|
|
}
|
|
|
|
|
2022-07-20 15:00:14 +08:00
|
|
|
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)
|
2022-07-07 15:28:39 +08:00
|
|
|
|
|
|
|
fields_map = {
|
2022-07-20 15:00:14 +08:00
|
|
|
"case_none_str": "处理空字符串",
|
|
|
|
"case_none": "处理空值",
|
|
|
|
"case_no_key": "处理不存在"
|
2022-07-07 15:28:39 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
filter_range = ValidateAttr(field='filter_range', type=FilterRange)
|
2022-07-20 15:00:14 +08:00
|
|
|
search_case = ValidateAttr(field='search_case', type=SearchCase)
|
|
|
|
set_value = ValidateAttr(field='set_value', type=SetValue)
|
2022-07-05 10:46:00 +08:00
|
|
|
|
|
|
|
fields_map = {
|
2022-07-07 15:28:39 +08:00
|
|
|
"filter_range": "筛选范围",
|
2022-07-20 15:00:14 +08:00
|
|
|
"search_case": "筛选条件",
|
|
|
|
"set_value": "取值设置"
|
2022-07-05 10:46:00 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
param = ValidateAttr(field="param", type=str)
|
|
|
|
describe = ValidateAttr(field="describe", type=str)
|
|
|
|
data_bind = ValidateAttr(field="data_bind", type=DataBind)
|
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"param": "参数",
|
|
|
|
"describe": "说明",
|
|
|
|
"data_bind": "数据绑定"
|
|
|
|
}
|
|
|
|
|
|
|
|
type = ValidateAttr(field='type', type=str)
|
|
|
|
name = ValidateAttr(field='name', type=str)
|
2022-07-07 15:28:39 +08:00
|
|
|
params = ValidateAttr(field='params', instance_list=Params)
|
2022-07-05 10:46:00 +08:00
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"type": "类型",
|
|
|
|
"name": "名称",
|
|
|
|
"params": "传入参数"
|
|
|
|
}
|
|
|
|
|
|
|
|
index_name = ValidateAttr(field="index_name", type=str)
|
|
|
|
bind_set = ValidateAttr(field="bind_set", type=BindSet)
|
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"index_name": "指标名称",
|
|
|
|
"bind_set": "绑定设置"
|
|
|
|
}
|
|
|
|
|
|
|
|
name = ValidateAttr(field="name", type=str)
|
|
|
|
bind_index = ValidateAttr(field="bind_index", type=BindIndex)
|
2022-07-20 15:00:14 +08:00
|
|
|
standard_score = ValidateAttr(field="standard_score", type=[int, float])
|
2022-07-05 10:46:00 +08:00
|
|
|
score_setting = ValidateAttr(field="score_setting", type=ScoreSetting)
|
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"name": "指标名称",
|
|
|
|
"bind_index": "构建指标",
|
|
|
|
"standard_score": "标准分",
|
|
|
|
"score_setting": "打分设置"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
name = ValidateAttr(field="name", type=str)
|
|
|
|
secondary_index = ValidateAttr(field="secondary_index", instance_list=SecondaryIndex)
|
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"name": "指标名称",
|
|
|
|
"secondary_index": "二级指标"
|
|
|
|
}
|
|
|
|
|
|
|
|
name = ValidateAttr(field="name", type=str)
|
|
|
|
first_index = ValidateAttr(field="first_index", instance_list=FirstIndex)
|
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"name": "维度名称",
|
|
|
|
"first_index": "一级指标"
|
|
|
|
}
|
|
|
|
|
2022-07-20 15:00:14 +08:00
|
|
|
class Tags(SpecObject):
|
|
|
|
"""标签"""
|
|
|
|
tag_name = ValidateAttr(field='tag_name', type=str)
|
|
|
|
tag_id = ValidateAttr(field='tag_id', type=str)
|
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"tag_name": "标签名称",
|
|
|
|
"tag_id": "标签ID"
|
|
|
|
}
|
|
|
|
|
2022-07-05 10:46:00 +08:00
|
|
|
model_id = ValidateAttr(field="model_id", type=str)
|
|
|
|
model_name = ValidateAttr(field="model_name", type=str)
|
|
|
|
level_setting = ValidateAttr(field="level_setting", instance_list=LevelSetting)
|
|
|
|
dimension = ValidateAttr(field="dimension", instance_list=Dimension)
|
|
|
|
author = ValidateAttr(field="author", type=str)
|
|
|
|
edit_date = ValidateAttr(field="edit_date", func=Validate.date_format)
|
2022-07-20 15:00:14 +08:00
|
|
|
tags = ValidateAttr(field="tags", instance_list=Tags)
|
2022-07-05 10:46:00 +08:00
|
|
|
status = ValidateAttr(field="status", type=str, in_list=['design', 'published'])
|
|
|
|
|
|
|
|
fields_map = {
|
|
|
|
"model_id": "模型ID",
|
|
|
|
"model_name": "模型名称",
|
|
|
|
"level_setting": "级别设置",
|
|
|
|
"dimension": "维度",
|
|
|
|
"author": "作者",
|
|
|
|
"date": "日期",
|
|
|
|
"tags": "标签",
|
|
|
|
"status": "状态"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
test = {
|
|
|
|
"企业名称": "远东资信评估有限公司",
|
|
|
|
"维度得分": [
|
|
|
|
{
|
|
|
|
"维度名称": "经营环境",
|
|
|
|
"一级指标": [
|
|
|
|
{
|
|
|
|
"指标名称": "区域经济环境",
|
|
|
|
"二级指标": [
|
|
|
|
{
|
|
|
|
"指标名称": "营业利润率",
|
|
|
|
"合计": 3
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"指标名称": "营业利润率",
|
|
|
|
"合计": 3
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"合计": 6
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"指标名称": "区域经济环境",
|
|
|
|
"二级指标": [
|
|
|
|
{
|
|
|
|
"指标名称": "营业利润率",
|
|
|
|
"合计": 3
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"指标名称": "营业利润率",
|
|
|
|
"合计": 3
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"合计": 6
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"合计": 10
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"合计": 100,
|
|
|
|
"级别": "AAA"
|
|
|
|
}
|