539 lines
10 KiB
Python
539 lines
10 KiB
Python
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
|