wd-smebiz/mods/smebiz_rate/company_rate/utils.py

447 lines
28 KiB
Python
Raw Normal View History

2023-08-02 10:18:36 +08:00
from datetime import datetime
import json
2023-08-02 14:24:28 +08:00
from context.common import tianyancha_api
from utils.rate_utils import bj_finance_cal_interface
2023-08-02 10:18:36 +08:00
# 筛选被告
def filter_bg(data: [], company_name):
new_data = []
for item in data:
add = False
for i in item['defendant']:
if company_name in i['name']:
add = True
if add:
new_data.append(item)
return new_data
def filter_bg2(data: [], company_name):
new_data = []
for item in data:
defendants = sum([1 if i in company_name else 0 for i in item['defendants']])
plaintiffs = sum([1 if i in company_name else 0 for i in item['plaintiffs']])
if defendants > plaintiffs:
new_data.append(item)
return new_data
def load_api_data(company_name, wj_data: {} = {}) -> dict:
司法风险, _ = tianyancha_api.get("司法风险", {"keyword": company_name})
# 司法解析, _ = tianyancha_api.get("司法解析", {"keyword": company_name})
资质证书, 资质证书数量 = tianyancha_api.get("资质证书", {"keyword": company_name})
历史经营异常数量 = tianyancha_api.get_total("历史经营异常", {"keyword": company_name})
双随机抽查, 双随机抽查数量 = tianyancha_api.get("双随机抽查", {"keyword": company_name})
双随机抽查详情 = [tianyancha_api.get("双随机抽查详情", {"businessId": item['taskList'][0]['businessId']})[0] for
item in 双随机抽查]
质押比例, _ = tianyancha_api.get("质押比例", {"keyword": company_name})
破产重整数量 = tianyancha_api.get_total("破产重整", {"keyword": company_name})
司法拍卖数量 = tianyancha_api.get_total("司法拍卖", {"keyword": company_name})
企业基本信息, _ = tianyancha_api.get("企业基本信息", {"keyword": company_name})
企业专利信息数量 = tianyancha_api.get_total("企业专利信息", {"keyword": company_name})
知识产权出质, _ = tianyancha_api.get("知识产权出质", {"keyword": company_name})
税务评级, _ = tianyancha_api.get("税务评级", {"keyword": company_name})
进出口信用, _ = tianyancha_api.get("进出口信用", {"keyword": company_name})
税收违法数量 = tianyancha_api.get_total("税收违法", {"keyword": company_name})
欠税公告数量 = tianyancha_api.get_total("欠税公告", {"keyword": company_name})
行政许可数量 = tianyancha_api.get_total("行政许可", {"keyword": company_name})
行政处罚数量 = tianyancha_api.get_total("行政处罚", {"keyword": company_name})
经营异常数量 = tianyancha_api.get_total("经营异常", {"keyword": company_name})
严重违法数量 = tianyancha_api.get_total("严重违法", {"keyword": company_name})
终本案件数量 = tianyancha_api.get_total("终本案件", {"keyword": company_name})
# 失信被执行人数量 = tianyancha_api.get_total("失信被执行人", {"keyword": company_name})
被执行人数量 = tianyancha_api.get_total("被执行人", {"keyword": company_name})
限制消费令数量 = tianyancha_api.get_total("限制消费令", {"keyword": company_name})
# 劳动仲裁案由 = ["确认劳动关系争议", "劳动合同争议", "社会保险争议", "劳动报酬争议", "福利待遇争议", "劳动保护争议"]
劳动仲裁案由 = ["劳动争议", "劳动合同纠纷", "确认劳动关系纠纷", "集体合同纠纷", "劳务派遣合同纠纷",
"非全日制用工纠纷", "追索劳动报酬纠纷", "经济补偿金纠纷", "竞业限制纠纷", "社会保险纠纷",
"养老保险待遇纠纷", "工伤保险待遇纠纷", "医疗保险待遇纠纷", "生育保险待遇纠纷", "失业保险待遇纠纷",
"福利待遇纠纷"]
合同纠纷案由 = ["合同纠纷", "缔约过失责任纠纷", "预约合同纠纷", "确认合同效力纠纷", "确认合同有效纠纷",
"确认合同无效纠纷", "债权人代位权纠纷", "债权人撤销权纠纷", "债权转让合同纠纷", "债务转移合同纠纷",
"债权债务概括转移合同纠纷", "债务加入纠纷", "悬赏广告纠纷", "买卖合同纠纷", "分期付款买卖合同纠纷",
"凭样品买卖合同纠纷", "试用买卖合同纠纷", "所有权保留买卖合同纠纷", "招标投标买卖合同纠纷",
"互易纠纷", "国际货物买卖合同纠纷", "信息网络买卖合同纠纷", "拍卖合同纠纷",
"建设用地使用权合同纠纷", "建设用地使用权出让合同纠纷", "建设用地使用权转让合同纠纷",
"临时用地合同纠纷", "探矿权转让合同纠纷", "采矿权转让合同纠纷", "房地产开发经营合同纠纷",
"委托代建合同纠纷", "合资、合作开发房地产合同纠纷", "项目转让合同纠纷", "房屋买卖合同纠纷",
"商品房预约合同纠纷", "商品房预售合同纠纷", "商品房销售合同纠纷", "商品房委托代理销售合同纠纷",
"经济适用房转让合同纠纷", "农村房屋买卖合同纠纷", "民事主体间房屋拆迁补偿合同纠纷",
"供用电合同纠纷", "供用水合同纠纷", "供用气合同纠纷", "供用热力合同纠纷", "排污权交易纠纷",
"用能权交易纠纷", "用水权交易纠纷", "碳排放权交易纠纷", "碳汇交易纠纷", "赠与合同纠纷",
"公益事业捐赠合同纠纷", "附义务赠与合同纠纷", "借款合同纠纷", "金融借款合同纠纷", "同业拆借纠纷",
"民间借贷纠纷", "小额借款合同纠纷", "金融不良债权转让合同纠纷", "金融不良债权追偿纠纷",
"保证合同纠纷", "抵押合同纠纷", "质押合同纠纷", "定金合同纠纷", "进出口押汇纠纷",
"储蓄存款合同纠纷", "银行卡纠纷", "借记卡纠纷", "信用卡纠纷", "租赁合同纠纷", "土地租赁合同纠纷",
"房屋租赁合同纠纷", "车辆租赁合同纠纷", "建筑设备租赁合同纠纷", "融资租赁合同纠纷", "保理合同纠纷",
"承揽合同纠纷", "加工合同纠纷", "定作合同纠纷", "修理合同纠纷", "复制合同纠纷", "测试合同纠纷",
"检验合同纠纷", "铁路机车、车辆建造合同纠纷", "建设工程合同纠纷", "建设工程勘察合同纠纷",
"建设工程设计合同纠纷", "建设工程施工合同纠纷", "建设工程价款优先受偿权纠纷",
"建设工程分包合同纠纷", "建设工程监理合同纠纷", "装饰装修合同纠纷", "铁路修建合同纠纷",
"农村建房施工合同纠纷", "运输合同纠纷", "公路旅客运输合同纠纷", "公路货物运输合同纠纷",
"水路旅客运输合同纠纷", "水路货物运输合同纠纷", "航空旅客运输合同纠纷", "航空货物运输合同纠纷",
"出租汽车运输合同纠纷", "管道运输合同纠纷", "城市公交运输合同纠纷", "联合运输合同纠纷",
"多式联运合同纠纷", "铁路货物运输合同纠纷", "铁路旅客运输合同纠纷", "铁路行李运输合同纠纷",
"铁路包裹运输合同纠纷", "国际铁路联运合同纠纷", "保管合同纠纷", "仓储合同纠纷", "委托合同纠纷",
"进出口代理合同纠纷", "货运代理合同纠纷", "民用航空运输销售代理合同纠纷",
"诉讼、仲裁、人民调解代理合同纠纷", "销售代理合同纠纷", "委托理财合同纠纷", "金融委托理财合同纠纷",
"民间委托理财合同纠纷", "物业服务合同纠纷", "行纪合同纠纷", "中介合同纠纷", "补偿贸易纠纷",
"借用合同纠纷", "典当纠纷", "合伙合同纠纷", "种植、养殖回收合同纠纷", "彩票、奖券纠纷",
"中外合作勘探开发自然资源合同纠纷", "农业承包合同纠纷", "林业承包合同纠纷", "渔业承包合同纠纷",
"牧业承包合同纠纷", "土地承包经营权合同纠纷", "土地承包经营权转让合同纠纷",
"土地承包经营权互换合同纠纷", "土地经营权入股合同纠纷", "土地经营权抵押合同纠纷",
"土地经营权出租合同纠纷", "居住权合同纠纷", "服务合同纠纷", "电信服务合同纠纷", "邮政服务合同纠纷",
"快递服务合同纠纷", "医疗服务合同纠纷", "法律服务合同纠纷", "旅游合同纠纷", "房地产咨询合同纠纷",
"房地产价格评估合同纠纷", "旅店服务合同纠纷", "财会服务合同纠纷", "餐饮服务合同纠纷",
"娱乐服务合同纠纷", "有线电视服务合同纠纷", "网络服务合同纠纷", "教育培训合同纠纷",
"家政服务合同纠纷", "庆典服务合同纠纷", "殡葬服务合同纠纷", "农业技术服务合同纠纷",
"农机作业服务合同纠纷", "保安服务合同纠纷", "银行结算合同纠纷", "演出合同纠纷", "劳务合同纠纷",
"离退休人员返聘合同纠纷", "广告合同纠纷", "展览合同纠纷", "追偿权纠纷","居间合同纠纷", "农村土地承包合同纠纷", "合伙协议纠纷", "房屋拆迁安置补偿合同纠纷"]
bj = {}
bj['劳动仲裁'] = len(
[item["caseReason"] for item in filter_bg(司法风险['ktAnnouncementList'], company_name) if
item["caseReason"] in 劳动仲裁案由]) if 司法风险 else 0
bj['开庭公告(案由为劳动争议)'] = len(
[item["caseReason"] for item in filter_bg(司法风险['ktAnnouncementList'], company_name) if
item['caseReason'] in 劳动仲裁案由]) if 司法风险 else 0
bj['资质证书数量'] = 资质证书数量
bj['历史经营异常'] = '' if 历史经营异常数量 else ''
自身合同违约次数 = len(
[item["casereason"] for item in filter_bg2(司法风险['lawSuitList'],company_name) if
item["casereason"] in 合同纠纷案由]) if 司法风险 else 0
bj['自身合同违约次数'] = '0' if (自身合同违约次数 or 0) == 0 else '1及以上'
bj['开庭公告(案由为合同纠纷)'] = len(
[item["caseReason"] for item in 司法风险['ktAnnouncementList'] if
item["caseReason"] and item["caseReason"] in 合同纠纷案由]) if 司法风险 else 0
双随机抽查结果 = '合格'
for item in 双随机抽查详情:
for child in item:
if child['checkResult'] != '未发现问题':
双随机抽查结果 = '批评和处罚'
break
bj['双随机抽查结果'] = 双随机抽查结果
bj['股权质押比例'] = float(质押比例['proportion']['pledgeRatio'][0:-1]) if 质押比例 else 0
bj['破产重整'] = '' if 破产重整数量 else ''
bj['司法拍卖'] = '' if 司法拍卖数量 else ''
cap_list = []
if wj_data and '问卷数据' in wj_data:
for item in wj_data['问卷数据']['为公司提供数据安全的供应商名称'].split(''):
data, _ = tianyancha_api.get('企业基本信息', {'keyword': item})
if data:
cap_list.append(float(data['actualCapital'].replace('万人民币', '')))
bj['供应商实收资本'] = sum(cap_list) / len(cap_list) if cap_list else 0
bj['专利信息'] = "1及以上" if 企业专利信息数量 >= 1 else '0'
bj['知产出质'] = '' if 知识产权出质 else ''
bj['纳税信用等级'] = 税务评级[0]['grade'] if 税务评级 else "M"
海关信用等级 = 进出口信用['baseInfo']['creditRating'] if 进出口信用 else "一般信用企业"
海关信用等级值 = ""
if "企业" in 海关信用等级:
海关信用等级值 = "一般信用企业"
if "失信" in 海关信用等级:
海关信用等级值 = "失信企业"
elif "认证" in 海关信用等级:
海关信用等级值 = "认证企业"
bj['海关信用等级'] = 海关信用等级值
bj['税收违法'] = '' if 税收违法数量 else ''
bj['欠税公告'] = '' if 欠税公告数量 else ''
bj['行政许可数量'] = 行政许可数量
bj['行政处罚数量'] = '' if 行政处罚数量 else ''
bj['行政处罚数量'] = 行政处罚数量
bj[
'经营异常(公示信息隐瞒真实情况/弄虚作假、登记的住所/经营场所无法联系企业、未在规定期限公示年度报告、未按规定公示企业信息、未在登记所从事经营活动、商事主体名称不适宜、其他原因)'] = '' if 经营异常数量 else ''
bj['严重违法'] = '' if 严重违法数量 else ''
bj['立案信息'] = '' if 司法风险 and 司法风险['courtRegisterList'] else ''
bj['终本案件'] = '' if 终本案件数量 else ''
bj['被执行人'] = '' if 被执行人数量 else ''
# bj['被执行人'] = '是' if 司法风险 and 司法风险['zhixingList'] else '否'
# bj['失信被执行人'] = '是' if 失信被执行人数量 else '否'
bj['失信被执行人'] = '' if 司法风险 and 司法风险['zhixingList'] else ''
bj['限制高消费'] = '' if 限制消费令数量 else ''
bj['成立年限'] = datetime.now().year - datetime.fromtimestamp(
企业基本信息['estiblishTime'] / 1000).year if 企业基本信息 else 0
bj['食品安全'] = ''
bj['假冒化妆品'] = ''
bj['非正常户'] = ''
bj['环保处罚'] = ''
bj['股权冻结'] = ''
bj['限制出境'] = ''
return bj
excel_data = {
"问卷数据": {
"公司全称": "成都普瑞眼科医院股份有限公司",
"统一社会信用代码": "91510106785430077J",
"2020~2022年公司股东变更次数": 2,
"是否设立董事会": "",
"董事会人数": 8,
"独立董事人数": 2,
"董事会会议次数": 10,
"董事会出席率": 100,
"是否设立监事会": "",
"风险管理部门员工人数":10,
"监事会人数": 3,
"非职工监事委派单位": "内部选举",
"是否设立党委会": "",
"公司战略符合哪些": "绿色、双碳、人才、创新、乡村振兴、国家安全、金融安全、就业优先",
"是否将风险管理纳入公司战略": "",
"是否设立风险管理部门": "",
"公司风险管理体系覆盖哪些部门": "市场、后勤、人力、财务、合规",
"2022年末数字化或智能化的风险控制方式覆盖比例": 50,
"2022年公司数据安全投入金额": 152,
"为公司提供数据安全的供应商名称": "华为技术有限公司、华为云计算技术有限公司",
"2022年产品研发投入金额": 200.5,
"2022年末公司产品系列": 2,
"2022年末公司产品种类": 5,
"2022年末公司产品数量": 100,
"2022年公司新产品数量": 15,
"公司是否曾被纳入黑名单": "",
"近三年公司信用修复次数": 0,
"公司获得的国家级荣誉数量": 5,
"公司获得的省级荣誉数量": 10,
"公司注册商标数量": 20,
"知名商标或品牌数量(例如驰名商标)": 2,
"国家级商标或品牌数量": 5,
"省级商标或品牌数量": 10,
"2022年公司缴纳的社会保险": 102.58,
"公司缴纳的社会保险种类": "五险一金",
"2022年公司员工因公死亡数量": 2,
"2022年公司员工工伤数量": 5,
"2022年公司提供服务次数": 102584,
"2022年公司被客户投诉次数": 265,
"2020~2022年公司信贷、债券、非标融资违约次数": 0,
"2020~2022年公司信贷、债券、非标融资违约金额": 0,
"2022年公司因关联方违约代偿的金额": 15,
"2022年公司应为关联方代偿金额为关联方提供担保且该关联方发生违约的金额": 120,
"2020年公司股东或关联方给予公司的资金支持金额": 200,
"2021年公司股东或关联方给予公司的资金支持金额": 200,
"2022年公司股东或关联方给予公司的资金支持金额": 200,
"2020年公司关联交易金额": 159.28,
"2021年公司关联交易金额": 195.88,
"2022年公司关联交易金额": 205.68,
"公司是否参与行业标准和规范制定": "",
"牵头制定的行业标准名称": "《标准1》《标准2》《标准3》",
"牵头制定的规范名称": "《规范1》《规范2》",
"参与制定的行业标准名称": "《标准1》",
"参与制定的规范名称": "《规范2》"
},
"财报数据": {
"2021年末": {
"数据是否经过审计": "",
"财务数据": "2021年末",
"资产负债表": None,
"总资产": 6478468.9,
"净资产": 1772251.9,
"流动资产": 5231207.8,
"流动负债": 1293325.2,
"总负债": 1546735.1,
"存货": 3858229.4,
"预付账款": 36937.9,
"应收票据": 0,
"应收账款": 4691.4,
"利润表": None,
"营业收入": 58448.8,
"主营业务成本": 60885.4,
"利润总额": 30918.8,
"净利润": 25281.9,
"计入财务费用的利息支出": 5704.1,
"现金流量表": None,
"经营性净现金流": -476663.2
},
"2022年末": {
"数据是否经过审计": "",
"财务数据": "2022年末",
"资产负债表": None,
"总资产": 7437834.9,
"净资产": 2269957.7,
"流动资产": 5753381.9,
"流动负债": 1546735.1,
"总负债": 1546735.1,
"存货": 4458149.5,
"预付账款": 14129.6,
"应收票据": 0,
"应收账款": 7474.9,
"利润表": None,
"营业收入": 214701.3,
"主营业务成本": 162917.8,
"利润总额": 84587.2,
"净利润": 69785.4,
"计入财务费用的利息支出": 18922.5,
"现金流量表": None,
"经营性净现金流": -178170.9
}
}
}
def excel_data_to_model_data_bj(excel_data: dict):
bj = {}
wj = excel_data['问卷数据']
cb = excel_data['财报数据']
bj[
'公司战略(绿色、双碳、科教、人才、创新驱动、乡村振兴、新型城镇化、可持续发展、应对人口老龄化、就业优先、国家安全、金融安全)'] = \
wj['公司战略符合哪些'].count('') if wj['公司战略符合哪些'] else 0
bj['近三年股东变更次数'] = '3次以上' if wj['2020~2022年公司股东变更次数'] and wj['2020~2022年公司股东变更次数'] >= 3 else '小于3'
bj['董事会人数'] = wj['董事会人数'] or 0
bj['独立董事人数'] = wj['独立董事人数'] or 0
bj['独立董事占比'] = (bj['独立董事人数'] / bj['董事会人数'] if bj['董事会人数'] else 0) * 100
bj['董事会会议次数'] = wj['董事会会议次数'] or 0
bj['董事会出席率(平均数)'] = (wj['董事会出席率'] or 0)
bj['监事会人数'] = wj['监事会人数'] or 0
bj['知名商标或品牌数量'] = wj['知名商标或品牌数量(例如驰名商标)'] or 0
bj['产品系列数量'] = wj['2022年末公司产品系列'] or 0
bj['产品种类数量'] = wj['2022年末公司产品种类'] or 0
bj['牵头行业标准和规范制定数量'] = (wj['牵头制定的行业标准名称'] or '').count('') + (
wj['牵头制定的规范名称'] or '').count('')
bj['参与行业标准和规范制定数量'] = (wj['参与制定的行业标准名称'] or '').count('') + (
wj['参与制定的规范名称'] or '').count('')
bj['研发投入占营业收入的比重'] = wj['2022年产品研发投入金额'] / cb['2022年末']['营业收入'] * 100 if wj['2022年产品研发投入金额'] is not None and cb['2022年末']['营业收入'] is not None else 0
bj['新产品数量'] = wj['2022年公司新产品数量'] or 0
bj['风险管理部门员工人数'] = wj['风险管理部门员工人数']
bj['风险管理覆盖部门(市场、作业、行政、人力、财务、合规、技术研发、其他)'] = len(
(wj["公司风险管理体系覆盖哪些部门"] or '').split(''))
fiance_data = fiance_index_cal_bj(excel_data)
bj['营业收入'] = cb['2022年末']['营业收入']
bj['总资产'] = cb['2022年末']['总资产']
bj['毛利率'] = fiance_data["毛利率"]
bj['总资产报酬率'] = fiance_data["总资产报酬率"]
bj['净资产收益率'] = fiance_data["净资产收益率"]
bj['流动比率'] = fiance_data["总资产报酬率"]
bj['速动比率'] = fiance_data["速动比率"]
bj['应收账款周转率'] = fiance_data["应收账款周转率"]
bj['总资产周转率'] = fiance_data["总资产周转率"]
bj['资产负债率'] = fiance_data["资产负债率"]
bj['经营性净现金流/流动负债'] = fiance_data["经营性净现金流/流动负债"]
# bj['劳动仲裁'] =
# bj['开庭公告(案由为劳动争议)'] =
bj['社会保险'] = wj['公司缴纳的社会保险种类']
bj['死亡数量'] = '0' if (wj['2022年公司员工因公死亡数量'] or 0) == 0 else '1及以上'
bj['工伤数量'] = '0' if (wj['2022年公司员工工伤数量'] or 0) == 0 else '1及以上'
# bj['工伤数量'] = wj['2022年公司员工工伤数量'] or 0
# bj['资质证书数量'] =
# bj['历史经营异常'] =
# bj['自身合同违约次数'] =
# bj['开庭公告(案由为合同纠纷)'] =
# bj['双随机抽查结果'] =
# bj['食品安全'] =
# bj['假冒化妆品'] =
bj['投诉率'] = wj["2022年公司被客户投诉次数"] / wj['2022年公司提供服务次数'] * 100
# bj['股权质押比例'] =
# bj['自身违约次数'] = wj['2020~2022年公司信贷、债券、非标融资违约次数']
bj['自身违约次数'] = '0' if (wj['2020~2022年公司信贷、债券、非标融资违约次数'] or 0) == 0 else '1及以上'
bj['自身违约金额'] = '0' if wj['2020~2022年公司信贷、债券、非标融资违约金额'] == 0 else '不为0'
# bj['破产重整'] =
# bj['司法拍卖'] =s
bj['担保代偿比例'] = wj['2022年公司因关联方违约代偿的金额'] / wj[
'2022年公司应为关联方代偿金额为关联方提供担保且该关联方发生违约的金额'] * 100 if wj['2022年公司因关联方违约代偿的金额'] and wj[
'2022年公司应为关联方代偿金额为关联方提供担保且该关联方发生违约的金额'] else 0
bj['数据安全投入占比'] = (wj['2022年公司数据安全投入金额'] / cb['2022年末']['主营业务成本']) * 100 if wj['2022年公司数据安全投入金额'] and cb['2022年末']['主营业务成本'] else 0
# bj['供应商实收资本'] =
# bj['专利信息'] =
# bj['知产出质'] =
# bj['纳税信用等级'] =
# bj['海关信用等级'] =
# bj['税收违法'] =
# bj['欠税公告'] =
# bj['行政许可数量'] =
# bj['行政处罚数量'] =
# bj['非正常户'] =
# bj['经营异常(公示信息隐瞒真实情况/弄虚作假、登记的住所/经营场所无法联系企业、未在规定期限公示年度报告、未按规定公示企业信息、未在登记所从事经营活动、商事主体名称不适宜、其他原因)'] =
# bj['严重违法']
bj['黑名单'] = wj['公司是否曾被纳入黑名单']
# bj['环保处罚']
bj['近三年信用修复次数'] = '0且未被纳入黑名单' if not wj['近三年公司信用修复次数'] else str(
wj['近三年公司信用修复次数'])
# bj['立案信息']
# bj['终本案件']
# bj['失信被执行人']
# bj['被执行人']
# bj['限制高消费']
# bj['股权冻结']
# bj['限制出境']
bj['国家级和省级荣誉数量'] = wj["公司获得的国家级荣誉数量"] + wj["公司获得的省级荣誉数量"]
bj["是否提供征信报告"] = ""
bj["财务数据是否经过审计"] = cb['2022年末']["数据是否经过审计"] if cb['2022年末']["数据是否经过审计"] else ""
bj["企业提供的数据数量/应提供数据数量小于90%或是财务数据填报缺少"] = ""
bj["关联交易/营业收入"] = wj["2022年公司关联交易金额"] / cb['2022年末']['营业收入']
bj["公司股东或关联方给予的资金支持金额/流动负债"] = wj["2022年公司股东或关联方给予公司的资金支持金额"] / \
cb["2022年末"]["流动负债"]
return bj
def cal_tiaozhengxiang(bj_data: {}):
scope_dic = {}
num = bj_data["国家级和省级荣誉数量"]
scope = 0
if num == 2:
scope = 3
if num == 3:
scope = 4
if num > 3:
scope = 5
scope_dic['国家级和省级荣誉数量'] = {'value': num, 'scope': scope}
scope_dic['是否提供征信报告'] = {'value': bj_data['是否提供征信报告'],
'scope': 0 if bj_data['是否提供征信报告'] == '' else -2}
scope_dic['财务数据是否经过审计'] = {'value': bj_data['财务数据是否经过审计'],
'scope': 0 if bj_data['财务数据是否经过审计'] == '' else -1}
scope_dic['企业提供的数据数量/应提供数据数量小于90%或是财务数据填报缺少'] = {
'value': bj_data['企业提供的数据数量/应提供数据数量小于90%或是财务数据填报缺少'],
'scope': 0 if bj_data['企业提供的数据数量/应提供数据数量小于90%或是财务数据填报缺少'] == '' else -2}
scope2 = 0
if bj_data['关联交易/营业收入'] >= 0.5:
scope2 = 2
elif bj_data['关联交易/营业收入'] >= 0.3:
scope2 = 1
scope_dic['关联交易/营业收入'] = {'value': bj_data['关联交易/营业收入'], 'scope': scope2}
scope3 = 0
if bj_data['公司股东或关联方给予的资金支持金额/流动负债'] >= 0.7:
scope3 = 3
elif bj_data['公司股东或关联方给予的资金支持金额/流动负债'] >= 0.5:
scope3 = 2
elif bj_data['公司股东或关联方给予的资金支持金额/流动负债'] >= 0.3:
scope3 = 1
scope_dic['公司股东或关联方给予的资金支持金额/流动负债'] = {'value': bj_data['关联交易/营业收入'], 'scope': scope3}
return scope_dic
def fiance_index_cal_bj(excel_data: {}):
cb = excel_data['财报数据']
cal_data = {
'净利润': cb['2022年末']['净利润'],
'利润总额': cb['2022年末']['利润总额'],
'存货': cb['2022年末']['存货'],
'期初净资产余额': cb['2021年末']['净资产'],
'期初应收票据及应收账款净额': cb['2021年末']['应收票据'] + cb['2021年末']['应收账款'],
'期末净资产余额': cb['2022年末']['净资产'],
'期末应收票据及应收账款净额': cb['2022年末']['应收票据'] + cb['2022年末']['应收账款'],
'期末资产总额': cb['2022年末']['总资产'],
'流动负债': cb['2022年末']['流动负债'],
'流动资产': cb['2022年末']['流动资产'],
'经营性现金净流': cb['2022年末']['经营性净现金流'],
'营业成本': cb['2022年末']['主营业务成本'],
'营业收入': cb['2022年末']['营业收入'],
'计入财务费用的利息支出': cb['2022年末']['计入财务费用的利息支出'],
'负债总额': cb['2022年末']['总负债'],
'资产总额': cb['2022年末']['总资产'],
'期初资产总额': cb['2022年末']['总资产'],
'预付账款': cb['2022年末']['预付账款']
}
res = bj_finance_cal_interface(cal_data)
data = {k: v for k, v in res['content'].items() if v is not None}
return data