mns-scheduler 1.1.5.3__tar.gz → 1.1.5.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mns-scheduler might be problematic. Click here for more details.
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/PKG-INFO +1 -1
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/base/sync_company_base_info_api.py +6 -1
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/finance/sync_financial_report_service_api.py +41 -3
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/hk/hk_company_info_sync_service_api.py +1 -1
- mns_scheduler-1.1.5.6/mns_scheduler/hk/hk_industry_info_sync_service_api.py +69 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +5 -20
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py +2 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zz_task/data_sync_task.py +14 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler.egg-info/PKG-INFO +1 -1
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler.egg-info/SOURCES.txt +1 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/setup.py +1 -1
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/README.md +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/2014-2015-test/2014_2015_chg_statistics.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/2014-2015-test/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/big_deal/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/big_deal/ths_big_deal_sync.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/base/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/clean/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/clean/company_info_clean_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/constant/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/constant/company_constant_data.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/de_list_stock/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/de_list_stock/de_list_stock_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/remark/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/remark/company_remark_info_sync.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/clean/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/clean/kpl_concept_clean_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/clean/ths_concept_clean_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/common/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/detaill/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/sync_new_index/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/update_concept_info/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/db/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/db/col_move_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/db/db_status.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/db/real_time_task_check.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/db/script/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/db/script/col_move_script.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/debt/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/debt/kzz_bond_info_sync.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/dt/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/dt/stock_dt_pool_sync.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/finance/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/finance/em_financial_profit_sync_service_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/finance/finance_common_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/hk/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/irm/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/irm/api/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/irm/stock_irm_cninfo_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/daily/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/daily/daily_k_line_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/k_line_info_clean_task.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/week_month/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/hot_stocks/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/sync/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/sync/bfq_k_line_sync.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/sync/daily_week_month_line_sync.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/test/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/test/k_line_info_clean_his_data.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/index/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/index/sync_best_choose_index.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/symbol/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/total/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/lhb/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/lhb/stock_lhb_sync_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/open/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/open/sync_one_day_open_data_to_db_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/compliance/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/financial/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/financial/annual_report_audit_check_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/financial/net_assets_check_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/financial/profit_income_check_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/financial_report_risk_check_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/major_violations/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/self/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/self/wei_pan_stock_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/test/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/test/fix_blask_list.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/transactions/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/transactions/transactions_check_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/self_choose/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/self_choose/ths_self_choose_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/trade/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/trade/auto_ipo_buy_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/trade/auto_login/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/trade/auto_login/trader_auto_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/trade/auto_sell_service_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/trade/sync_position_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/trade/task/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/trade/task/trader_task_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zb/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zb/stock_zb_pool_sync.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/connected_boards/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/export/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/export/export_kcx_high_chg_open_data_to_excel.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/high_chg/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/open_data/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/script/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/script/sync_now_higt_chg_zt.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/zt_pool/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zz_task/__init__.py +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler.egg-info/dependency_links.txt +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler.egg-info/top_level.txt +0 -0
- {mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/setup.cfg +0 -0
|
@@ -401,7 +401,12 @@ def get_recent_year_income(symbol, company_info_type, exist_company_df):
|
|
|
401
401
|
em_stock_profit = mongodb_util.descend_query(query, db_name_constant.EM_STOCK_PROFIT, 'REPORT_DATE', 1)
|
|
402
402
|
if data_frame_util.is_not_empty(em_stock_profit):
|
|
403
403
|
company_info_type['operate_profit'] = list(em_stock_profit['OPERATE_PROFIT'])[0]
|
|
404
|
-
|
|
404
|
+
total_operate_income = list(em_stock_profit['TOTAL_OPERATE_INCOME'])[0]
|
|
405
|
+
# 金融机构大多收入计入在这个字段中
|
|
406
|
+
if total_operate_income == 0:
|
|
407
|
+
total_operate_income = list(em_stock_profit['OPERATE_INCOME'])[0]
|
|
408
|
+
|
|
409
|
+
company_info_type['total_operate_income'] = total_operate_income
|
|
405
410
|
else:
|
|
406
411
|
company_info_type['operate_profit'] = 0
|
|
407
412
|
company_info_type['total_operate_income'] = 0
|
|
@@ -17,6 +17,7 @@ import mns_scheduler.risk.financial_report_risk_check_api as financial_report_ri
|
|
|
17
17
|
import mns_common.utils.data_frame_util as data_frame_util
|
|
18
18
|
import mns_scheduler.finance.finance_common_api as finance_common_api
|
|
19
19
|
import mns_scheduler.risk.compliance.undisclosed_annual_report_api as undisclosed_annual_report_api
|
|
20
|
+
|
|
20
21
|
mongodb_util = MongodbUtil('27017')
|
|
21
22
|
|
|
22
23
|
|
|
@@ -58,6 +59,10 @@ def sync_financial_report():
|
|
|
58
59
|
period_time = str(now_year) + "-09-30 00:00:00"
|
|
59
60
|
sync_profit_report(period_time, sync_time, period)
|
|
60
61
|
sync_asset_liability_report(period_time, sync_time, period)
|
|
62
|
+
else:
|
|
63
|
+
|
|
64
|
+
sync_miss_report(sync_time)
|
|
65
|
+
|
|
61
66
|
# 未出报告check
|
|
62
67
|
undisclosed_annual_report_api.un_disclosed_report_check(sync_time, now_year, period, period_time)
|
|
63
68
|
|
|
@@ -82,7 +87,7 @@ def sync_asset_liability_report(period_time, sync_time, period):
|
|
|
82
87
|
|
|
83
88
|
# 年报审核
|
|
84
89
|
financial_report_risk_check_api.financial_report_check(new_asset_df, period_time, period,
|
|
85
|
-
|
|
90
|
+
db_name_constant.EM_STOCK_ASSET_LIABILITY)
|
|
86
91
|
|
|
87
92
|
except Exception as e:
|
|
88
93
|
logger.error("同步资产表异常:{},{},{}", symbol, period_time, e)
|
|
@@ -104,10 +109,43 @@ def sync_profit_report(period_time, sync_time, period):
|
|
|
104
109
|
|
|
105
110
|
# 年报审核
|
|
106
111
|
financial_report_risk_check_api.financial_report_check(new_profit_df, period_time,
|
|
107
|
-
|
|
112
|
+
period, db_name_constant.EM_STOCK_PROFIT)
|
|
108
113
|
except Exception as e:
|
|
109
114
|
logger.error("同步利润表异常:{},{},{}", symbol, period_time, e)
|
|
110
115
|
|
|
111
116
|
|
|
117
|
+
def sync_miss_report(sync_time):
|
|
118
|
+
query = {"total_operate_income": 0}
|
|
119
|
+
un_report_company_info = mongodb_util.find_query_data(db_name_constant.COMPANY_INFO, query)
|
|
120
|
+
for un_report_one in un_report_company_info.itertuples():
|
|
121
|
+
try:
|
|
122
|
+
symbol = un_report_one.symbol
|
|
123
|
+
new_profit_df = em_financial_profit_sync_service_api.get_em_profit_api(symbol)
|
|
124
|
+
if data_frame_util.is_empty(new_profit_df):
|
|
125
|
+
continue
|
|
126
|
+
new_profit_df['sync_time'] = sync_time
|
|
127
|
+
|
|
128
|
+
new_profit_df['symbol'] = symbol
|
|
129
|
+
mongodb_util.insert_mongo(new_profit_df, db_name_constant.EM_STOCK_PROFIT)
|
|
130
|
+
|
|
131
|
+
new_asset_df = em_financial_asset_liability_sync_service_api.get_em_asset_liability_api(symbol)
|
|
132
|
+
# 负债比
|
|
133
|
+
new_asset_df['liability_ratio'] = round(
|
|
134
|
+
new_asset_df['TOTAL_LIABILITIES'] * 100 / new_asset_df['TOTAL_ASSETS'],
|
|
135
|
+
2)
|
|
136
|
+
new_asset_df['sync_time'] = sync_time
|
|
137
|
+
if data_frame_util.is_empty(new_asset_df):
|
|
138
|
+
continue
|
|
139
|
+
new_asset_df['symbol'] = symbol
|
|
140
|
+
mongodb_util.insert_mongo(new_asset_df, db_name_constant.EM_STOCK_ASSET_LIABILITY)
|
|
141
|
+
|
|
142
|
+
except Exception as e:
|
|
143
|
+
logger.error("同步财报补偿任务异常:{},{},{}", symbol, e)
|
|
144
|
+
|
|
145
|
+
|
|
112
146
|
if __name__ == '__main__':
|
|
113
|
-
|
|
147
|
+
now_date = datetime.now()
|
|
148
|
+
now_year = now_date.year
|
|
149
|
+
now_month = now_date.month
|
|
150
|
+
sync_time_test = now_date.strftime('%Y-%m-%d %H:%M:%S')
|
|
151
|
+
sync_miss_report(sync_time_test)
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/hk/hk_company_info_sync_service_api.py
RENAMED
|
@@ -63,7 +63,7 @@ def sync_hk_company_info():
|
|
|
63
63
|
hk_real_time_df['_id'] = hk_real_time_df['symbol']
|
|
64
64
|
|
|
65
65
|
hk_real_time_df.fillna(0, inplace=True)
|
|
66
|
-
|
|
66
|
+
mongodb_util.remove_all_data(db_name_constant.COMPANY_INFO_HK)
|
|
67
67
|
mongodb_util.save_mongo(hk_real_time_df, db_name_constant.COMPANY_INFO_HK)
|
|
68
68
|
|
|
69
69
|
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
file_path = os.path.abspath(__file__)
|
|
5
|
+
end = file_path.index('mns') + 16
|
|
6
|
+
project_path = file_path[0:end]
|
|
7
|
+
sys.path.append(project_path)
|
|
8
|
+
|
|
9
|
+
import mns_common.api.em.east_money_stock_hk_api as east_money_stock_hk_api
|
|
10
|
+
import akshare as ak
|
|
11
|
+
import mns_common.constant.db_name_constant as db_name_constant
|
|
12
|
+
from mns_common.db.MongodbUtil import MongodbUtil
|
|
13
|
+
from functools import lru_cache
|
|
14
|
+
import mns_common.component.common_service_fun_api as common_service_fun_api
|
|
15
|
+
import mns_common.component.zt.zt_common_service_api as zt_common_service_api
|
|
16
|
+
|
|
17
|
+
mongodb_util = MongodbUtil('27017')
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# 获取陆股通的列表
|
|
21
|
+
@lru_cache(maxsize=None)
|
|
22
|
+
def get_hk_ggt_component():
|
|
23
|
+
stock_hk_ggt_components_em_df = ak.stock_hk_ggt_components_em()
|
|
24
|
+
stock_hk_ggt_components_em_df = stock_hk_ggt_components_em_df.rename(columns={
|
|
25
|
+
"序号": "index",
|
|
26
|
+
"代码": "symbol",
|
|
27
|
+
"名称": "name"
|
|
28
|
+
})
|
|
29
|
+
return stock_hk_ggt_components_em_df
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# 获取em cookie
|
|
33
|
+
@lru_cache(maxsize=None)
|
|
34
|
+
def get_em_cookie():
|
|
35
|
+
query = {"type": "em_cookie"}
|
|
36
|
+
stock_account_info = mongodb_util.find_query_data(db_name_constant.STOCK_ACCOUNT_INFO, query)
|
|
37
|
+
cookie = list(stock_account_info['cookie'])[0]
|
|
38
|
+
return cookie
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def sync_hk_company_industry():
|
|
42
|
+
cookie = get_em_cookie()
|
|
43
|
+
hk_real_time_df = east_money_stock_hk_api.hk_real_time_quotes(cookie)
|
|
44
|
+
|
|
45
|
+
hk_real_time_df = hk_real_time_df[[
|
|
46
|
+
"symbol",
|
|
47
|
+
"name",
|
|
48
|
+
"chg",
|
|
49
|
+
"total_mv",
|
|
50
|
+
"flow_mv",
|
|
51
|
+
"list_date",
|
|
52
|
+
"industry",
|
|
53
|
+
"amount",
|
|
54
|
+
"now_price"
|
|
55
|
+
]]
|
|
56
|
+
hk_real_time_df = hk_real_time_df.loc[(hk_real_time_df['total_mv'] != '-')]
|
|
57
|
+
hk_real_time_df['total_mv'] = hk_real_time_df['total_mv'].astype(float)
|
|
58
|
+
hk_real_time_df['flow_mv'] = hk_real_time_df['flow_mv'].astype(float)
|
|
59
|
+
hk_real_time_df = hk_real_time_df.loc[hk_real_time_df['total_mv'] != 0]
|
|
60
|
+
|
|
61
|
+
hk_real_time_df.loc[hk_real_time_df['industry'] == '-', 'industry'] = '其他'
|
|
62
|
+
|
|
63
|
+
group_industry_df = zt_common_service_api.group_by_industry(hk_real_time_df, 'industry')
|
|
64
|
+
group_industry_df['_id'] = group_industry_df['industry']
|
|
65
|
+
mongodb_util.remove_all_data(db_name_constant.HK_COMPANY_INDUSTRY)
|
|
66
|
+
mongodb_util.save_mongo(group_industry_df, db_name_constant.HK_COMPANY_INDUSTRY)
|
|
67
|
+
|
|
68
|
+
if __name__ == '__main__':
|
|
69
|
+
sync_hk_company_industry()
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py
RENAMED
|
@@ -16,6 +16,7 @@ from loguru import logger
|
|
|
16
16
|
import mns_common.utils.data_frame_util as data_frame_util
|
|
17
17
|
import mns_common.component.common_service_fun_api as common_service_fun_api
|
|
18
18
|
import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
|
|
19
|
+
import mns_common.api.ths.zt.ths_stock_zt_pool_v2_api as ths_stock_zt_pool_v2_api
|
|
19
20
|
|
|
20
21
|
'''
|
|
21
22
|
东方财富涨停池
|
|
@@ -37,8 +38,8 @@ ZT_FIELD = ['_id', 'symbol', 'name', 'now_price', 'chg', 'first_closure_time',
|
|
|
37
38
|
'ths_concept_code', 'ths_concept_sync_day', 'em_industry',
|
|
38
39
|
'mv_circulation_ratio', 'ths_concept_list_info', 'kpl_plate_name',
|
|
39
40
|
'kpl_plate_list_info', 'company_type', 'diff_days', 'symbol', 'amount',
|
|
40
|
-
'
|
|
41
|
-
'exchange', '
|
|
41
|
+
'list_date',
|
|
42
|
+
'exchange', 'flow_mv', 'total_mv',
|
|
42
43
|
'classification', 'flow_mv_sp', 'total_mv_sp', 'flow_mv_level',
|
|
43
44
|
'amount_level', 'new_stock', 'list_date_01', 'index', 'str_day']
|
|
44
45
|
|
|
@@ -59,7 +60,7 @@ def save_zt_info(str_day):
|
|
|
59
60
|
stock_em_zt_pool_df_data = company_common_service_api.amendment_industry(stock_em_zt_pool_df_data)
|
|
60
61
|
try:
|
|
61
62
|
# 同花顺问财涨停池
|
|
62
|
-
ths_zt_pool_df_data =
|
|
63
|
+
ths_zt_pool_df_data = ths_stock_zt_pool_v2_api.get_ths_stock_zt_reason_with_cache(str_day)
|
|
63
64
|
|
|
64
65
|
# del stock_em_zt_pool_df_data['ths_concept_name']
|
|
65
66
|
# del stock_em_zt_pool_df_data['ths_concept_code']
|
|
@@ -74,22 +75,6 @@ def save_zt_info(str_day):
|
|
|
74
75
|
continue
|
|
75
76
|
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_reason'] = \
|
|
76
77
|
list(ths_zt_pool_one_df['zt_reason'])[0]
|
|
77
|
-
|
|
78
|
-
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'quantity_ratio'] = \
|
|
79
|
-
list(ths_zt_pool_one_df['quantity_ratio'])[0]
|
|
80
|
-
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'high'] = \
|
|
81
|
-
list(ths_zt_pool_one_df['high'])[0]
|
|
82
|
-
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'low'] = \
|
|
83
|
-
list(ths_zt_pool_one_df['low'])[0]
|
|
84
|
-
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'open'] = \
|
|
85
|
-
list(ths_zt_pool_one_df['open'])[0]
|
|
86
|
-
|
|
87
|
-
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'wei_bi'] = \
|
|
88
|
-
list(ths_zt_pool_one_df['wei_bi'])[0]
|
|
89
|
-
|
|
90
|
-
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'buy_1_num'] = \
|
|
91
|
-
list(ths_zt_pool_one_df['buy_1_num'])[0]
|
|
92
|
-
|
|
93
78
|
except BaseException as e:
|
|
94
79
|
logger.error("出现异常:{}", e)
|
|
95
80
|
except BaseException as e:
|
|
@@ -132,7 +117,7 @@ def save_zt_info(str_day):
|
|
|
132
117
|
|
|
133
118
|
|
|
134
119
|
if __name__ == '__main__':
|
|
135
|
-
save_zt_info('2024-
|
|
120
|
+
save_zt_info('2024-09-30')
|
|
136
121
|
# from datetime import datetime
|
|
137
122
|
#
|
|
138
123
|
# if __name__ == '__main__':
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py
RENAMED
|
@@ -230,6 +230,8 @@ if __name__ == '__main__':
|
|
|
230
230
|
# trade_date = '2024-08-01'
|
|
231
231
|
# zt_df = ths_zt_pool(trade_date, None)
|
|
232
232
|
# save_ths_zt_pool(zt_df, trade_date)
|
|
233
|
+
trade_date = '2024-09-30'
|
|
234
|
+
zt_df = ths_zt_pool(trade_date, None)
|
|
233
235
|
|
|
234
236
|
query = {"$and": [{'_id': {"$gte": '2013-07-04'}}, {'_id': {"$lte": '2015-04-30'}}]}
|
|
235
237
|
# query = {"$and": [{'_id': {"$gte": '2024-07-24'}}, {'_id': {"$lte": '2024-08-01'}}]}
|
|
@@ -52,6 +52,8 @@ import mns_scheduler.db.real_time_task_check as real_time_task_check_api
|
|
|
52
52
|
import mns_scheduler.trade.task.trader_task_service as trader_task_service
|
|
53
53
|
import mns_scheduler.company_info.remark.company_remark_info_sync as company_remark_info_sync
|
|
54
54
|
import mns_scheduler.finance.sync_financial_report_service_api as sync_financial_report_service_api
|
|
55
|
+
import mns_scheduler.hk.hk_industry_info_sync_service_api as hk_industry_info_sync_service_api
|
|
56
|
+
import mns_scheduler.hk.hk_company_info_sync_service_api as hk_company_info_sync_service_api
|
|
55
57
|
|
|
56
58
|
|
|
57
59
|
# 同步交易日期任务完成
|
|
@@ -374,6 +376,14 @@ def sync_financial_report_task():
|
|
|
374
376
|
sync_financial_report_service_api.sync_financial_report()
|
|
375
377
|
|
|
376
378
|
|
|
379
|
+
# 同步hk公司信息
|
|
380
|
+
def sync_hk_company_industry_info():
|
|
381
|
+
# 同步所有港股信息
|
|
382
|
+
hk_company_info_sync_service_api.sync_hk_company_info()
|
|
383
|
+
# 同步所有港股行业信息
|
|
384
|
+
hk_industry_info_sync_service_api.sync_hk_company_industry()
|
|
385
|
+
|
|
386
|
+
|
|
377
387
|
# # 定义BlockingScheduler
|
|
378
388
|
blockingScheduler = BlockingScheduler()
|
|
379
389
|
# sync_trade_date 同步交易日期
|
|
@@ -465,6 +475,10 @@ blockingScheduler.add_job(sync_company_remark_info, 'cron', hour='22', minute='3
|
|
|
465
475
|
blockingScheduler.add_job(self_choose_stock_task, 'cron', hour='17,22', minute='30')
|
|
466
476
|
# 同步财务报表任务
|
|
467
477
|
blockingScheduler.add_job(sync_financial_report_task, 'cron', hour='17', minute='30')
|
|
478
|
+
|
|
479
|
+
# 同步港股公司和行业信息
|
|
480
|
+
blockingScheduler.add_job(sync_hk_company_industry_info, 'cron', hour='09,19', minute='10')
|
|
481
|
+
|
|
468
482
|
print('定时任务启动成功')
|
|
469
483
|
blockingScheduler.start()
|
|
470
484
|
#
|
|
@@ -52,6 +52,7 @@ mns_scheduler/finance/finance_common_api.py
|
|
|
52
52
|
mns_scheduler/finance/sync_financial_report_service_api.py
|
|
53
53
|
mns_scheduler/hk/__init__.py
|
|
54
54
|
mns_scheduler/hk/hk_company_info_sync_service_api.py
|
|
55
|
+
mns_scheduler/hk/hk_industry_info_sync_service_api.py
|
|
55
56
|
mns_scheduler/irm/__init__.py
|
|
56
57
|
mns_scheduler/irm/stock_irm_cninfo_service.py
|
|
57
58
|
mns_scheduler/irm/api/__init__.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/clean/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/constant/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/de_list_stock/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/company_info/remark/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/clean/kpl_concept_clean_api.py
RENAMED
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/clean/ths_concept_clean_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/common/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/detaill/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/concept/ths/sync_new_index/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py
RENAMED
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py
RENAMED
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/irm/stock_irm_cninfo_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/daily/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py
RENAMED
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/k_line_info_clean_task.py
RENAMED
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/clean/week_month/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/k_line/sync/bfq_k_line_sync.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/index/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/symbol/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/kpl/selection/total/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/financial/net_assets_check_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/major_violations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/risk/self/wei_pan_stock_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/self_choose/ths_self_choose_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/trade/auto_sell_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/trade/task/trader_task_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/connected_boards/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.1.5.3 → mns_scheduler-1.1.5.6}/mns_scheduler/zt/script/sync_now_higt_chg_zt.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|