130 lines
5.5 KiB
Python
130 lines
5.5 KiB
Python
import xlrd
|
|
|
|
from DBHelper.MongoHelperInstance import DB_GUA
|
|
from Modules.Company.CompanyObject import BasicBusinessInfo, FinancialData
|
|
from Modules.Company.CompanyUtils import CommonUtils, ExcelSheetParser, ExcelParserUtil
|
|
from Utils.ObjUtil import SpecObject
|
|
|
|
|
|
class BasicBusinessInfoImpl(object):
|
|
|
|
def parse_excel_and_create_company(self, file):
|
|
""""""
|
|
|
|
new_cid = CommonUtils.make_new_cid()
|
|
work_book = xlrd.open_workbook(file_contents=file.read())
|
|
|
|
basic_business_info = BasicBusinessInfo()
|
|
financial_data_list = list()
|
|
|
|
for sheet in work_book.sheets():
|
|
|
|
if sheet.name == '企业信息':
|
|
data = ExcelSheetParser(sheet=sheet).parse_sheet1()
|
|
basic_business_info.cid = new_cid
|
|
basic_business_info.set_instance(data=data)
|
|
|
|
elif sheet.name == '高管股东信息':
|
|
executives, shareholders = ExcelSheetParser(sheet=sheet).parse_sheet2()
|
|
|
|
basic_business_info.shareholder_information = list()
|
|
basic_business_info.executive_information = list()
|
|
|
|
for item in executives:
|
|
executive = SpecObject.set_specify_instance(
|
|
instance=BasicBusinessInfo.ExecutiveInformation,
|
|
data=item
|
|
)
|
|
basic_business_info.executive_information.append(executive)
|
|
|
|
for item in shareholders:
|
|
shareholder = SpecObject.set_specify_instance(
|
|
instance=BasicBusinessInfo.ShareholderInformation,
|
|
data=item
|
|
)
|
|
basic_business_info.shareholder_information.append(shareholder)
|
|
|
|
elif sheet.name == '经营情况':
|
|
items = ExcelSheetParser(sheet=sheet).parse_sheet3()
|
|
|
|
for item in items:
|
|
financial_data = FinancialData()
|
|
financial_data.cid = new_cid
|
|
financial_data.company_name = basic_business_info.company_name
|
|
financial_data.report_period = item["报告期"]
|
|
financial_data.balance_sheet = SpecObject.set_specify_instance(
|
|
instance=FinancialData.BalanceSheet,
|
|
data=item["资产负债表"]
|
|
)
|
|
financial_data.income_sheet = SpecObject.set_specify_instance(
|
|
instance=FinancialData.IncomeSheet,
|
|
data=item["利润表"]
|
|
)
|
|
financial_data.appendix_sheet = SpecObject.set_specify_instance(
|
|
instance=FinancialData.AppendixSheet,
|
|
data=item["补充数据表"]
|
|
)
|
|
financial_data_list.append(financial_data)
|
|
|
|
pass
|
|
# elif sheet.name == '客户信息':
|
|
# data = parse_gua_sheet4(sheet)
|
|
# for i in data:
|
|
# i['担保企业'] = company
|
|
# if cid:
|
|
# i['cid'] = cid
|
|
# col_5.update_one({"年度": i['年度'], "客户名称": i['客户名称'], "担保企业": i['担保企业']}, {"$set": i}, upsert=True)
|
|
#
|
|
# elif sheet.name == '区域分布':
|
|
# data = parse_gua_sheet5(sheet)
|
|
# for i in data:
|
|
# i['担保企业'] = company
|
|
# if cid:
|
|
# i['cid'] = cid
|
|
# col_6.update_one({"年度": i['年度'], "地区": i['地区'], "担保企业": i['担保企业']}, {"$set": i}, upsert=True)
|
|
#
|
|
# elif sheet.name == '行业分布':
|
|
# data = parse_gua_sheet5(sheet)
|
|
# for i in data:
|
|
# i['担保企业'] = company
|
|
# if cid:
|
|
# i['cid'] = cid
|
|
# col_7.update_one({"年度": i['年度'], "所属行业": i['所属行业'], "担保企业": i['担保企业']}, {"$set": i}, upsert=True)
|
|
#
|
|
# elif sheet.name == '担保金额分布':
|
|
# data = parse_gua_sheet6(sheet)
|
|
# for i in data:
|
|
# i['担保企业'] = company
|
|
# if cid:
|
|
# i['cid'] = cid
|
|
# col_8.update_one({"年度": i['年度'], "担保企业": i['担保企业']}, {"$set": i}, upsert=True)
|
|
#
|
|
# elif sheet.name == '资产负债表':
|
|
# data = parse_gua_sheet7(sheet)
|
|
# for i in data:
|
|
# i['企业名称'] = company
|
|
# if cid:
|
|
# i['cid'] = cid
|
|
# col_9.update_one({"年度": i['年度'], "企业名称": i['企业名称']}, {"$set": i}, upsert=True)
|
|
#
|
|
# elif sheet.name == '利润表':
|
|
# data = parse_gua_sheet8(sheet)
|
|
# for i in data:
|
|
# i['企业名称'] = company
|
|
# if cid:
|
|
# i['cid'] = cid
|
|
# col_10.update_one({"年度": i['年度'], "企业名称": i['企业名称']}, {"$set": i}, upsert=True)
|
|
|
|
DB_GUA.insert_single_data(
|
|
"企业数据",
|
|
"工商信息",
|
|
basic_business_info.fields_toggle()
|
|
)
|
|
|
|
for item in financial_data_list:
|
|
DB_GUA.insert_single_data(
|
|
"企业数据",
|
|
"财务数据",
|
|
item.fields_toggle()
|
|
)
|