tfse-model-api-v0.2/Rating/scripts/operating_score/Manufacturing.py

539 lines
10 KiB
Python
Raw Permalink Normal View History

2021-12-07 15:28:49 +08:00
def calculation_01(param):
"""
A得1分B不得分
2021-12-07 15:28:49 +08:00
"""
if param == 'A':
score = 1
else:
score = 0
return score
def calculation_02(param):
"""
填写2项及以上得1分1项得0.5填无不得分
2021-12-07 15:28:49 +08:00
"""
num = len(param)
if num >= 2:
2021-12-07 15:28:49 +08:00
score = 1
elif num == 1:
2021-12-07 15:28:49 +08:00
score = 0.5
else:
score = 0
return score
def calculation_03(param):
"""
平均单位产值电力消耗同比下降3%以上得1分下降2%~3%得0.75
下降1%~2%得0.5下降0%~1%得0.250及以下不得分
2021-12-07 15:28:49 +08:00
"""
param = float(param)
if param > 3:
2021-12-07 15:28:49 +08:00
score = 1
elif param > 2:
score = 0.75
elif param > 1:
2021-12-07 15:28:49 +08:00
score = 0.5
elif param > 0:
2021-12-07 15:28:49 +08:00
score = 0.25
else:
score = 0
return score
def calculation_04(param):
"""
平均每吨水产值同比增长3%以上得1分2%~3%得0.75
1%~2%得0. 50%~1%得0.2 50及以下不得分
2021-12-07 15:28:49 +08:00
"""
param = float(param)
if param > 3:
2021-12-07 15:28:49 +08:00
score = 1
elif param > 2:
2021-12-07 15:28:49 +08:00
score = 0.75
elif param > 1:
2021-12-07 15:28:49 +08:00
score = 0.5
elif param > 0:
score = 0.25
else:
score = 0
return score
def calculation_05(param):
"""
平均单位产值碳排放配额自愿减排量CCER和自愿节能量消耗同比下降3%以上或金额为0得1分
下降2%~3%得0.75下降1%~2%得0.5下降0%~1%得0.250及以下不得分
2021-12-07 15:28:49 +08:00
"""
param = float(param)
if param > 3:
2021-12-07 15:28:49 +08:00
score = 1
elif param > 2:
2021-12-07 15:28:49 +08:00
score = 0.75
elif param > 1:
2021-12-07 15:28:49 +08:00
score = 0.5
elif param > 0:
score = 0.25
else:
score = 0
return score
def calculation_06(param):
"""
2021年每平方米办公用地年产值同比上升10%以上得1分
5%~10%得0.752%~5%得0.50%~2%得0.250%和同比下降不得分
2021-12-07 15:28:49 +08:00
"""
param = float(param)
if param > 10:
2021-12-07 15:28:49 +08:00
score = 1
elif param > 5:
2021-12-07 15:28:49 +08:00
score = 0.75
elif param > 2:
2021-12-07 15:28:49 +08:00
score = 0.5
elif param > 0:
score = 0.25
else:
score = 0
return score
def calculation_07(param):
"""
A得1分B得0.75C得0.5D不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.75
elif param == 'C':
score = 0.5
else:
score = 0
return score
def calculation_08(param):
"""
D得1分C得0.5B得0.25A不得分
2021-12-07 15:28:49 +08:00
"""
if param == 'D':
2021-12-07 15:28:49 +08:00
score = 1
elif param == 'C':
score = 0.5
elif param == 'B':
score = 0.25
2021-12-07 15:28:49 +08:00
else:
score = 0
return score
def calculation_09(param):
"""
C得1分B得0.5A不得分
"""
if param == 'C':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_10(param):
2021-12-07 15:28:49 +08:00
"""
A得1分B得0.75C得0.5D不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.75
elif param == 'C':
score = 0.5
else:
score = 0
return score
def calculation_11(param):
2021-12-07 15:28:49 +08:00
"""
A得1分B不得分
2021-12-07 15:28:49 +08:00
"""
if param == 'A':
2021-12-07 15:28:49 +08:00
score = 1
else:
score = 0
return score
def calculation_12(param):
"""
A得1分B不得分
"""
if param == 'A':
score = 1
else:
score = 0
return score
def calculation_13(param):
2021-12-07 15:28:49 +08:00
"""
E得1分D得0.75C得0.5B得0.25A不得分
"""
if param == 'E':
score = 1
elif param == 'D':
score = 0.75
elif param == 'C':
score = 0.5
elif param == 'B':
score = 0.25
else:
score = 0
return score
def calculation_14(param):
2021-12-07 15:28:49 +08:00
"""
小于3%得1分否则不得分
2021-12-07 15:28:49 +08:00
"""
param = float(param)
if param < 3:
score = 1
else:
score = 0
return score
def calculation_15(param):
2021-12-07 15:28:49 +08:00
"""
A得1分B得0.5C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_16(param):
2021-12-07 15:28:49 +08:00
"""
A得1分B得0.5C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_17(param):
2021-12-07 15:28:49 +08:00
"""
A得1分B得0. 5C不得分
2021-12-07 15:28:49 +08:00
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_18(param):
"""
A得0.25B得0.5C得0.75D得1分E不得
"""
if param == 'A':
2021-12-07 15:28:49 +08:00
score = 0.25
elif param == 'B':
score = 0.5
elif param == 'C':
score = 0.75
elif param == 'D':
score = 1
2021-12-07 15:28:49 +08:00
else:
score = 0
return score
def calculation_19(param):
2021-12-07 15:28:49 +08:00
"""
B得1分A不得分
"""
if param == 'B':
score = 1
else:
score = 0
return score
def calculation_20(param):
2021-12-07 15:28:49 +08:00
"""
捐赠金额大于1000万元得1分500~1000万元得0.75100~500万元得0.5
0~100万元得0.25否则不得分
2021-12-07 15:28:49 +08:00
"""
param = float(param)
if param > 1000:
score = 1
elif param > 500:
score = 0.75
elif param > 100:
score = 0.5
elif param > 0:
score = 0.25
else:
score = 0
return score
def calculation_21(param):
2021-12-07 15:28:49 +08:00
"""
A~E选择2项及以上得1分选择1项得0.5选F项不得分选G得1分
"""
2021-12-15 09:56:29 +08:00
if 'F' in param:
2021-12-07 15:28:49 +08:00
score = 0
2021-12-15 09:56:29 +08:00
elif 'G' in param:
2021-12-07 15:28:49 +08:00
score = 1
2021-12-15 09:56:29 +08:00
elif len(param) >= 2:
2021-12-07 15:28:49 +08:00
score = 1
else:
score = 0.5
return score
def calculation_22(param):
2021-12-07 15:28:49 +08:00
"""
A得1分B得0.5C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_23(param):
2021-12-07 15:28:49 +08:00
"""
A得1分B得0.5C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_24(param):
2021-12-07 15:28:49 +08:00
"""
A得1分B得0.5C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_25(param):
2021-12-07 15:28:49 +08:00
"""
A得1分B得0.75C得0.5D得0.25E不得分
2021-12-07 15:28:49 +08:00
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
elif param == 'C':
score = 0.25
else:
score = 0
return score
def calculation_26(param):
2021-12-07 15:28:49 +08:00
"""
A得1分B得0.75C得0.5D得0.25E不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.75
elif param == 'C':
score = 0.5
elif param == 'D':
score = 0.25
else:
score = 0
return score
def calculation_27(param):
"""
增长10%及以上得1分同比增长5%~10%得0.75
同比增长2%~5%得0.5同比增长1%~2%得0.25不增长或负增长不得分
2021-12-07 15:28:49 +08:00
"""
param = float(param)
if param > 10:
2021-12-07 15:28:49 +08:00
score = 1
elif param > 5:
score = 0.75
elif param > 2:
2021-12-07 15:28:49 +08:00
score = 0.5
elif param > 1:
2021-12-07 15:28:49 +08:00
score = 0.25
else:
score = 0
return score
def calculation_28(param):
"""
B得1分A不得分
"""
if param == 'B':
score = 1
else:
score = 0
return score
def calculation_29(param):
"""
B得1分A不得分
"""
if param == 'B':
score = 1
else:
score = 0
return score
def calculation_30(param):
"""
B得1分A不得分
"""
if param == 'B':
score = 1
else:
score = 0
return score
def ea(param):
"""
环境评价得分
"""
fraction = list()
fraction.append(calculation_01(param[0]))
fraction.append(calculation_02(param[1]))
fraction.append(calculation_03(param[2]))
fraction.append(calculation_04(param[3]))
fraction.append(calculation_05(param[4]))
fraction.append(calculation_06(param[5]))
fraction.append(calculation_07(param[6]))
fraction.append(calculation_08(param[7]))
fraction.append(calculation_09(param[8]))
fraction.append(calculation_10(param[9]))
2021-12-29 15:51:11 +08:00
fraction.append(calculation_11(param[10]))
2021-12-07 15:28:49 +08:00
value = sum(fraction)
return value
def sre(param):
"""
社会责任评价得分
"""
fraction = list()
2021-12-29 15:51:11 +08:00
fraction.append(calculation_12(param[0]))
fraction.append(calculation_13(param[1]))
fraction.append(calculation_14(param[2]))
fraction.append(calculation_15(param[3]))
fraction.append(calculation_16(param[4]))
fraction.append(calculation_17(param[5]))
fraction.append(calculation_18(param[6]))
fraction.append(calculation_19(param[7]))
fraction.append(calculation_20(param[8]))
fraction.append(calculation_21(param[9]))
2021-12-07 15:28:49 +08:00
value = sum(fraction)
return value
def cge(param):
"""
公司治理评价得分
"""
fraction = list()
2021-12-29 15:51:11 +08:00
fraction.append(calculation_22(param[0]))
fraction.append(calculation_23(param[1]))
fraction.append(calculation_24(param[2]))
fraction.append(calculation_25(param[3]))
fraction.append(calculation_26(param[4]))
fraction.append(calculation_27(param[5]))
fraction.append(calculation_28(param[6]))
fraction.append(calculation_29(param[7]))
fraction.append(calculation_30(param[8]))
2021-12-07 15:28:49 +08:00
value = sum(fraction)
return value
def manufacturing(questionnaire):
"""
计算经营要素得分
Parameters
questionnaire dict 经营问卷
Returns
score float 得分
"""
score = dict()
2021-12-29 15:51:11 +08:00
score['环境'] = ea(questionnaire[0:11])
score['社会责任'] = sre(questionnaire[11:21])
score['公司治理'] = cge(questionnaire[21:])
score['合计'] = sum(score.values())
return score