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

539 lines
10 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

def calculation_01(param):
"""
A得1分B不得分
"""
if param == 'A':
score = 1
else:
score = 0
return score
def calculation_02(param):
"""
填写2项及以上得1分1项得0.5分,填无不得分
"""
num = len(param)
if num >= 2:
score = 1
elif num == 1:
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.25分0及以下不得分
"""
param = float(param)
if param > 3:
score = 1
elif param > 2:
score = 0.75
elif param > 1:
score = 0.5
elif param > 0:
score = 0.25
else:
score = 0
return score
def calculation_04(param):
"""
平均每吨水产值同比增长3%以上得1分2%~3%得0.75分,
1%~2%得0. 5分0%~1%得0.2 5分0及以下不得分
"""
param = float(param)
if param > 3:
score = 1
elif param > 2:
score = 0.75
elif param > 1:
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.25分0及以下不得分
"""
param = float(param)
if param > 3:
score = 1
elif param > 2:
score = 0.75
elif param > 1:
score = 0.5
elif param > 0:
score = 0.25
else:
score = 0
return score
def calculation_06(param):
"""
2021年每平方米办公用地年产值同比上升10%以上得1分
5%~10%得0.75分2%~5%得0.5分0%~2%得0.25分0%和同比下降不得分
"""
param = float(param)
if param > 10:
score = 1
elif param > 5:
score = 0.75
elif param > 2:
score = 0.5
elif param > 0:
score = 0.25
else:
score = 0
return score
def calculation_07(param):
"""
A得1分B得0.75分C得0.5分D不得分
"""
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.5分B得0.25分A不得分
"""
if param == 'D':
score = 1
elif param == 'C':
score = 0.5
elif param == 'B':
score = 0.25
else:
score = 0
return score
def calculation_09(param):
"""
C得1分B得0.5分A不得分
"""
if param == 'C':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_10(param):
"""
A得1分B得0.75分C得0.5分D不得分
"""
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):
"""
A得1分B不得分
"""
if param == 'A':
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):
"""
E得1分D得0.75分C得0.5分B得0.25分A不得分
"""
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):
"""
小于3%得1分否则不得分
"""
param = float(param)
if param < 3:
score = 1
else:
score = 0
return score
def calculation_15(param):
"""
A得1分B得0.5分C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_16(param):
"""
A得1分B得0.5分C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_17(param):
"""
A得1分B得0. 5分C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_18(param):
"""
A得0.25分B得0.5分C得0.75分D得1分E不得
"""
if param == 'A':
score = 0.25
elif param == 'B':
score = 0.5
elif param == 'C':
score = 0.75
elif param == 'D':
score = 1
else:
score = 0
return score
def calculation_19(param):
"""
B得1分A不得分
"""
if param == 'B':
score = 1
else:
score = 0
return score
def calculation_20(param):
"""
捐赠金额大于1000万元得1分500~1000万元得0.75分100~500万元得0.5分,
0~100万元得0.25分,否则不得分
"""
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):
"""
A~E选择2项及以上得1分选择1项得0.5分选F项不得分选G得1分
"""
if 'F' in param:
score = 0
elif 'G' in param:
score = 1
elif len(param) >= 2:
score = 1
else:
score = 0.5
return score
def calculation_22(param):
"""
A得1分B得0.5分C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_23(param):
"""
A得1分B得0.5分C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_24(param):
"""
A得1分B得0.5分C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_25(param):
"""
A得1分B得0.75分C得0.5分D得0.25分E不得分
"""
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):
"""
A得1分B得0.75分C得0.5分D得0.25分E不得分
"""
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分,不增长或负增长不得分
"""
param = float(param)
if param > 10:
score = 1
elif param > 5:
score = 0.75
elif param > 2:
score = 0.5
elif param > 1:
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]))
fraction.append(calculation_11(param[10]))
value = sum(fraction)
return value
def sre(param):
"""
社会责任评价得分
"""
fraction = list()
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]))
value = sum(fraction)
return value
def cge(param):
"""
公司治理评价得分
"""
fraction = list()
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]))
value = sum(fraction)
return value
def manufacturing(questionnaire):
"""
计算经营要素得分
Parameters
questionnaire dict 经营问卷
Returns
score float 得分
"""
score = dict()
score['环境'] = ea(questionnaire[0:11])
score['社会责任'] = sre(questionnaire[11:21])
score['公司治理'] = cge(questionnaire[21:])
score['合计'] = sum(score.values())
return score