mns-scheduler 1.4.7.4__tar.gz → 1.4.8.5__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.
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/PKG-INFO +1 -1
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py +1 -1
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/clean/ths_concept_clean_api.py +62 -19
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/remote_data_sync_to_local.py +4 -5
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/sync_financial_report_service_task.py +15 -14
- mns_scheduler-1.4.7.4/mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py → mns_scheduler-1.4.8.5/mns_scheduler/finance/xue_qiu/sync_xue_qiu_finance_data.py +17 -7
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/theme/kpl_theme_sync_service.py +4 -2
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/tfp/stock_tfp_info_sync.py +27 -6
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zb/stock_zb_pool_sync.py +1 -1
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zz_task/data_sync_task.py +9 -7
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler.egg-info/PKG-INFO +1 -1
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler.egg-info/SOURCES.txt +1 -1
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/setup.py +1 -1
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/README.md +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/auto_da_ban/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/auto_da_ban/auto_da_ban_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/clean/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/clean/company_info_clean_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/common/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/common/company_common_query_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/constant/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/constant/company_constant_data.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/de_list_stock/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/de_list_stock/de_list_stock_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/em_stock_info/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/em_stock_info/clean_em_us_hk_stock_info.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/sync/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/sync/company_info_set_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/sync/sync_company_info_task.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_announce_info_task.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_base_info_task.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_business_info_task.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_hold_info_task.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_industry_info_task.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_total_task.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/clean/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/clean/kpl_concept_clean_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/common/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/detaill/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/sync_new_index/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/update_concept_info/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/col_move_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/db_status.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/col_move_script.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/db_move/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/db_move/col_move_one_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/local_mongo_util.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/remote_mongo_util.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/sync_hui_ce_test_data.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/sync_hui_ce_test_data_01.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/update/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/update/update_col_field.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/dt/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/dt/stock_dt_pool_sync.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/em/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/em/em_financial_asset_liability_sync_service_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/em/em_financial_profit_sync_service_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/em/finance_common_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/xue_qiu/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/hk/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/hk/hk_company_info_sync_service_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/hk/hk_industry_info_sync_service_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/industry/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/industry/ths/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/industry/ths/ths_industry_index_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/industry/ths/ths_industry_sync_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/api/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/stock_irm_cninfo_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/stock_question_id_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/daily/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/daily/daily_k_line_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/k_line_info_clean_task.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/week_month/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/common/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/common/k_line_common_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/hot_stocks/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/month_week_daily/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/month_week_daily/bfq_k_line_sync.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/month_week_daily/daily_week_month_line_sync.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/sync_status/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/sync_status/k_line_sync_status_check.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/test/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/test/k_line_info_clean_his_data.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/year_quarter/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/year_quarter/year_quarter_line_sync.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/index/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/index/sync_best_choose_index.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/symbol/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/symbol/sync_kpl_concept_symbol_choose_reason_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/total/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/theme/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/lhb/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/lhb/stock_lhb_sync_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/open/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/open/sync_one_day_open_data_to_db_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/compliance/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial/annual_report_audit_check_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial/net_assets_check_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial/profit_income_check_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial_report_risk_check_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/major_violations/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/self/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/self/wei_pan_stock_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/test/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/test/fix_blask_list.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/transactions/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/transactions/transactions_check_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/self_choose/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/self_choose/ths_self_choose_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/auto_ipo_buy_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/auto_login/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/auto_login/trader_auto_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/auto_sell_service_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/balance/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/balance/ths_account_balance_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/sync_position_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/task/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/task/trader_task_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/tfp/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zb/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/connected_boards/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/export/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/export/export_kcx_high_chg_open_data_to_excel.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/high_chg/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/open_data/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/script/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/script/fix_error_deal_day.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/script/sync_now_higt_chg_zt.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/zt_pool/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/zt_pool/em/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/zt_pool/em/em_zt_pool_service.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/zt_pool/em/em_zt_pool_sync_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/zt_pool/ths/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/zt_pool/ths/ths_zt_pool_sync_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zz_task/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zz_task/compensation/__init__.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zz_task/compensation/compensate_task.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/zz_task/compensation/compensate_task_one_day.py +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler.egg-info/dependency_links.txt +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler.egg-info/top_level.txt +0 -0
- {mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/setup.cfg +0 -0
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/clean/ths_concept_clean_api.py
RENAMED
|
@@ -13,7 +13,7 @@ from loguru import logger
|
|
|
13
13
|
import mns_common.component.company.company_common_service_api as company_common_service_api
|
|
14
14
|
import mns_common.constant.db_name_constant as db_name_constant
|
|
15
15
|
import mns_common.component.concept.ths_concept_common_service_api as ths_concept_common_service_api
|
|
16
|
-
import mns_common.
|
|
16
|
+
import mns_common.utils.data_frame_util as data_frame_util
|
|
17
17
|
|
|
18
18
|
mongodb_util = MongodbUtil('27017')
|
|
19
19
|
|
|
@@ -102,32 +102,75 @@ def update_null_name():
|
|
|
102
102
|
ths_concept_list = ths_concept_list.sort_values(by=['_id'], ascending=False)
|
|
103
103
|
|
|
104
104
|
for concept_one in ths_concept_list.itertuples():
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
try:
|
|
106
|
+
concept_code = concept_one.symbol
|
|
107
|
+
name = concept_one.name
|
|
108
|
+
exist_url = concept_one.url
|
|
109
|
+
|
|
110
|
+
if bool(1 - is_valid_name(name)):
|
|
111
|
+
# 更新空字符串
|
|
112
|
+
update_one_ths_concept_name(concept_code)
|
|
113
|
+
time.sleep(10)
|
|
114
|
+
|
|
115
|
+
if exist_url == '' or pd.isna(exist_url):
|
|
116
|
+
url = 'http://q.10jqka.com.cn/thshy/detail/code/' + str(concept_code)
|
|
117
|
+
str_now_time = concept_one.str_day + " " + "00:00:00"
|
|
118
|
+
query_concept = {"symbol": concept_code}
|
|
119
|
+
new_values = {'$set': {"url": url, "str_now_time": str_now_time}}
|
|
120
|
+
mongodb_util.update_one_query(query_concept, new_values, 'ths_concept_list')
|
|
121
|
+
except BaseException as e:
|
|
122
|
+
logger.error("更新空字符串名字异常:{},{}", concept_code, str(e))
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
# 更新一个概念 空字符串
|
|
126
|
+
def update_one_ths_concept_name(concept_code):
|
|
127
|
+
concept_name = ths_concept_index_web.get_concept_name(concept_code)
|
|
128
|
+
query_concept = {"symbol": concept_code}
|
|
129
|
+
new_values = {'$set': {"name": concept_name}}
|
|
130
|
+
mongodb_util.update_one_query(query_concept, new_values, 'ths_concept_list')
|
|
131
|
+
|
|
132
|
+
new_values_detail = {'$set': {"concept_name": concept_name}}
|
|
108
133
|
|
|
109
|
-
|
|
110
|
-
concept_name = ths_concept_index_web.get_concept_name(concept_code)
|
|
111
|
-
query_concept = {"symbol": concept_code}
|
|
112
|
-
new_values = {'$set': {"name": concept_name}}
|
|
113
|
-
mongodb_util.update_one_query(query_concept, new_values, 'ths_concept_list')
|
|
134
|
+
query_concept_detail = {"concept_code": concept_code}
|
|
114
135
|
|
|
115
|
-
|
|
136
|
+
mongodb_util.update_many(query_concept_detail, new_values_detail, 'ths_stock_concept_detail')
|
|
116
137
|
|
|
117
|
-
query_concept_detail = {"concept_code": concept_code}
|
|
118
138
|
|
|
119
|
-
|
|
120
|
-
|
|
139
|
+
# 更新ths 详情里面空名称的数据
|
|
140
|
+
def query_ths_detail_null_name():
|
|
141
|
+
query = {"$or": [{"concept_name": ""},
|
|
142
|
+
{"concept_name": " "},
|
|
143
|
+
{"concept_name": {"$exists": False}}]}
|
|
144
|
+
|
|
145
|
+
ths_stock_concept_detail_list_df = mongodb_util.find_query_data(db_name_constant.THS_STOCK_CONCEPT_DETAIL, query)
|
|
146
|
+
if data_frame_util.is_empty(ths_stock_concept_detail_list_df):
|
|
147
|
+
return
|
|
148
|
+
null_concept_code_list = set(ths_stock_concept_detail_list_df['concept_code'])
|
|
149
|
+
for null_concept_code in null_concept_code_list:
|
|
150
|
+
try:
|
|
151
|
+
update_one_ths_concept_name(null_concept_code)
|
|
152
|
+
except BaseException as e:
|
|
153
|
+
logger.error("更新空字符串名字异常:{},{}", null_concept_code, str(e))
|
|
154
|
+
|
|
121
155
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
156
|
+
def is_valid_name(name):
|
|
157
|
+
"""
|
|
158
|
+
接口专用:判断name是否为有效非空值
|
|
159
|
+
:param name: 待判断的变量(字符串/NaN/None/任意类型)
|
|
160
|
+
:return: 布尔值 True=有效非空,False=空/空格/NaN/无效
|
|
161
|
+
"""
|
|
162
|
+
# 1. 判断是否为 NaN(浮点型,且自身不等于自身)
|
|
163
|
+
if isinstance(name, float) and name != name:
|
|
164
|
+
return False
|
|
165
|
+
# 2. 判断是否为 None / 空字符串 / 纯空格字符串
|
|
166
|
+
if not name or not str(name).strip():
|
|
167
|
+
return False
|
|
168
|
+
# 3. 以上都不满足 → 有效非空值
|
|
169
|
+
return True
|
|
128
170
|
|
|
129
171
|
|
|
130
172
|
if __name__ == '__main__':
|
|
173
|
+
query_ths_detail_null_name()
|
|
131
174
|
# update_one_concept_relevance_industry(886095)
|
|
132
175
|
update_null_name()
|
|
133
176
|
logger.info("开始")
|
|
@@ -96,11 +96,10 @@ def sync_open_data():
|
|
|
96
96
|
|
|
97
97
|
|
|
98
98
|
if __name__ == '__main__':
|
|
99
|
-
sync_zt_data('
|
|
100
|
-
sync_zt_data('
|
|
101
|
-
sync_zt_data('
|
|
102
|
-
sync_zt_data('
|
|
103
|
-
sync_zt_data('2025-12-26')
|
|
99
|
+
sync_zt_data('2026-01-15')
|
|
100
|
+
sync_zt_data('2026-01-14')
|
|
101
|
+
sync_zt_data('2026-01-13')
|
|
102
|
+
sync_zt_data('2026-01-12')
|
|
104
103
|
remote_data()
|
|
105
104
|
# sync_zt_data('2025-08-26')
|
|
106
105
|
# sync_zt_data('2025-08-25')
|
|
@@ -17,7 +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.em.finance_common_api as finance_common_api
|
|
19
19
|
import mns_scheduler.risk.compliance.undisclosed_annual_report_api as undisclosed_annual_report_api
|
|
20
|
-
import mns_scheduler.finance.xue_qiu.
|
|
20
|
+
import mns_scheduler.finance.xue_qiu.sync_xue_qiu_finance_data as sync_xue_qiu_fiance_data
|
|
21
21
|
|
|
22
22
|
mongodb_util = MongodbUtil('27017')
|
|
23
23
|
|
|
@@ -30,24 +30,25 @@ mongodb_util = MongodbUtil('27017')
|
|
|
30
30
|
# 3季报:每年10月1日--10月31日
|
|
31
31
|
# 4季报(年报) :每年1月1日--4月30日
|
|
32
32
|
|
|
33
|
-
def sync_financial_report():
|
|
33
|
+
def sync_financial_report(symbol_list):
|
|
34
34
|
now_date = datetime.now()
|
|
35
35
|
now_year = now_date.year
|
|
36
36
|
now_month = now_date.month
|
|
37
37
|
sync_time = now_date.strftime('%Y-%m-%d %H:%M:%S')
|
|
38
38
|
|
|
39
39
|
if now_month in [1, 2, 3, 4]:
|
|
40
|
-
sync_xue_qiu_fiance_data.
|
|
40
|
+
sync_xue_qiu_fiance_data.sync_xue_qiu_each_period_report(str(now_year - 1) + '年报', symbol_list)
|
|
41
41
|
|
|
42
42
|
# 年报
|
|
43
43
|
period = 4
|
|
44
44
|
period_time = str(now_year - 1) + "-12-31 00:00:00"
|
|
45
|
+
# 东财财报
|
|
45
46
|
sync_em_profit_report(period_time, sync_time, period)
|
|
46
47
|
sync_em_asset_liability_report(period_time, sync_time, period)
|
|
47
48
|
|
|
48
49
|
# 一季报
|
|
49
50
|
if now_month == 4:
|
|
50
|
-
sync_xue_qiu_fiance_data.
|
|
51
|
+
sync_xue_qiu_fiance_data.sync_xue_qiu_each_period_report(str(now_year) + '一季报', symbol_list)
|
|
51
52
|
|
|
52
53
|
period = 1
|
|
53
54
|
period_time = str(now_year) + "-03-31 00:00:00"
|
|
@@ -58,7 +59,7 @@ def sync_financial_report():
|
|
|
58
59
|
|
|
59
60
|
# 二季报
|
|
60
61
|
elif now_month in [7, 8]:
|
|
61
|
-
sync_xue_qiu_fiance_data.
|
|
62
|
+
sync_xue_qiu_fiance_data.sync_xue_qiu_each_period_report(str(now_year) + '中报', symbol_list)
|
|
62
63
|
|
|
63
64
|
period = 2
|
|
64
65
|
period_time = str(now_year) + "-06-30 00:00:00"
|
|
@@ -69,7 +70,7 @@ def sync_financial_report():
|
|
|
69
70
|
|
|
70
71
|
# 三季报
|
|
71
72
|
elif now_month == 10:
|
|
72
|
-
sync_xue_qiu_fiance_data.
|
|
73
|
+
sync_xue_qiu_fiance_data.sync_xue_qiu_each_period_report(str(now_year) + '三季报', symbol_list)
|
|
73
74
|
|
|
74
75
|
period = 3
|
|
75
76
|
period_time = str(now_year) + "-09-30 00:00:00"
|
|
@@ -78,8 +79,8 @@ def sync_financial_report():
|
|
|
78
79
|
|
|
79
80
|
elif now_month == 5:
|
|
80
81
|
|
|
81
|
-
sync_xue_qiu_fiance_data.
|
|
82
|
-
sync_xue_qiu_fiance_data.
|
|
82
|
+
sync_xue_qiu_fiance_data.sync_xue_qiu_each_period_report(str(now_year - 1) + '年报', symbol_list)
|
|
83
|
+
sync_xue_qiu_fiance_data.sync_xue_qiu_each_period_report(str(now_year) + '一季报', symbol_list)
|
|
83
84
|
|
|
84
85
|
# 补偿年报和一季度,出不了报告的
|
|
85
86
|
miss_period_04 = 4
|
|
@@ -94,7 +95,7 @@ def sync_financial_report():
|
|
|
94
95
|
sync_em_asset_liability_report(period_time_01, sync_time, period_01)
|
|
95
96
|
|
|
96
97
|
elif now_month == 9:
|
|
97
|
-
sync_xue_qiu_fiance_data.
|
|
98
|
+
sync_xue_qiu_fiance_data.sync_xue_qiu_each_period_report(str(now_year) + '中报', symbol_list)
|
|
98
99
|
|
|
99
100
|
# 补偿二季度
|
|
100
101
|
period_02 = 2
|
|
@@ -103,14 +104,13 @@ def sync_financial_report():
|
|
|
103
104
|
sync_em_asset_liability_report(period_time_02, sync_time, period_02)
|
|
104
105
|
|
|
105
106
|
elif now_month in [11, 12]:
|
|
106
|
-
sync_xue_qiu_fiance_data.
|
|
107
|
+
sync_xue_qiu_fiance_data.sync_xue_qiu_each_period_report(str(now_year) + '三季报', symbol_list)
|
|
107
108
|
|
|
108
109
|
# 补偿三季度
|
|
109
110
|
period_03 = 3
|
|
110
111
|
period_time_03 = str(now_year) + "-09-30 00:00:00"
|
|
111
112
|
sync_em_profit_report(period_time_03, sync_time, period_03)
|
|
112
113
|
sync_em_asset_liability_report(period_time_03, sync_time, period_03)
|
|
113
|
-
|
|
114
114
|
# 未出报告check
|
|
115
115
|
undisclosed_annual_report_api.un_disclosed_report_check(sync_time, now_year, period, period_time)
|
|
116
116
|
# 新股或者未出报告的
|
|
@@ -122,8 +122,8 @@ def sync_em_asset_liability_report(period_time, sync_time, period):
|
|
|
122
122
|
un_report_asset_df = finance_common_api.find_un_report_symbol(period_time,
|
|
123
123
|
db_name_constant.EM_STOCK_ASSET_LIABILITY)
|
|
124
124
|
for un_report_asset_one in un_report_asset_df.itertuples():
|
|
125
|
+
symbol = un_report_asset_one.symbol
|
|
125
126
|
try:
|
|
126
|
-
symbol = un_report_asset_one.symbol
|
|
127
127
|
new_asset_df = em_financial_asset_liability_sync_service_api.get_em_asset_liability_api(symbol)
|
|
128
128
|
# 负债比
|
|
129
129
|
new_asset_df['liability_ratio'] = round(
|
|
@@ -147,8 +147,9 @@ def sync_em_asset_liability_report(period_time, sync_time, period):
|
|
|
147
147
|
def sync_em_profit_report(period_time, sync_time, period):
|
|
148
148
|
un_report_profit_df = finance_common_api.find_un_report_symbol(period_time, db_name_constant.EM_STOCK_PROFIT)
|
|
149
149
|
for un_report_profit_one in un_report_profit_df.itertuples():
|
|
150
|
+
symbol = un_report_profit_one.symbol
|
|
150
151
|
try:
|
|
151
|
-
|
|
152
|
+
|
|
152
153
|
new_profit_df = em_financial_profit_sync_service_api.get_em_profit_api(symbol)
|
|
153
154
|
if data_frame_util.is_empty(new_profit_df):
|
|
154
155
|
continue
|
|
@@ -168,8 +169,8 @@ def sync_miss_report(sync_time):
|
|
|
168
169
|
query = {"total_operate_income": 0}
|
|
169
170
|
un_report_company_info = mongodb_util.find_query_data(db_name_constant.COMPANY_INFO, query)
|
|
170
171
|
for un_report_one in un_report_company_info.itertuples():
|
|
172
|
+
symbol = un_report_one.symbol
|
|
171
173
|
try:
|
|
172
|
-
symbol = un_report_one.symbol
|
|
173
174
|
new_profit_df = em_financial_profit_sync_service_api.get_em_profit_api(symbol)
|
|
174
175
|
if data_frame_util.is_empty(new_profit_df):
|
|
175
176
|
continue
|
|
@@ -25,8 +25,12 @@ mongodb_util_27017 = MongodbUtil('27017')
|
|
|
25
25
|
# cash_flow 现金流量
|
|
26
26
|
# balance 资产负债
|
|
27
27
|
# 同步所有股票 报表
|
|
28
|
-
def sync_all_stocks_report():
|
|
28
|
+
def sync_all_stocks_report(symbol_list):
|
|
29
29
|
em_a_stock_info_df = em_stock_info_api.get_a_stock_info()
|
|
30
|
+
# 代码列表不为空的时候
|
|
31
|
+
if len(symbol_list) > 0:
|
|
32
|
+
em_a_stock_info_df = em_a_stock_info_df.loc[em_a_stock_info_df['symbol'].isin(symbol_list)]
|
|
33
|
+
|
|
30
34
|
em_a_stock_info_df = common_service_fun_api.add_pre_prefix(em_a_stock_info_df)
|
|
31
35
|
# 或等效写法 df['A'].str[0:6]
|
|
32
36
|
|
|
@@ -35,7 +39,10 @@ def sync_all_stocks_report():
|
|
|
35
39
|
xue_qiu_cookie = cookie_info_service.get_xue_qiu_cookie()
|
|
36
40
|
report_type_list = ['income', 'balance', 'cash_flow']
|
|
37
41
|
for stock_one in em_a_stock_info_df.itertuples():
|
|
38
|
-
fail_list = save_one_symbol_data(stock_one, report_type_list,
|
|
42
|
+
fail_list = save_one_symbol_data(stock_one, report_type_list,
|
|
43
|
+
xue_qiu_cookie, True,
|
|
44
|
+
fail_list, '',
|
|
45
|
+
False)
|
|
39
46
|
|
|
40
47
|
handle_number = 0
|
|
41
48
|
# 处理失败的
|
|
@@ -49,10 +56,11 @@ def sync_all_stocks_report():
|
|
|
49
56
|
|
|
50
57
|
|
|
51
58
|
def save_one_symbol_data(stock_one, report_type_list, xue_qiu_cookie, save_tag, fail_list, report_name, check_exist):
|
|
59
|
+
symbol = stock_one.symbol
|
|
52
60
|
try:
|
|
53
61
|
symbol_prefix = stock_one.symbol_prefix
|
|
54
62
|
name = stock_one.name
|
|
55
|
-
|
|
63
|
+
|
|
56
64
|
for report_type in report_type_list:
|
|
57
65
|
if report_type == 'income':
|
|
58
66
|
col_name = extra_income_db_name.XUE_QIU_LRB_INCOME
|
|
@@ -60,6 +68,8 @@ def save_one_symbol_data(stock_one, report_type_list, xue_qiu_cookie, save_tag,
|
|
|
60
68
|
col_name = extra_income_db_name.XUE_QIU_ASSET_DEBT
|
|
61
69
|
elif report_type == 'cash_flow':
|
|
62
70
|
col_name = extra_income_db_name.XUE_QIU_CASH_FLOW
|
|
71
|
+
else:
|
|
72
|
+
col_name = extra_income_db_name.XUE_QIU_LRB_INCOME
|
|
63
73
|
if check_exist:
|
|
64
74
|
query_exist = {'symbol': symbol, 'report_name': report_name}
|
|
65
75
|
# 存在数据 不在同步
|
|
@@ -130,10 +140,10 @@ def save_one_symbol_data(stock_one, report_type_list, xue_qiu_cookie, save_tag,
|
|
|
130
140
|
return fail_list
|
|
131
141
|
|
|
132
142
|
|
|
133
|
-
def
|
|
143
|
+
def sync_xue_qiu_each_period_report(report_name, symbol_list):
|
|
134
144
|
em_a_stock_info_df = em_stock_info_api.get_a_stock_info()
|
|
135
|
-
if
|
|
136
|
-
em_a_stock_info_df = em_a_stock_info_df.loc[em_a_stock_info_df['symbol']
|
|
145
|
+
if len(symbol_list) > 0:
|
|
146
|
+
em_a_stock_info_df = em_a_stock_info_df.loc[em_a_stock_info_df['symbol'].isin(symbol_list)]
|
|
137
147
|
em_a_stock_info_df = common_service_fun_api.add_pre_prefix(em_a_stock_info_df)
|
|
138
148
|
# 或等效写法 df['A'].str[0:6]
|
|
139
149
|
|
|
@@ -158,4 +168,4 @@ def sync_xue_qiu_very_period_report(report_name, symbol):
|
|
|
158
168
|
|
|
159
169
|
|
|
160
170
|
if __name__ == '__main__':
|
|
161
|
-
sync_all_stocks_report()
|
|
171
|
+
sync_all_stocks_report([])
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/theme/kpl_theme_sync_service.py
RENAMED
|
@@ -49,7 +49,9 @@ def sync_new_kpl_theme_info():
|
|
|
49
49
|
# 保存到主线详细列表
|
|
50
50
|
sync_kpl_theme_detail(json_data, exist_max_theme_id)
|
|
51
51
|
exist_max_theme_id = exist_max_theme_id + 1
|
|
52
|
+
exist_max_theme_id = exist_max_theme_id + 1
|
|
52
53
|
except BaseException as e:
|
|
54
|
+
exist_max_theme_id = exist_max_theme_id + 1
|
|
53
55
|
logger.error("更新新题材信息异常:{},{}", str(exist_max_theme_id), e)
|
|
54
56
|
|
|
55
57
|
|
|
@@ -102,10 +104,10 @@ def sync_kpl_theme_list(json_data, theme_id):
|
|
|
102
104
|
'grade': 1,
|
|
103
105
|
'stock_count': stock_list_df.shape[0],
|
|
104
106
|
'valid': True,
|
|
105
|
-
'theme_classify':2,
|
|
107
|
+
'theme_classify': 2,
|
|
106
108
|
}
|
|
107
109
|
|
|
108
|
-
query = {'
|
|
110
|
+
query = {'theme_id': str(theme_id)}
|
|
109
111
|
|
|
110
112
|
kpl_theme_one_df = mongodb_util.find_query_data(db_name_constant.KPL_THEME_LIST, query)
|
|
111
113
|
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/tfp/stock_tfp_info_sync.py
RENAMED
|
@@ -5,7 +5,7 @@ file_path = os.path.abspath(__file__)
|
|
|
5
5
|
end = file_path.index('mns') + 17
|
|
6
6
|
project_path = file_path[0:end]
|
|
7
7
|
sys.path.append(project_path)
|
|
8
|
-
|
|
8
|
+
from datetime import datetime
|
|
9
9
|
import mns_common.component.tfp.stock_tfp_api as stock_tfp_api
|
|
10
10
|
import mns_common.constant.db_name_constant as db_name_constant
|
|
11
11
|
import mns_common.utils.data_frame_util as data_frame_util
|
|
@@ -16,7 +16,21 @@ mongodb_util = MongodbUtil('27017')
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def sync_stock_tfp(str_day):
|
|
19
|
-
|
|
19
|
+
if str_day is None:
|
|
20
|
+
now_date = datetime.now()
|
|
21
|
+
last_year = now_date.year - 1
|
|
22
|
+
init_str_day = str(last_year) + '-01' + '-01'
|
|
23
|
+
stock_tfp_df = stock_tfp_api.get_stock_tfp_by_day(init_str_day)
|
|
24
|
+
str_day = now_date.strftime('%Y-%m-%d')
|
|
25
|
+
stock_tfp_df = handle_tfp_data(stock_tfp_df.copy(), str_day, 1)
|
|
26
|
+
else:
|
|
27
|
+
stock_tfp_df = stock_tfp_api.get_stock_tfp_by_day(str_day)
|
|
28
|
+
stock_tfp_df = handle_tfp_data(stock_tfp_df.copy(), str_day, 2)
|
|
29
|
+
|
|
30
|
+
return stock_tfp_df
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def handle_tfp_data(stock_tfp_df, str_day, time_classify):
|
|
20
34
|
if data_frame_util.is_not_empty(stock_tfp_df):
|
|
21
35
|
stock_tfp_df['sus_begin_time'] = stock_tfp_df['sus_begin_time'].fillna('无')
|
|
22
36
|
stock_tfp_df['sus_end_time'] = stock_tfp_df['sus_end_time'].fillna('无')
|
|
@@ -39,18 +53,25 @@ def sync_stock_tfp(str_day):
|
|
|
39
53
|
stock_tfp_df.loc[stock_tfp_df['sus_reason'] == '连续停牌', 'type'] = '2'
|
|
40
54
|
stock_tfp_df.loc[stock_tfp_df['sus_reason'] == '刊登重要公告', 'type'] = '3'
|
|
41
55
|
stock_tfp_df.loc[stock_tfp_df['sus_reason'] == '拟筹划重大资产重组', 'type'] = '4'
|
|
56
|
+
stock_tfp_df.loc[stock_tfp_df['sus_reason'] == '交易异常波动', 'type'] = '5'
|
|
42
57
|
stock_tfp_df['valid'] = True
|
|
43
58
|
stock_tfp_df['str_day'] = str_day
|
|
44
59
|
stock_tfp_df.loc[stock_tfp_df['type'] == '2', 'valid'] = False
|
|
45
60
|
stock_tfp_df.loc[stock_tfp_df['type'] == '1', 'valid'] = False
|
|
46
61
|
|
|
47
|
-
|
|
62
|
+
if time_classify == 1:
|
|
63
|
+
stock_tfp_df = stock_tfp_df.loc[(stock_tfp_df['sus_begin_time'] >= str_day)
|
|
64
|
+
| (stock_tfp_df['sus_end_time'] >= str_day)
|
|
65
|
+
| (stock_tfp_df['resume_time'] >= str_day)
|
|
66
|
+
| (stock_tfp_df['sus_begin_date'] >= str_day)]
|
|
48
67
|
|
|
68
|
+
stock_tfp_df = stock_tfp_df.loc[stock_tfp_df['sus_period'] != '盘中停牌']
|
|
69
|
+
# 停复牌
|
|
70
|
+
stock_tfp_df = stock_tfp_df.fillna(0)
|
|
49
71
|
mongodb_util.save_mongo(stock_tfp_df, db_name_constant.STOCK_TFP_INFO)
|
|
50
|
-
|
|
51
|
-
return stock_tfp_df
|
|
72
|
+
return stock_tfp_df
|
|
52
73
|
|
|
53
74
|
|
|
54
75
|
if __name__ == '__main__':
|
|
55
|
-
df = sync_stock_tfp(
|
|
76
|
+
df = sync_stock_tfp(None)
|
|
56
77
|
print(df)
|
|
@@ -155,6 +155,7 @@ def realtime_quotes_now_zt_kc_data_sync():
|
|
|
155
155
|
# 涨停数据同步到excel
|
|
156
156
|
export_kcx_high_chg_open_data_to_excel.export_kc_zt_data(str_day)
|
|
157
157
|
|
|
158
|
+
|
|
158
159
|
# 更新今日涨停相关的信息
|
|
159
160
|
def update_today_zt_relation_info():
|
|
160
161
|
now_date = datetime.now()
|
|
@@ -163,6 +164,7 @@ def update_today_zt_relation_info():
|
|
|
163
164
|
logger.info('更新今日涨停相关的信息')
|
|
164
165
|
em_zt_pool_sync_api.update_today_zt_relation_info(str_day)
|
|
165
166
|
|
|
167
|
+
|
|
166
168
|
# 同步涨停池
|
|
167
169
|
def sync_stock_zt_pool():
|
|
168
170
|
now_date = datetime.now()
|
|
@@ -257,6 +259,7 @@ def sync_stock_gdfx_free_top_10_one_day():
|
|
|
257
259
|
def concept_info_clean():
|
|
258
260
|
# 更新空概念名称
|
|
259
261
|
ths_concept_choose_api.update_null_name()
|
|
262
|
+
ths_concept_choose_api.query_ths_detail_null_name()
|
|
260
263
|
# 更新概念包含个数
|
|
261
264
|
ths_concept_choose_api.update_ths_concept_info()
|
|
262
265
|
# 开盘啦概念信息更新
|
|
@@ -407,7 +410,7 @@ def self_choose_stock_task():
|
|
|
407
410
|
# 同步财务报表
|
|
408
411
|
def sync_financial_report_task():
|
|
409
412
|
logger.info('同步财务报表任务')
|
|
410
|
-
sync_financial_report_service_task.sync_financial_report()
|
|
413
|
+
sync_financial_report_service_task.sync_financial_report([])
|
|
411
414
|
|
|
412
415
|
|
|
413
416
|
# 同步hk公司信息
|
|
@@ -429,9 +432,8 @@ def update_null_zt_reason():
|
|
|
429
432
|
|
|
430
433
|
# 同步停复牌信息
|
|
431
434
|
def sync_stock_tfp():
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
stock_tfp_info_sync.sync_stock_tfp(str_day)
|
|
435
|
+
logger.info("同步停复牌信息")
|
|
436
|
+
stock_tfp_info_sync.sync_stock_tfp(None)
|
|
435
437
|
|
|
436
438
|
|
|
437
439
|
# 同步同花顺行业信息
|
|
@@ -464,7 +466,7 @@ def check_k_line_sync_count():
|
|
|
464
466
|
k_line_sync_status_check.check_k_line_sync_count()
|
|
465
467
|
|
|
466
468
|
|
|
467
|
-
# 全量同步公司信息
|
|
469
|
+
# 全量同步公司信息 行业 业务 基本 控股 公告
|
|
468
470
|
def sync_all_company_info_task():
|
|
469
471
|
logger.info("全量同步公司信息")
|
|
470
472
|
company_total_task.sync_all_company_task()
|
|
@@ -606,7 +608,7 @@ blockingScheduler.add_job(sync_all_company_info_task, 'cron', day_of_week='sat,s
|
|
|
606
608
|
blockingScheduler.add_job(auto_da_ban_task, 'cron', hour='19', minute='29')
|
|
607
609
|
|
|
608
610
|
# 同步开盘啦题材
|
|
609
|
-
blockingScheduler.add_job(sync_kpl_theme, 'cron', hour='08,09,12,16', minute='
|
|
611
|
+
blockingScheduler.add_job(sync_kpl_theme, 'cron', hour='08,09,12,16', minute='30')
|
|
610
612
|
# 更新今日涨停相关的信息
|
|
611
613
|
blockingScheduler.add_job(update_today_zt_relation_info, 'cron', hour='15,20', minute='05')
|
|
612
614
|
|
|
@@ -614,4 +616,4 @@ print('定时任务启动成功')
|
|
|
614
616
|
blockingScheduler.start()
|
|
615
617
|
#
|
|
616
618
|
# if __name__ == '__main__':
|
|
617
|
-
#
|
|
619
|
+
# sync_kpl_theme()
|
|
@@ -69,7 +69,7 @@ mns_scheduler/finance/em/em_financial_profit_sync_service_api.py
|
|
|
69
69
|
mns_scheduler/finance/em/finance_common_api.py
|
|
70
70
|
mns_scheduler/finance/xue_qiu/__init__.py
|
|
71
71
|
mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py
|
|
72
|
-
mns_scheduler/finance/xue_qiu/
|
|
72
|
+
mns_scheduler/finance/xue_qiu/sync_xue_qiu_finance_data.py
|
|
73
73
|
mns_scheduler/hk/__init__.py
|
|
74
74
|
mns_scheduler/hk/hk_company_info_sync_service_api.py
|
|
75
75
|
mns_scheduler/hk/hk_industry_info_sync_service_api.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/auto_da_ban/auto_da_ban_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/clean/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/common/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/constant/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/de_list_stock/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/em_stock_info/__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
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/clean/kpl_concept_clean_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/common/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/detaill/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/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
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/local_mongo_util.py
RENAMED
|
File without changes
|
{mns_scheduler-1.4.7.4 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/remote_mongo_util.py
RENAMED
|
File without changes
|