mns-scheduler 1.4.5.6__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.
Files changed (187) hide show
  1. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/PKG-INFO +1 -1
  2. mns_scheduler-1.4.8.5/mns_scheduler/company_info/em_stock_info/clean_em_us_hk_stock_info.py +30 -0
  3. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py +17 -10
  4. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/clean/ths_concept_clean_api.py +62 -19
  5. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/remote_data_sync_to_local.py +4 -5
  6. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/sync_financial_report_service_task.py +15 -14
  7. mns_scheduler-1.4.5.6/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
  8. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/k_line_info_clean_task.py +1 -0
  9. mns_scheduler-1.4.8.5/mns_scheduler/kpl/theme/__init__.py +7 -0
  10. mns_scheduler-1.4.8.5/mns_scheduler/kpl/theme/kpl_theme_sync_service.py +258 -0
  11. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/self_choose/ths_self_choose_service.py +18 -2
  12. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/tfp/stock_tfp_info_sync.py +27 -6
  13. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zb/stock_zb_pool_sync.py +1 -1
  14. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/script/sync_now_higt_chg_zt.py +1 -1
  15. mns_scheduler-1.4.8.5/mns_scheduler/zt/zt_pool/em/__init__.py +7 -0
  16. mns_scheduler-1.4.5.6/mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py → mns_scheduler-1.4.8.5/mns_scheduler/zt/zt_pool/em/em_zt_pool_service.py +102 -210
  17. mns_scheduler-1.4.8.5/mns_scheduler/zt/zt_pool/em/em_zt_pool_sync_api.py +130 -0
  18. mns_scheduler-1.4.8.5/mns_scheduler/zt/zt_pool/ths/__init__.py +7 -0
  19. {mns_scheduler-1.4.5.6/mns_scheduler/zt/zt_pool → mns_scheduler-1.4.8.5/mns_scheduler/zt/zt_pool/ths}/ths_zt_pool_sync_api.py +7 -3
  20. mns_scheduler-1.4.8.5/mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +79 -0
  21. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zz_task/compensation/compensate_task.py +8 -8
  22. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zz_task/compensation/compensate_task_one_day.py +11 -11
  23. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zz_task/data_sync_task.py +54 -22
  24. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler.egg-info/PKG-INFO +1 -1
  25. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler.egg-info/SOURCES.txt +9 -3
  26. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/setup.py +1 -1
  27. mns_scheduler-1.4.5.6/mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +0 -61
  28. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/README.md +0 -0
  29. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/__init__.py +0 -0
  30. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/auto_da_ban/__init__.py +0 -0
  31. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/auto_da_ban/auto_da_ban_service.py +0 -0
  32. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/__init__.py +0 -0
  33. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/clean/__init__.py +0 -0
  34. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/clean/company_info_clean_api.py +0 -0
  35. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/common/__init__.py +0 -0
  36. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/common/company_common_query_service.py +0 -0
  37. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/constant/__init__.py +0 -0
  38. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/constant/company_constant_data.py +0 -0
  39. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/de_list_stock/__init__.py +0 -0
  40. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/de_list_stock/de_list_stock_service.py +0 -0
  41. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/em_stock_info/__init__.py +0 -0
  42. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/sync/__init__.py +0 -0
  43. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/sync/company_info_set_service.py +0 -0
  44. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/sync/sync_company_info_task.py +0 -0
  45. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/__init__.py +0 -0
  46. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_announce_info_task.py +0 -0
  47. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_base_info_task.py +0 -0
  48. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_business_info_task.py +0 -0
  49. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_hold_info_task.py +0 -0
  50. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_industry_info_task.py +0 -0
  51. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/company_info/task/company_total_task.py +0 -0
  52. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/__init__.py +0 -0
  53. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/clean/__init__.py +0 -0
  54. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/clean/kpl_concept_clean_api.py +0 -0
  55. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/__init__.py +0 -0
  56. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/common/__init__.py +0 -0
  57. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +0 -0
  58. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +0 -0
  59. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/detaill/__init__.py +0 -0
  60. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py +0 -0
  61. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/sync_new_index/__init__.py +0 -0
  62. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py +0 -0
  63. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/update_concept_info/__init__.py +0 -0
  64. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py +0 -0
  65. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +0 -0
  66. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/__init__.py +0 -0
  67. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/col_move_service.py +0 -0
  68. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/db_status.py +0 -0
  69. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/__init__.py +0 -0
  70. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/col_move_script.py +0 -0
  71. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/db_move/__init__.py +0 -0
  72. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/db_move/col_move_one_service.py +0 -0
  73. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/__init__.py +0 -0
  74. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/local_mongo_util.py +0 -0
  75. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/remote_mongo_util.py +0 -0
  76. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/sync_hui_ce_test_data.py +0 -0
  77. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/sync/sync_hui_ce_test_data_01.py +0 -0
  78. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/update/__init__.py +0 -0
  79. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/db/script/update/update_col_field.py +0 -0
  80. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/dt/__init__.py +0 -0
  81. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/dt/stock_dt_pool_sync.py +0 -0
  82. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/__init__.py +0 -0
  83. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/em/__init__.py +0 -0
  84. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/em/em_financial_asset_liability_sync_service_api.py +0 -0
  85. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/em/em_financial_profit_sync_service_api.py +0 -0
  86. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/em/finance_common_api.py +0 -0
  87. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/xue_qiu/__init__.py +0 -0
  88. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py +0 -0
  89. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/hk/__init__.py +0 -0
  90. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/hk/hk_company_info_sync_service_api.py +0 -0
  91. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/hk/hk_industry_info_sync_service_api.py +0 -0
  92. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/industry/__init__.py +0 -0
  93. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/industry/ths/__init__.py +0 -0
  94. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/industry/ths/ths_industry_index_service.py +0 -0
  95. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/industry/ths/ths_industry_sync_service.py +0 -0
  96. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/__init__.py +0 -0
  97. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/api/__init__.py +0 -0
  98. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +0 -0
  99. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +0 -0
  100. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/stock_irm_cninfo_service.py +0 -0
  101. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/irm/stock_question_id_service.py +0 -0
  102. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/__init__.py +0 -0
  103. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/__init__.py +0 -0
  104. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/daily/__init__.py +0 -0
  105. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +0 -0
  106. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/daily/daily_k_line_service.py +0 -0
  107. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py +0 -0
  108. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/week_month/__init__.py +0 -0
  109. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +0 -0
  110. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +0 -0
  111. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/common/__init__.py +0 -0
  112. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/common/k_line_common_api.py +0 -0
  113. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/hot_stocks/__init__.py +0 -0
  114. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +0 -0
  115. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/month_week_daily/__init__.py +0 -0
  116. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/month_week_daily/bfq_k_line_sync.py +0 -0
  117. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/month_week_daily/daily_week_month_line_sync.py +0 -0
  118. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/sync_status/__init__.py +0 -0
  119. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/sync_status/k_line_sync_status_check.py +0 -0
  120. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/test/__init__.py +0 -0
  121. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/test/k_line_info_clean_his_data.py +0 -0
  122. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/year_quarter/__init__.py +0 -0
  123. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/k_line/year_quarter/year_quarter_line_sync.py +0 -0
  124. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/__init__.py +0 -0
  125. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/__init__.py +0 -0
  126. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/index/__init__.py +0 -0
  127. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py +0 -0
  128. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/index/sync_best_choose_index.py +0 -0
  129. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/symbol/__init__.py +0 -0
  130. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +0 -0
  131. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/symbol/sync_kpl_concept_symbol_choose_reason_api.py +0 -0
  132. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/total/__init__.py +0 -0
  133. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +0 -0
  134. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/lhb/__init__.py +0 -0
  135. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/lhb/stock_lhb_sync_service.py +0 -0
  136. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/open/__init__.py +0 -0
  137. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/open/sync_one_day_open_data_to_db_service.py +0 -0
  138. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/__init__.py +0 -0
  139. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/compliance/__init__.py +0 -0
  140. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +0 -0
  141. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial/__init__.py +0 -0
  142. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial/annual_report_audit_check_api.py +0 -0
  143. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial/net_assets_check_api.py +0 -0
  144. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial/profit_income_check_api.py +0 -0
  145. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py +0 -0
  146. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/financial_report_risk_check_api.py +0 -0
  147. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/major_violations/__init__.py +0 -0
  148. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py +0 -0
  149. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/self/__init__.py +0 -0
  150. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/self/wei_pan_stock_api.py +0 -0
  151. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/test/__init__.py +0 -0
  152. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/test/fix_blask_list.py +0 -0
  153. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/transactions/__init__.py +0 -0
  154. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/risk/transactions/transactions_check_api.py +0 -0
  155. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/self_choose/__init__.py +0 -0
  156. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/__init__.py +0 -0
  157. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/auto_ipo_buy_api.py +0 -0
  158. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/auto_login/__init__.py +0 -0
  159. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/auto_login/trader_auto_service.py +0 -0
  160. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/auto_sell_service_api.py +0 -0
  161. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/balance/__init__.py +0 -0
  162. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/balance/ths_account_balance_service.py +0 -0
  163. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/sync_position_api.py +0 -0
  164. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/task/__init__.py +0 -0
  165. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/task/trader_task_service.py +0 -0
  166. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/trade/tfp/__init__.py +0 -0
  167. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zb/__init__.py +0 -0
  168. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/__init__.py +0 -0
  169. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/connected_boards/__init__.py +0 -0
  170. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py +0 -0
  171. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/export/__init__.py +0 -0
  172. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/export/export_kcx_high_chg_open_data_to_excel.py +0 -0
  173. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/high_chg/__init__.py +0 -0
  174. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +0 -0
  175. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +0 -0
  176. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/open_data/__init__.py +0 -0
  177. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py +0 -0
  178. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/script/__init__.py +0 -0
  179. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/script/fix_error_deal_day.py +0 -0
  180. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +0 -0
  181. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +0 -0
  182. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zt/zt_pool/__init__.py +0 -0
  183. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zz_task/__init__.py +0 -0
  184. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler/zz_task/compensation/__init__.py +0 -0
  185. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler.egg-info/dependency_links.txt +0 -0
  186. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/mns_scheduler.egg-info/top_level.txt +0 -0
  187. {mns_scheduler-1.4.5.6 → mns_scheduler-1.4.8.5}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns_scheduler
3
- Version: 1.4.5.6
3
+ Version: 1.4.8.5
@@ -0,0 +1,30 @@
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
+ from mns_common.db.MongodbUtil import MongodbUtil
10
+ from loguru import logger
11
+ from datetime import datetime
12
+ import mns_common.constant.extra_income_db_name as extra_income_db_name
13
+
14
+ mongodb_util = MongodbUtil('27017')
15
+
16
+
17
+ def clean_us_stock_concept_industry():
18
+ em_us_stock_info_df = mongodb_util.find_all_data(extra_income_db_name.EM_US_STOCK_INFO)
19
+ return em_us_stock_info_df
20
+
21
+
22
+ if __name__ == '__main__':
23
+ em_us_stock_info_test_df = clean_us_stock_concept_industry()
24
+ em_us_stock_info_test_industry_df = em_us_stock_info_test_df.loc[em_us_stock_info_test_df['industry'] != '-']
25
+
26
+ em_us_stock_info_test_no_industry_df = em_us_stock_info_test_df.loc[em_us_stock_info_test_df['industry'] == '-']
27
+ em_us_stock_info_test_no_industry_df = em_us_stock_info_test_no_industry_df.sort_values(by=['flow_mv'],
28
+ ascending=False)
29
+
30
+ print(em_us_stock_info_test_industry_df)
@@ -23,8 +23,8 @@ mongodb_util = MongodbUtil('27017')
23
23
 
24
24
  def sync_all_em_stock_info():
25
25
  logger.info("同步东方财富a,etf,kzz,us,hk,信息开始")
26
- # 同步东方财富A股股票信息
27
- sync_stock_info()
26
+ # # 同步东方财富A股股票信息
27
+ # sync_stock_info()
28
28
  # 同步东方财富A股可转债信息
29
29
  sync_kzz_info()
30
30
  # 同步东方财富A股ETF信息
@@ -34,7 +34,7 @@ def sync_all_em_stock_info():
34
34
  # 同步东方财富港股通信息
35
35
  sync_hk_ggt_stock_info()
36
36
  # 同步东方财富美股信息
37
- sync_us_stock_info()
37
+ # sync_us_stock_info()
38
38
 
39
39
  logger.info("同步东方财富a,etf,kzz,us,hk,信息完成")
40
40
 
@@ -48,6 +48,7 @@ def sync_kzz_info():
48
48
  em_kzz_info = east_money_debt_api.get_kzz_real_time_quotes(30, 6)
49
49
  em_kzz_info['_id'] = em_kzz_info['symbol']
50
50
  em_kzz_info['sync_time'] = str_now_date
51
+ em_kzz_info = em_kzz_info.fillna(0)
51
52
  mongodb_util.save_mongo(em_kzz_info, extra_income_db_name.EM_KZZ_INFO)
52
53
  except BaseException as e:
53
54
  logger.error("同步东方财富可转债信息异常:{}", e)
@@ -62,6 +63,7 @@ def sync_etf_info():
62
63
  em_etf_info = east_money_etf_api.get_etf_real_time_quotes(30, 6)
63
64
  em_etf_info['_id'] = em_etf_info['symbol']
64
65
  em_etf_info['sync_time'] = str_now_date
66
+ em_etf_info = em_etf_info.fillna(0)
65
67
  mongodb_util.save_mongo(em_etf_info, extra_income_db_name.EM_ETF_INFO)
66
68
  except BaseException as e:
67
69
  logger.error("同步东方财富ETF信息异常:{}", e)
@@ -73,10 +75,11 @@ def sync_stock_info():
73
75
  str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
74
76
  logger.error("同步东方财富股票信息")
75
77
  try:
76
- em_etf_info = east_money_stock_a_v2_api.get_stock_real_time_quotes(60)
77
- em_etf_info['_id'] = em_etf_info['symbol']
78
- em_etf_info['sync_time'] = str_now_date
79
- mongodb_util.save_mongo(em_etf_info, extra_income_db_name.EM_A_STOCK_INFO)
78
+ em_stock_info = east_money_stock_a_v2_api.get_stock_real_time_quotes(60)
79
+ em_stock_info['_id'] = em_stock_info['symbol']
80
+ em_stock_info['sync_time'] = str_now_date
81
+ em_stock_info = em_stock_info.fillna(0)
82
+ mongodb_util.save_mongo(em_stock_info, extra_income_db_name.EM_A_STOCK_INFO)
80
83
  except BaseException as e:
81
84
  logger.error("同步东方财富ETF信息异常:{}", e)
82
85
 
@@ -93,6 +96,7 @@ def sync_hk_stock_info():
93
96
  em_hk_info = east_money_stock_hk_api.get_hk_real_time_quotes(30, em_cookie)
94
97
  em_hk_info['_id'] = em_hk_info['symbol']
95
98
  em_hk_info['sync_time'] = str_now_date
99
+ em_hk_info = em_hk_info.fillna(0)
96
100
  mongodb_util.save_mongo(em_hk_info, extra_income_db_name.EM_HK_STOCK_INFO)
97
101
  except BaseException as e:
98
102
  logger.error("同步东方财富ETF信息异常:{}", e)
@@ -109,6 +113,7 @@ def sync_hk_ggt_stock_info():
109
113
  em_hk_gtt_info = east_money_stock_hk_gtt_api.get_ggt_real_time_quotes(em_cookie, 30, 6)
110
114
  em_hk_gtt_info['_id'] = em_hk_gtt_info['symbol']
111
115
  em_hk_gtt_info['sync_time'] = str_now_date
116
+ em_hk_gtt_info = em_hk_gtt_info.fillna(0)
112
117
  mongodb_util.save_mongo(em_hk_gtt_info, extra_income_db_name.EM_HK_GGT_STOCK_INFO)
113
118
  except BaseException as e:
114
119
  logger.error("同步东方财富ETF信息异常:{}", e)
@@ -120,14 +125,16 @@ def sync_us_stock_info():
120
125
  str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
121
126
  logger.error("同步东方财富美股信息")
122
127
  em_cookie = cookie_info_service.get_em_cookie()
123
- us_stock_info = east_money_stock_us_api.get_us_stock_real_time_quotes(em_cookie, None)
128
+ us_stock_info = east_money_stock_us_api.get_us_real_time_quotes(30, em_cookie)
124
129
  us_stock_info['_id'] = us_stock_info['symbol']
125
130
  us_stock_info['sync_time'] = str_now_date
126
- mongodb_util.save_mongo(us_stock_info, extra_income_db_name.EM_US_STOCK_INFO)
131
+
132
+ us_stock_info = us_stock_info.fillna(0)
133
+ mongodb_util.save_mongo(us_stock_info, extra_income_db_name.US_STOCK_INFO_EM)
127
134
 
128
135
 
129
136
  if __name__ == '__main__':
130
- sync_stock_info()
137
+ sync_all_em_stock_info()
131
138
  # em_cookie = cookie_info_service.get_em_cookie()
132
139
  # em_us_stock_info = east_money_stock_us_api.get_us_stock_real_time_quotes(em_cookie, None)
133
140
  # em_us_stock_info['_id'] = em_us_stock_info['symbol']
@@ -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.api.ths.concept.app.ths_concept_index_app as ths_concept_index_app
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
- concept_code = concept_one.symbol
106
- name = concept_one.name
107
- exist_url = concept_one.url
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
- if name == '':
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
- new_values_detail = {'$set': {"concept_name": concept_name}}
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
- mongodb_util.update_many(query_concept_detail, new_values_detail, 'ths_stock_concept_detail')
120
- time.sleep(10)
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
- if exist_url == '' or pd.isna(exist_url):
123
- url = 'http://q.10jqka.com.cn/thshy/detail/code/' + str(concept_code)
124
- str_now_time = concept_one.str_day + " " + "00:00:00"
125
- query_concept = {"symbol": concept_code}
126
- new_values = {'$set': {"url": url, "str_now_time": str_now_time}}
127
- mongodb_util.update_one_query(query_concept, new_values, 'ths_concept_list')
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('2025-12-21')
100
- sync_zt_data('2025-12-23')
101
- sync_zt_data('2025-12-24')
102
- sync_zt_data('2025-12-25')
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.sync_xue_qiu_fiance_data as sync_xue_qiu_fiance_data
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.sync_xue_qiu_very_period_report(str(now_year - 1) + '年报', None)
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.sync_xue_qiu_very_period_report(str(now_year) + '一季报', None)
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.sync_xue_qiu_very_period_report(str(now_year) + '中报', None)
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.sync_xue_qiu_very_period_report(str(now_year) + '三季报', None)
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.sync_xue_qiu_very_period_report(str(now_year - 1) + '年报', None)
82
- sync_xue_qiu_fiance_data.sync_xue_qiu_very_period_report(str(now_year) + '一季报', None)
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.sync_xue_qiu_very_period_report(str(now_year) + '中报', None)
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.sync_xue_qiu_very_period_report(str(now_year) + '三季报', None)
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
- symbol = un_report_profit_one.symbol
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, xue_qiu_cookie, True, fail_list, '', False)
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
- symbol = stock_one.symbol
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 sync_xue_qiu_very_period_report(report_name, symbol):
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 symbol is not None:
136
- em_a_stock_info_df = em_a_stock_info_df.loc[em_a_stock_info_df['symbol'] == 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([])
@@ -116,6 +116,7 @@ def multi_threaded_k_line_sync(str_day):
116
116
  # 将list_date列中的所有NaN值设置为19890604
117
117
  real_time_quotes_now['list_date'].fillna(19890604, inplace=True)
118
118
  real_time_quotes_now['list_date'] = real_time_quotes_now['list_date'].replace(99990909, 19890604)
119
+ real_time_quotes_now['list_date'] = real_time_quotes_now['list_date'].replace(0, 19890604)
119
120
 
120
121
  # 将日期数值转换为日期时间格式
121
122
  real_time_quotes_now['list_date_01'] = pd.to_datetime(real_time_quotes_now['list_date'], format='%Y%m%d')
@@ -0,0 +1,7 @@
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)