Merge branch 'v0.21' into 'master'
经营风险 See merge request root/tfse_admin!34
This commit is contained in:
commit
7eb64fa3f6
|
@ -73,10 +73,10 @@ class CompanyIndexApiImpl(CompanyIndexApi):
|
|||
update_time = CompanyIndexApi.UpdateTime()
|
||||
basic_info = CompanyIndexApi.BasicInfo()
|
||||
financial_data = CompanyIndexApi.FinancialData()
|
||||
operating_risk = CompanyIndexApi
|
||||
financial_analysis = CompanyIndexApi
|
||||
cc_rating = CompanyIndexApi
|
||||
esg_rating = CompanyIndexApi
|
||||
operating_risk = CompanyIndexApi.OperatingRisk()
|
||||
financial_analysis = CompanyIndexApi.FinancialAnalysis()
|
||||
cc_rating = CompanyIndexApi.CCRating()
|
||||
esg_rating = CompanyIndexApi.ESGRating()
|
||||
|
||||
def get_head_info(self):
|
||||
"""获取头部信息"""
|
||||
|
@ -129,8 +129,8 @@ class CompanyIndexApiImpl(CompanyIndexApi):
|
|||
result = {'工商信息': {}, "股东信息": {}, "主要成员": {}}
|
||||
|
||||
self.basic_info.business_info = self.dict_to_set(instance=self.basic_info.BusinessInfo, data=result['工商信息'])
|
||||
self.basic_info.share_holder = self.instance_list_to_set(instance_list_type=self.basic_info.ShareHolder, data=result['股东信息'])
|
||||
self.basic_info.main_member = self.instance_list_to_set(instance_list_type=self.basic_info.MainMember, data=result['主要成员'])
|
||||
self.basic_info.share_holder = self.instance_list_to_set(instance=self.basic_info.ShareHolder, data=result['股东信息'])
|
||||
self.basic_info.main_member = self.instance_list_to_set(instance=self.basic_info.MainMember, data=result['主要成员'])
|
||||
|
||||
def get_financial_data(self):
|
||||
"""获取财务数据"""
|
||||
|
@ -149,3 +149,30 @@ class CompanyIndexApiImpl(CompanyIndexApi):
|
|||
self.financial_data.profit_sheet = self.dict_to_set(instance=self.financial_data.ProfitSheet, data=result['利润表'])
|
||||
self.financial_data.appendix_data = self.dict_to_set(instance=self.financial_data.AppendixDataSheet, data=result['补充数据表'])
|
||||
self.financial_data.financial_index = self.dict_to_set(instance=self.financial_data.FinancialIndex, data=result['财务指标'])
|
||||
|
||||
def get_operating_risk(self):
|
||||
"""获取经营风险分析"""
|
||||
|
||||
if self.operating_risk.__dict__.__contains__('update_time'):
|
||||
find_body = {"企业ID": self.operating_risk.cid, "更新时间": self.operating_risk.update_time}
|
||||
else:
|
||||
find_body = {"企业ID": self.operating_risk.cid}
|
||||
|
||||
result = self.db.find_single_data(
|
||||
"企业数据",
|
||||
"经营风险分析",
|
||||
find_body,
|
||||
["评价ID", "风险级别", "风险分数", "列入失信名单", "合规风险", "经营风险", "周边风险", "变更记录"]
|
||||
)
|
||||
|
||||
if not result:
|
||||
result = {'评价ID': None, "风险级别": None, "风险分数": None, "列入失信名单": None, "合规风险": {}, "经营风险": {}, "周边风险": {}, "变更记录": {}}
|
||||
|
||||
self.operating_risk.rid = result['评价ID']
|
||||
self.operating_risk.risk_level = result['风险级别']
|
||||
self.operating_risk.risk_score = result['风险分数']
|
||||
self.operating_risk.in_untrustworthy_list = result['列入失信名单']
|
||||
self.operating_risk.compliance_risk = self.instance_list_to_set(instance=self.OperatingRisk().InfluenceObj, data=result['合规风险'])
|
||||
self.operating_risk.operating_risk = self.instance_list_to_set(instance=self.OperatingRisk().InfluenceObj, data=result['经营风险'])
|
||||
self.operating_risk.peripheral_risk = self.instance_list_to_set(instance=self.OperatingRisk().DetailObj, data=result['周边风险'])
|
||||
self.operating_risk.change_records = self.instance_list_to_set(instance=self.OperatingRisk().InfluenceObj, data=result['变更记录'])
|
||||
|
|
|
@ -323,6 +323,66 @@ class CompanyIndexApi(SpecObject):
|
|||
"financial_index": "财务指标"
|
||||
}
|
||||
|
||||
class OperatingRisk(SpecObject):
|
||||
"""经营风险"""
|
||||
|
||||
class InfluenceObj(SpecObject):
|
||||
"""影响统计"""
|
||||
name = ValidateAttr(field='name', type=str)
|
||||
total = ValidateAttr(field='total', type=int)
|
||||
influence = ValidateAttr(field='influence', type=str)
|
||||
|
||||
fields_map = {
|
||||
"name": "类型",
|
||||
"total": "数量",
|
||||
"influence": "影响"
|
||||
}
|
||||
|
||||
class DetailObj(SpecObject):
|
||||
"""详细统计"""
|
||||
name = ValidateAttr(field='name', type=str)
|
||||
total = ValidateAttr(field='total', type=int)
|
||||
detail = ValidateAttr(field='detail', type=list)
|
||||
|
||||
fields_map = {
|
||||
"name": "类型",
|
||||
"total": "数量",
|
||||
"detail": "详情"
|
||||
}
|
||||
|
||||
cid = ValidateAttr(field='cid', type=str, length=8, default=None)
|
||||
update_time = ValidateAttr(field='update_time', func=Validate.time_format)
|
||||
rid = ValidateAttr(field='rid', type=str, length=8, default='')
|
||||
risk_level = ValidateAttr(field='risk_level', type=str, in_list=['高', '较高', '中等', '警示', '低'], default='')
|
||||
risk_score = ValidateAttr(field='risk_score', type=[int, float], default='')
|
||||
in_untrustworthy_list = ValidateAttr(field='in_untrustworthy_list', type=str, in_list=["是", "否"], default='')
|
||||
compliance_risk = ValidateAttr(field='compliance_risk', instance_list=InfluenceObj)
|
||||
operating_risk = ValidateAttr(field='operating_risk', instance_list=InfluenceObj)
|
||||
peripheral_risk = ValidateAttr(field='peripheral_risk', instance_list=DetailObj)
|
||||
change_records = ValidateAttr(field='change_records', instance_list=InfluenceObj)
|
||||
|
||||
fields_map = {
|
||||
"cid": "企业ID",
|
||||
"update_time": "更新时间",
|
||||
"rid": "评价ID",
|
||||
"risk_level": "风险级别",
|
||||
"risk_score": "风险分数",
|
||||
"in_untrustworthy_list": "列入失信名单",
|
||||
"compliance_risk": "合规风险统计",
|
||||
"operating_risk": "经营风险统计",
|
||||
"peripheral_risk": "周边风险统计",
|
||||
"change_records": "变更记录统计"
|
||||
}
|
||||
|
||||
class FinancialAnalysis(SpecObject):
|
||||
"""财务分析"""
|
||||
|
||||
class CCRating(SpecObject):
|
||||
"""综信评价分析"""
|
||||
|
||||
class ESGRating(SpecObject):
|
||||
"""ESG评价分析"""
|
||||
|
||||
def get_head_info(self):
|
||||
"""头部信息"""
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ def basic_info_route(**kwargs):
|
|||
@company_route.route('/financial_data', methods=['POST'])
|
||||
@verify_token
|
||||
def financial_data_route(**kwargs):
|
||||
""""""
|
||||
"""获取财务数据"""
|
||||
try:
|
||||
req = request.json
|
||||
impl = CompanyIndexApiImpl()
|
||||
|
@ -116,6 +116,23 @@ def financial_data_route(**kwargs):
|
|||
return {"info": e.failed_info}, e.status_code
|
||||
|
||||
|
||||
@company_route.route('/operating_risk', methods=['POST'])
|
||||
@verify_token
|
||||
def operating_risk_route(**kwargs):
|
||||
"""经营风险分析"""
|
||||
try:
|
||||
req = request.json
|
||||
impl = CompanyIndexApiImpl()
|
||||
impl.operating_risk.cid = req['cid']
|
||||
if req.__contains__('update_time'):
|
||||
impl.operating_risk.update_time = req['update_time']
|
||||
impl.get_operating_risk()
|
||||
result = impl.operating_risk.dict_to_show(columns=["评价ID", "风险级别", "风险分数", "列入失信名单", "合规风险统计", "经营风险统计", "周边风险统计", "变更记录统计"])
|
||||
return result, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
|
||||
|
||||
@company_route.route('/index', methods=['POST'])
|
||||
@verify_token
|
||||
def index_route(**kwargs):
|
||||
|
|
|
@ -66,7 +66,7 @@ class SpecObject(object):
|
|||
"""实例数组设值"""
|
||||
list_ = list()
|
||||
for item in list(kwargs['data']):
|
||||
instance = kwargs['instance_list_type']()
|
||||
instance = kwargs['instance']()
|
||||
fields_map = dict([v, k] for k, v in instance.fields_map.items())
|
||||
for field in list(item.keys()):
|
||||
instance.__setattr__(fields_map[field], item[field])
|
||||
|
|
Loading…
Reference in New Issue