tfse-app-api-v0.2/Rating/Esg/EsgObj.py

271 lines
13 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.

from Utils.ObjUtil import SpecObject
from Utils.ValidateUtil import ValidateAttr
class RatingRecord(SpecObject):
"""评价记录 """
rid = ValidateAttr(field='rid', type=str, length=8)
cid = ValidateAttr(field='cid', type=str, length=8)
company = ValidateAttr(field='company', type=str)
project = ValidateAttr(field='project', type=str, in_list=["综合信用评价", "ESG评价"])
methods = ValidateAttr(field='methods', type=str, in_list=["企业申报"])
status = ValidateAttr(field='status', type=str, in_list=["进行", "完成"])
result = ValidateAttr(field='result', type=str,
in_list=["AAA", "AA+", "AA", "AA-", "A+", "A", "A-", "BBB+", "BBB", "BBB-", "BB+", "BB",
"BB-", "B+", "B", "B-", "CCC", "CC"], default=None)
report_fid = ValidateAttr(field='report_fid', type=str, default=None)
certificate_fid = ValidateAttr(field='certificate_fid', type=str, default=None)
begin_time = ValidateAttr(field='begin_time', type=str)
submit_time = ValidateAttr(field='submit_time', type=str, default=None)
finish_time = ValidateAttr(field='finish_time', type=str, default=None)
finish_date = ValidateAttr(field='finish_date', type=str, default=None)
fields_map = {
"rid": "评价ID",
"cid": "企业ID",
"company": "企业名称",
"project": "评价项目",
"methods": "评价方式",
"status": "进行状态",
"result": "评价结果",
"report_fid": "报告fid",
"certificate_fid": "证书fid",
"begin_time": "开始填报时间",
"submit_time": "提交填报时间",
"finish_time": "评价完成时间",
"finish_date": "评价完成日期"
}
class ThreeYearDataByE(SpecObject):
"""环境问卷近三年数据"""
year = ValidateAttr(field='year', default=None, length=5, type=str)
raw_coal = ValidateAttr(field='raw_coal', default=None, type=float)
coke = ValidateAttr(field='coke', default=None, type=float)
crude = ValidateAttr(field='crude', default=None, type=float)
fuel_oil = ValidateAttr(field='fuel_oil', default=None, type=float)
gasoline = ValidateAttr(field='gasoline', default=None, type=float)
kerosene = ValidateAttr(field='kerosene', default=None, type=float)
diesel_fuel = ValidateAttr(field='diesel_fuel', default=None, type=float)
liquefied_petroleum_gas = ValidateAttr(field='liquefied_petroleum_gas', default=None, type=float)
natural_gas = ValidateAttr(field='natural_gas', default=None, type=float)
gas = ValidateAttr(field='gas', default=None, type=float)
electricity = ValidateAttr(field='electricity', default=None, type=float)
water = ValidateAttr(field='water', default=None, type=float)
green_income = ValidateAttr(field='green_income', default=None, type=float)
fields_map = {
"year": "年份",
"raw_coal": "公司当年消耗的原煤(千克)",
"coke": "公司当年消耗的焦炭(千克)",
"crude": "公司当年消耗的原油(升)",
"fuel_oil": "公司当年消耗的燃料油(升)",
"gasoline": "公司当年消耗的汽油(升)",
"kerosene": "公司当年消耗的煤油(升)",
"diesel_fuel": "公司当年消耗的柴油(升)",
"liquefied_petroleum_gas": "公司当年消耗的液化石油气(千克)",
"natural_gas": "公司当年消耗的天然气(立方米)",
"gas": "公司当年消耗的煤气(立方米)",
"electricity": "公司当年消耗的电(千瓦时)",
"water": "公司当年耗水(吨)",
"green_income": "公司当年绿色业务收入(万元)——包括不限于清洁能源、清洁交通、绿色建筑、清洁技术等"
}
class OtherTypeDataByE(object):
"""环境问卷其他类型问卷"""
question_01 = ValidateAttr(field='question_01', default=None, type=str, in_list=["A", "B"],
error_info='环境其他类型问卷01异常',
error_code=200)
question_02 = ValidateAttr(field='question_02', default=None, type=str, in_list=["A", "B"],
error_info='环境其他类型问卷02异常',
error_code=200)
question_03 = ValidateAttr(field='question_03', default=None, type=str, in_list=["A", "B"],
error_info='环境其他类型问卷03异常',
error_code=200)
question_04 = ValidateAttr(field='question_04', default=None, type=str, in_list=["A", "B"],
error_info='环境其他类型问卷04异常',
error_code=200)
question_05 = ValidateAttr(field='question_05', default=None, type=str, in_list=["A", "B"],
error_info='环境其他类型问卷05异常',
error_code=200)
question_06 = ValidateAttr(field='question_06', default=None, type=str, in_list=["A", "B"],
error_info='环境其他类型问卷06异常',
error_code=200)
question_07 = ValidateAttr(field='question_07', default=None, type=str, in_list=["A", "B"],
error_info='环境其他类型问卷07异常',
error_code=200)
question_08 = ValidateAttr(field='question_08', default=None, type=str, in_list=["A", "B"],
error_info='环境其他类型问卷08异常',
error_code=200)
def list_to_save(self):
"""存储对象"""
_list_ = [
self.question_01,
self.question_02,
self.question_03,
self.question_04,
self.question_05,
self.question_06,
self.question_07,
self.question_08
]
return _list_
class EnvironmentQuestionnaire(SpecObject):
"""环境问卷"""
e_three_year_data = ValidateAttr(field='e_three_year_data', instance_list=ThreeYearDataByE)
e_other_type_data = ValidateAttr(field='e_other_type_data', type=list)
fields_map = {
"e_three_year_data": "近三年公司数据",
"e_other_type_data": "其他类型问卷"
}
class ThreeYearDataByS(SpecObject):
"""社会问卷近三年数据"""
year = ValidateAttr(field='year', default=None, length=5, type=str)
employee_total = ValidateAttr(field='employee_total', default=None, type=int)
leaving_total = ValidateAttr(field='leaving_total', default=None, type=int)
salary_level = ValidateAttr(field='salary_level', default=None, type=float)
work_length = ValidateAttr(field='work_length', default=None, type=float)
labor_dispute = ValidateAttr(field='labor_dispute', default=None, type=int)
security_incident = ValidateAttr(field='security_incident', default=None, type=int)
training_times = ValidateAttr(field='training_times', default=None, type=int)
supplier = ValidateAttr(field='supplier', type=float, default=None)
sales = ValidateAttr(field='sales', type=float, default=None)
return_sales = ValidateAttr(field='return_sales', default=None, type=float)
donate = ValidateAttr(field='donate', default=None, type=float)
fields_map = {
"year": "年份",
"employee_total": "员工总数(年底)",
"leaving_total": "当年离职人数",
"salary_level": "人均薪酬水平(元/月)",
"work_length": "劳动合同要求工作时长(每周小时数)",
"labor_dispute": "劳资纠纷次数",
"security_incident": "安全事故发生次数",
"training_times": "组织培训次数",
"supplier": "公司从前3大供应商拿货占全部供应商比例%",
"sales": "公司前3大客户销售额占全部销售比例%",
"return_sales": "返修、退回、投诉产品对应销售额占全部销售比例(%",
"donate": "扶贫+捐赠规模(万元)"
}
class OtherTypeDataByS(object):
"""社会问卷其他类型数据"""
question_01 = ValidateAttr(field='question_01', default=None, type=str, in_list=["A", "B"], error_info='社会其他类型问卷01异常',
error_code=200)
question_02 = ValidateAttr(field='question_02', default=None, type=str, in_list=["A", "B"], error_info='社会其他类型问卷02异常',
error_code=200)
question_03 = ValidateAttr(field='question_03', default=None, type=str, in_list=["A", "B"], error_info='社会其他类型问卷03异常',
error_code=200)
question_04 = ValidateAttr(field='question_04', default=None, type=str, in_list=["A", "B"], error_info='社会其他类型问卷04异常',
error_code=200)
def list_to_save(self):
"""存储对象"""
_list_ = [
self.question_01,
self.question_02,
self.question_03,
self.question_04
]
return _list_
class SocietyQuestionnaire(SpecObject):
"""社会问卷"""
s_three_year_data = ValidateAttr(field='s_three_year_data', instance_list=ThreeYearDataByS)
s_other_type_data = ValidateAttr(field='s_other_type_data', type=list)
fields_map = {
"s_three_year_data": "近三年公司数据",
"s_other_type_data": "其他类型问卷"
}
class ThreeYearDataByG(SpecObject):
"""治理问卷近三年数据"""
year = ValidateAttr(field='year', default=None, length=5, type=str)
audit_report = ValidateAttr(field='audit_report', default=None, type=str, in_list=['', ''])
net_assets = ValidateAttr(field='net_assets', default=None, type=float)
net_profit = ValidateAttr(field='net_profit', default=None, type=float)
fields_map = {
"year": "年份",
"audit_report": "公司是否有审计报告",
"net_assets": "公司净资产(万元)",
"net_profit": "公司净利润(万元)"
}
class OtherTypeDataByG(object):
question_01 = ValidateAttr(field='question_01', default=None, type=str, in_list=["A", "B"], error_info='环境其他类型问卷01异常',
error_code=200)
question_02 = ValidateAttr(field='question_02', default=None, type=str, in_list=["A", "B"], error_info='环境其他类型问卷02异常',
error_code=200)
question_03 = ValidateAttr(field='question_03', default=None, type=int, error_info='环境其他类型问卷03异常', error_code=200)
question_04 = ValidateAttr(field='question_04', default=None, type=int, error_info='环境其他类型问卷04异常', error_code=200)
question_05 = ValidateAttr(field='question_05', default=None, type=str, in_list=["A", "B"], error_info='环境其他类型问卷05异常',
error_code=200)
question_06 = ValidateAttr(field='question_06', default=None, type=str, in_list=["A", "B"], error_info='环境其他类型问卷06异常',
error_code=200)
question_07 = ValidateAttr(field='question_07', default=None, type=str, in_list=["A", "B"], error_info='环境其他类型问卷07异常',
error_code=200)
question_08 = ValidateAttr(field='question_08', default=None, type=str, in_list=["A", "B"], error_info='环境其他类型问卷08异常',
error_code=200)
def list_to_save(self):
"""存储对象"""
_list_ = [
self.question_01,
self.question_02,
self.question_03,
self.question_04,
self.question_05,
self.question_06,
self.question_07,
self.question_08
]
return _list_
class GovernanceQuestionnaire(SpecObject):
"""治理问卷"""
g_three_year_data = ValidateAttr(field='g_three_year_data', instance_list=ThreeYearDataByG)
g_other_type_data = ValidateAttr(field='g_other_type_data', type=list)
fields_map = {
"g_three_year_data": "近三年公司数据",
"g_other_type_data": "其他类型问卷"
}
class EsgInputData(SpecObject):
"""ESG填报数据"""
rid = ValidateAttr(field='rid', type=str, length=8)
cid = ValidateAttr(field='cid', type=str, length=8)
company = ValidateAttr(field='company', type=str)
year = ValidateAttr(field='year', type=str, length=5)
industry = ValidateAttr(field='industry', type=list)
current_year_income = ValidateAttr(field='current_year_income', type=dict)
environment = ValidateAttr(field='environment', type=EnvironmentQuestionnaire)
society = ValidateAttr(field='society', type=SocietyQuestionnaire)
governance = ValidateAttr(field='governance', type=GovernanceQuestionnaire)
fields_map = {
"rid": "评价ID",
"cid": "企业ID",
"company": "企业名称",
"year": "评价年度",
"industry": "所属行业",
"current_year_income": "公司当年收入(万元)",
"environment": "环境问卷",
"society": "社会问卷",
"governance": "治理问卷"
}