diff --git a/Modules/Company/CompanyImpl.py b/Modules/Company/CompanyImpl.py index 2aa2b45..412b9f7 100644 --- a/Modules/Company/CompanyImpl.py +++ b/Modules/Company/CompanyImpl.py @@ -58,14 +58,6 @@ class BasicBusinessInfoImpl(object): 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["补充数据表"] @@ -125,8 +117,11 @@ class BasicBusinessInfoImpl(object): guarantee_distribution_list.append(guarantee_distribution) elif sheet.name == '资产负债表': + items_ = ExcelSheetParser(sheet=work_book.sheets()[2]).parse_sheet3() items = ExcelSheetParser(sheet=sheet).parse_sheet7() + length = len(items) + balance_sheet = FinancialData().BalanceSheet() current_assets_dict = [item for item in balance_sheet.CurrentAssets.fields_map.values()] non_current_assets_dict = [item for item in balance_sheet.NonCurrentAssets.fields_map.values()] @@ -134,13 +129,19 @@ class BasicBusinessInfoImpl(object): non_current_liabilities_dict = [item for item in balance_sheet.NonCurrentLiabilities.fields_map.values()] owner_equity_dict = [item for item in balance_sheet.OwnerEquity.fields_map.values()] - for item in items: + for num in range(length): + year = items[num]['年度'] current_assets_dict_ = dict() non_current_assets_dict_ = dict() current_liabilities_dict_ = dict() non_current_liabilities_dict_ = dict() owner_equity_dict_ = dict() - for key, value in item.items(): + balance = items_[num]['资产负债表'] + for k, v in balance.items(): + if v: + items[num][k] = v + + for key, value in items[num].items(): if key in current_assets_dict: current_assets_dict_[key] = value elif key in non_current_assets_dict: @@ -174,19 +175,29 @@ class BasicBusinessInfoImpl(object): ) for financial in financial_data_list: - if item['年度'] == financial.report_period: + if year == financial.report_period: financial.balance_sheet = balance_sheet elif sheet.name == '利润表': + items_ = ExcelSheetParser(sheet=work_book.sheets()[2]).parse_sheet3() items = ExcelSheetParser(sheet=sheet).parse_sheet8() - for item in items: - year = item['年度'] - item.pop('年度') + length = len(items) + + for num in range(length): + year = items[num]['年度'] + items[num].pop('年度') + income = items_[num]['利润表'] + income['营业总收入'] = income['营业收入'] + income.pop('营业收入') + for k, v in income.items(): + if v: + items[num][k] = v income_sheet = SpecObject.set_specify_instance( instance=FinancialData.IncomeSheet, - data=item + data=items[num] ) + for financial in financial_data_list: if year == financial.report_period: financial.income_sheet = income_sheet diff --git a/Modules/Company/CompanyUtils.py b/Modules/Company/CompanyUtils.py index 7806cb6..aac2935 100644 --- a/Modules/Company/CompanyUtils.py +++ b/Modules/Company/CompanyUtils.py @@ -135,9 +135,9 @@ class ExcelSheetParser(object): # 报告期 parsed_data["报告期"] = list_1[0] # 资产负债表 - # parsed_data["资产负债表"] = json.loads(json.dumps(dict(zip(cols_tag[43:67], list_1[43:67])))) + parsed_data["资产负债表"] = json.loads(json.dumps(dict(zip(cols_tag[43:67], list_1[43:67])))) # 利润表 - # parsed_data["利润表"] = json.loads(json.dumps(dict(zip(cols_tag[28:43], list_1[28:43])))) + parsed_data["利润表"] = json.loads(json.dumps(dict(zip(cols_tag[28:43], list_1[28:43])))) # 补充数据表 parsed_data["补充数据表"] = json.loads(json.dumps(dict(zip(cols_tag[1:28], list_1[1:28])))) return_data.append(parsed_data)