130 lines
6.8 KiB
Python
130 lines
6.8 KiB
Python
|
from Utils.ObjUtil import SpecObject
|
|||
|
from Utils.ValidateUtil import ValidateAttr, Validate
|
|||
|
RATING_RESULT = ["AAA", "AA+", "AA", "AA-", "A+", "A", "A-", "BBB+", "BBB", "BBB-", "BB+", "BB", "BB-", "B+", "B", "B-", "CCC", "CC", None]
|
|||
|
|
|||
|
|
|||
|
class EnvironmentalScore(SpecObject):
|
|||
|
"""环境得分"""
|
|||
|
carbon_dioxide = ValidateAttr(field='carbon_dioxide', type=[float, int])
|
|||
|
energy_consumption = ValidateAttr(field='energy_consumption', type=[float, int])
|
|||
|
water_consumption = ValidateAttr(field='water_consumption', type=[float, int])
|
|||
|
income_ratio = ValidateAttr(field='income_ratio', type=[float, int])
|
|||
|
greenhouse_gas = ValidateAttr(field='greenhouse_gas', type=[float, int])
|
|||
|
energy_saving = ValidateAttr(field='energy_saving', type=[float, int])
|
|||
|
water_saving = ValidateAttr(field='water_saving', type=[float, int])
|
|||
|
green_business = ValidateAttr(field='green_business', type=[float, int])
|
|||
|
punish = ValidateAttr(field='punish', type=[float, int, str])
|
|||
|
negative_effects = ValidateAttr(field='negative_effects', type=[float, int])
|
|||
|
beneficial_influence = ValidateAttr(field='beneficial_influence', type=[float, int])
|
|||
|
clean_energy = ValidateAttr(field='clean_energy', type=[float, int])
|
|||
|
total = ValidateAttr(field='total', type=[float, int])
|
|||
|
|
|||
|
fields_map = {
|
|||
|
"carbon_dioxide": "单位收入二氧化碳排放",
|
|||
|
"energy_consumption": "单位收入的能耗",
|
|||
|
"water_consumption": "单位收入的耗水",
|
|||
|
"income_ratio": "绿色业务收入占比(%)",
|
|||
|
"greenhouse_gas": "公司是否有温室气体减排目标",
|
|||
|
"energy_saving": "企业是否有节能目标",
|
|||
|
"water_saving": "企业是否有节约用水目标",
|
|||
|
"green_business": "是否有绿色业务",
|
|||
|
"punish": "近三年是否被环境或水务等监管部门处罚",
|
|||
|
"negative_effects": "国家双碳目标对企业业务是否有不利影响",
|
|||
|
"beneficial_influence": "国家双碳目标对企业业务是否有有利影响",
|
|||
|
"clean_energy": "企业是否使用风电、光电、水电等清洁能源,是否使用清洁交通工具",
|
|||
|
"total": "合计"
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
class SocialScore(SpecObject):
|
|||
|
"""社会得分"""
|
|||
|
resign = ValidateAttr(field="resign", type=[float, int])
|
|||
|
salary_increase = ValidateAttr(field="salary_increase", type=[float, int])
|
|||
|
work_length = ValidateAttr(field="work_length", type=[float, int])
|
|||
|
labor_disputes = ValidateAttr(field="labor_disputes", type=[float, int])
|
|||
|
security_incident = ValidateAttr(field="security_incident", type=[float, int])
|
|||
|
provide_training = ValidateAttr(field="provide_training", type=[float, int])
|
|||
|
social_security = ValidateAttr(field="social_security", type=[float, int])
|
|||
|
provident_fund = ValidateAttr(field="provident_fund", type=[float, int])
|
|||
|
physical_examination = ValidateAttr(field="physical_examination", type=[float, int])
|
|||
|
paid_leave = ValidateAttr(field="paid_leave", type=[float, int])
|
|||
|
supplier = ValidateAttr(field="supplier", type=[float, int])
|
|||
|
customer_sales = ValidateAttr(field="customer_sales", type=[float, int])
|
|||
|
repair_ratio = ValidateAttr(field="repair_ratio", type=[float, int])
|
|||
|
poverty_alleviation = ValidateAttr(field="poverty_alleviation", type=[float, int])
|
|||
|
judicial_risk = ValidateAttr(field="judicial_risk", type=[float, int, str])
|
|||
|
total = ValidateAttr(field="total", type=[float, int])
|
|||
|
|
|||
|
fields_map = {
|
|||
|
"resign": "离职人数占比",
|
|||
|
"salary_increase": "人均薪酬涨幅",
|
|||
|
"work_length": "劳动合同中的工作时长(周)",
|
|||
|
"labor_disputes": "劳动纠纷",
|
|||
|
"security_incident": "安全事故",
|
|||
|
"provide_training": "提供培训",
|
|||
|
"social_security": "社保缴纳是否符合当地标准",
|
|||
|
"provident_fund": "公积金缴纳是否符合当地标准",
|
|||
|
"physical_examination": "是否提供员工体检",
|
|||
|
"paid_leave": "是否提供带薪假期",
|
|||
|
"supplier": "公司从前三大供货商拿货占比",
|
|||
|
"customer_sales": "公司前3大客户销量占比",
|
|||
|
"repair_ratio": "公司返修、退回、投诉产品比例(%)",
|
|||
|
"poverty_alleviation": "扶贫+捐赠规模(万元)",
|
|||
|
"judicial_risk": "司法风险",
|
|||
|
"total": "合计"
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
class GovernanceScore(SpecObject):
|
|||
|
"""治理得分"""
|
|||
|
enterprise_nature = ValidateAttr(field="enterprise_nature", type=[float, int])
|
|||
|
directors_board = ValidateAttr(field="directors_board", type=[float, int])
|
|||
|
supervisory_board = ValidateAttr(field="supervisory_board", type=[float, int])
|
|||
|
experience_year = ValidateAttr(field="experience_year", type=[float, int])
|
|||
|
turnover_rate = ValidateAttr(field="turnover_rate", type=[float, int])
|
|||
|
information_disclosure = ValidateAttr(field="information_disclosure", type=[float, int])
|
|||
|
meetings_number = ValidateAttr(field="meetings_number", type=[float, int])
|
|||
|
roe = ValidateAttr(field="roe", type=[float, int])
|
|||
|
audit_report = ValidateAttr(field="audit_report", type=[float, int])
|
|||
|
total = ValidateAttr(field="total", type=[float, int])
|
|||
|
|
|||
|
fields_map = {
|
|||
|
"enterprise_nature": "企业性质",
|
|||
|
"directors_board": "公司是否设有董事会",
|
|||
|
"supervisory_board": "公司是否设有监事会",
|
|||
|
"experience_year": "董监高平均拥有的行业经验年数",
|
|||
|
"turnover_rate": "董监高近三年离职率",
|
|||
|
"information_disclosure": "公司近三年信息披露及时、可靠、完备、审计质量",
|
|||
|
"meetings_number": "公司董事会近三年年均开会次数",
|
|||
|
"roe": "净资产收益率",
|
|||
|
"audit_report": "公司是否有审计报告",
|
|||
|
"total": "合计"
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
class EsgRatingResult(SpecObject):
|
|||
|
"""esg评价结果"""
|
|||
|
cid = ValidateAttr(field='cid', type=str, length=8, default=None)
|
|||
|
rid = ValidateAttr(field="rid", type=str, length=8, default=None)
|
|||
|
name = ValidateAttr(field='name', type=str, default=None)
|
|||
|
year = ValidateAttr(field='year', type=str, default=None)
|
|||
|
esg_score = ValidateAttr(field='esg_score', type=[float, int], default=None)
|
|||
|
environmental_score = ValidateAttr(field='environmental_score', type=EnvironmentalScore)
|
|||
|
social_score = ValidateAttr(field='social_score', type=SocialScore)
|
|||
|
governance_score = ValidateAttr(field='governance_score', type=GovernanceScore)
|
|||
|
level = ValidateAttr(field='level', type=str, in_list=RATING_RESULT)
|
|||
|
rating_date = ValidateAttr(field='rating_date', func=Validate.date_format)
|
|||
|
|
|||
|
fields_map = {
|
|||
|
"cid": "企业ID",
|
|||
|
"rid": "评价ID",
|
|||
|
"name": "企业名称",
|
|||
|
"year": "评价年度",
|
|||
|
"esg_score": "ESG得分",
|
|||
|
"environmental_score": "环境得分",
|
|||
|
"social_score": "社会得分",
|
|||
|
"governance_score": "公司治理得分",
|
|||
|
"level": "评价等级",
|
|||
|
"rating_date": "评价时间"
|
|||
|
}
|