This commit is contained in:
王思川 2022-05-25 17:12:15 +08:00
parent 9f6564f9f7
commit 5d3031ed44
2 changed files with 33 additions and 20 deletions

View File

@ -1,38 +1,51 @@
import xlrd import xlrd
from Modules.Company.CompanyObject import BasicBusinessInfo from Modules.Company.CompanyObject import BasicBusinessInfo
from Modules.Company.CompanyUtils import CommonUtils, ExcelSheetParser from Modules.Company.CompanyUtils import CommonUtils, ExcelSheetParser, ExcelParserUtil
from Utils.ObjUtil import SpecObject
class BasicBusinessInfoImpl(BasicBusinessInfo): class BasicBusinessInfoImpl(object):
def parse_excel_and_create_company(self, file): def parse_excel_and_create_company(self, file):
"""""" """"""
work_book = xlrd.open_workbook(file_contents=file.read()) work_book = xlrd.open_workbook(file_contents=file.read())
basic_business_info = BasicBusinessInfo()
for sheet in work_book.sheets(): for sheet in work_book.sheets():
if sheet.name == '企业信息': if sheet.name == '企业信息':
data = ExcelSheetParser(sheet=sheet).parse_sheet1() data = ExcelSheetParser(sheet=sheet).parse_sheet1()
# 特殊处理
data['参保人数'] = int(data['参保人数']) data['参保人数'] = int(data['参保人数'])
basic_business_info = SpecObject.dict_to_set(instance=BasicBusinessInfo, data=data)
self.dict_to_set(instance=BasicBusinessInfo, 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:
# 特殊处理
item['出生日期'] = ExcelParserUtil.parse_date(item['出生日期'])
executive = SpecObject.dict_to_set(
instance=BasicBusinessInfo.ExecutiveInformation,
data=item
)
basic_business_info.executive_information.append(executive)
for item in shareholders:
shareholder = SpecObject.dict_to_set(
instance=BasicBusinessInfo.ShareholderInformation,
data=item
)
basic_business_info.shareholder_information.append(shareholder)
pass
# elif sheet.name == '高管股东信息':
# data1, data2 = parse_gua_sheet2(sheet)
# for i in data1:
# i['企业名称'] = company
# if cid:
# i['cid'] = cid
# col_2.update_one({"高管姓名": i['姓名'], "企业名称": i['企业名称']}, {"$set": i}, upsert=True)
# for i in data2:
# i['企业名称'] = company
# if cid:
# i['cid'] = cid
# col_3.update_one({"股东名称": i['股东名称'], "企业名称": i['企业名称']}, {"$set": i}, upsert=True)
#
# elif sheet.name == '经营情况': # elif sheet.name == '经营情况':
# data = parse_gua_sheet3(sheet) # data = parse_gua_sheet3(sheet)
# for i in data: # for i in data:

View File

@ -24,7 +24,7 @@ class BasicBusinessInfo(SpecObject):
name = ValidateAttr(field="name", type=str) name = ValidateAttr(field="name", type=str)
position = ValidateAttr(field="position", type=str) position = ValidateAttr(field="position", type=str)
education = ValidateAttr(field="education", type=str) education = ValidateAttr(field="education", type=str)
birth_data = ValidateAttr(field="birth_data", func=Validate.date_format) birth_data = ValidateAttr(field="birth_data", type=str)
political_status = ValidateAttr(field="political_status", type=str) political_status = ValidateAttr(field="political_status", type=str)
industry_experience = ValidateAttr(field="industry_experience", type=[str, float, int]) industry_experience = ValidateAttr(field="industry_experience", type=[str, float, int])
@ -58,8 +58,8 @@ class BasicBusinessInfo(SpecObject):
company_positioning = ValidateAttr(field="company_positioning", type=str) company_positioning = ValidateAttr(field="company_positioning", type=str)
legal_representative = ValidateAttr(field="legal_representative", type=str) legal_representative = ValidateAttr(field="legal_representative", type=str)
the_actual_controller = ValidateAttr(field="the_actual_controller", type=str) the_actual_controller = ValidateAttr(field="the_actual_controller", type=str)
shareholder_information = ValidateAttr(field="shareholder_information", type=ShareholderInformation) shareholder_information = ValidateAttr(field="shareholder_information", instance_list=ShareholderInformation)
executive_information = ValidateAttr(field="executive_information", type=ExecutiveInformation) executive_information = ValidateAttr(field="executive_information", instance_list=ExecutiveInformation)
fields_map = { fields_map = {
"cid": "企业ID", "cid": "企业ID",