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

539 lines
9.8 KiB
Python
Raw 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得0.5分C不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
else:
score = 0
return score
def calculation_02(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_03(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_04(param):
"""
2019年、2020年平均单位产值电力消耗同比增长18%以上得1分
13.5%~18%得0.75分8%~13.5%得0.5分0%~8%得0.25分0及以下不得分
"""
param = float(param)
if param > 18:
score = 1
elif param > 13.5:
score = 0.75
elif param > 8:
score = 0.5
elif param > 0:
score = 0.25
else:
score = 0
return score
def calculation_05(param):
"""
2019年、2020年平均每吨水产值同比增长15%以上得1分
10%~15%得0.75分5%~10%得0. 5分0%~5%得0.2 5分0及以下不得分
"""
param = float(param)
if param > 15:
score = 1
elif param > 10:
score = 0.75
elif param > 5:
score = 0.5
elif param > 0:
score = 0.25
else:
score = 0
return score
def calculation_06(param):
"""
2019年、2020年二氧化碳排放同比降低25%以上得1分
18%~25%得0.75分10%~18%得0.5分0%~10%得0.25分0%和同比增长不得分
"""
param = float(param)
if param > 25:
score = 1
elif param > 18:
score = 0.75
elif param > 10:
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):
"""
A得1分B不得分
"""
if param == 'A':
score = 1
else:
score = 0
return score
def calculation_09(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_10(param):
"""
B得1分A不得分
"""
if param == 'B':
score = 1
else:
score = 0
return score
def calculation_11(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_12(param):
"""
小于3%得1分否则不得分
"""
param = float(param)
if param < 3:
score = 1
else:
score = 0
return score
def calculation_13(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_14(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_15(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_16(param):
"""
B得1分A不得分
"""
if param == 'B':
score = 1
else:
score = 0
return score
def calculation_17(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_18(param):
"""
B得1分A不得分
"""
if param == 'B':
score = 1
else:
score = 0
return score
def calculation_19(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_20(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_21(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_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得0.25分D不得分
"""
if param == 'A':
score = 1
elif param == 'B':
score = 0.5
elif param == 'C':
score = 0.25
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.75
elif param == 'C':
score = 0.5
elif param == 'D':
score = 0.25
else:
score = 0
return score
def calculation_26(param):
"""
A得0.5分B得0.75分C得1分D不得分
"""
if param == 'A':
score = 0.5
elif param == 'B':
score = 0.75
elif param == 'C':
score = 1
else:
score = 0
return score
def calculation_27(param):
"""
捐赠金额大于1000万元得1分500~1000万元得0.75分,
100~500万元得0.5分0~100万元得0.25分,否则不得分
"""
param = float(param)
if param > 15:
score = 1
elif param > 10:
score = 0.75
elif param > 5:
score = 0.5
elif param > 0:
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]))
value = sum(fraction)
return value
def sre(param):
"""
社会责任评价得分
"""
fraction = list()
fraction.append(calculation_11(param[0]))
fraction.append(calculation_12(param[1]))
fraction.append(calculation_13(param[2]))
fraction.append(calculation_14(param[3]))
fraction.append(calculation_15(param[4]))
fraction.append(calculation_16(param[5]))
fraction.append(calculation_17(param[6]))
fraction.append(calculation_18(param[7]))
fraction.append(calculation_19(param[8]))
fraction.append(calculation_20(param[9]))
value = sum(fraction)
return value
def cge(param):
"""
公司治理评价得分
"""
fraction = list()
fraction.append(calculation_21(param[0]))
fraction.append(calculation_22(param[1]))
fraction.append(calculation_23(param[2]))
fraction.append(calculation_24(param[3]))
fraction.append(calculation_25(param[4]))
fraction.append(calculation_26(param[5]))
fraction.append(calculation_27(param[6]))
fraction.append(calculation_28(param[7]))
fraction.append(calculation_29(param[8]))
fraction.append(calculation_30(param[9]))
value = sum(fraction)
return value
def manufacturing(questionnaire):
"""
计算经营要素得分
Parameters
questionnaire dict 经营问卷
Returns
score float 得分
"""
score = dict()
score['环境'] = ea(questionnaire[0:10])
score['社会责任'] = sre(questionnaire[10:20])
score['公司治理'] = cge(questionnaire[20:30])
score['合计'] = sum(score.values())
return score