diff --git a/Modules/Company/CompanyImpl.py b/Modules/Company/CompanyImpl.py index daa2d50..1c0df9d 100644 --- a/Modules/Company/CompanyImpl.py +++ b/Modules/Company/CompanyImpl.py @@ -1,38 +1,51 @@ import xlrd 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): """""" work_book = xlrd.open_workbook(file_contents=file.read()) + basic_business_info = BasicBusinessInfo() + for sheet in work_book.sheets(): if sheet.name == '企业信息': data = ExcelSheetParser(sheet=sheet).parse_sheet1() - + # 特殊处理 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 == '经营情况': # data = parse_gua_sheet3(sheet) # for i in data: diff --git a/Modules/Company/CompanyObject.py b/Modules/Company/CompanyObject.py index 92605ac..141e03a 100644 --- a/Modules/Company/CompanyObject.py +++ b/Modules/Company/CompanyObject.py @@ -24,7 +24,7 @@ class BasicBusinessInfo(SpecObject): name = ValidateAttr(field="name", type=str) position = ValidateAttr(field="position", 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) 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) legal_representative = ValidateAttr(field="legal_representative", type=str) the_actual_controller = ValidateAttr(field="the_actual_controller", type=str) - shareholder_information = ValidateAttr(field="shareholder_information", type=ShareholderInformation) - executive_information = ValidateAttr(field="executive_information", type=ExecutiveInformation) + shareholder_information = ValidateAttr(field="shareholder_information", instance_list=ShareholderInformation) + executive_information = ValidateAttr(field="executive_information", instance_list=ExecutiveInformation) fields_map = { "cid": "企业ID",