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
|