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