changes 保健业打分模型
This commit is contained in:
parent
46136727d0
commit
35edbc900d
|
@ -276,32 +276,29 @@ def func(schemas: ComputeSchemas.ComputeModelReqBody, mongodb: MongoHelper = Dep
|
|||
# 指标权重
|
||||
weight = index.get('权重')
|
||||
# 指标数值分为四种:常规数值型、直接进在区间内进行计算,部分区间可能缺失;财务指标数值型,经过计算的财务指标数值直接在区间进行计算;字符串型,直接与档位匹配,布尔型:是与否,一档与八档
|
||||
if isinstance(value, str):
|
||||
# 遍历档位
|
||||
for key, val in index.items():
|
||||
if value == val:
|
||||
index_dict['得分'] = score_func(key, weight)
|
||||
index_dict['档位'] = score_level(key)
|
||||
index_score.append(index_dict)
|
||||
test_list.append(index_name)
|
||||
print(index_name)
|
||||
elif isinstance(value, float) or isinstance(value, int):
|
||||
# 提取档位
|
||||
key_list = ['一级指标', '二级指标', '三级指标', '四级指标', '权重', '单位', '计算公式']
|
||||
level_dict = dict()
|
||||
for key, val in index.items():
|
||||
if key not in key_list:
|
||||
level_dict[key] = val
|
||||
test_list.append(index_name)
|
||||
print(index_name)
|
||||
result = score_func_by_number(level_dict, value, weight)
|
||||
index_dict['得分'] = result.get('得分')
|
||||
index_dict['档位'] = result.get('档位')
|
||||
index_score.append(index_dict)
|
||||
|
||||
for da in data.keys():
|
||||
if da not in test_list:
|
||||
print(da)
|
||||
try:
|
||||
if isinstance(value, str):
|
||||
# 遍历档位
|
||||
for key, val in index.items():
|
||||
if value == val:
|
||||
index_dict['得分'] = score_func(key, weight)
|
||||
index_dict['档位'] = score_level(key)
|
||||
index_score.append(index_dict)
|
||||
test_list.append(index_name)
|
||||
elif isinstance(value, float) or isinstance(value, int):
|
||||
# 提取档位
|
||||
key_list = ['一级指标', '二级指标', '三级指标', '四级指标', '权重', '单位', '计算公式']
|
||||
level_dict = dict()
|
||||
for key, val in index.items():
|
||||
if key not in key_list:
|
||||
level_dict[key] = val
|
||||
test_list.append(index_name)
|
||||
result = score_func_by_number(level_dict, value, weight)
|
||||
index_dict['得分'] = result.get('得分')
|
||||
index_dict['档位'] = result.get('档位')
|
||||
index_score.append(index_dict)
|
||||
except TypeError:
|
||||
raise HTTPException(status_code=400, detail="{}指标值不符合规范".format(index_name))
|
||||
|
||||
# 汇总得分
|
||||
total_score = round(sum(item.get('得分') for item in index_score), 2)
|
||||
|
|
Loading…
Reference in New Issue