From deb26c8b90f9d67c340b3a757740085ac8dd5743 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期三, 09 十月 2024 00:32:20 +0800 Subject: [PATCH] 订阅特殊量/目标代码扫入板块修改/ --- third_data/third_blocks_manager.py | 28 ++++++++++++++++++++++++---- 1 files changed, 24 insertions(+), 4 deletions(-) diff --git a/third_data/third_blocks_manager.py b/third_data/third_blocks_manager.py index df30438..237126d 100644 --- a/third_data/third_blocks_manager.py +++ b/third_data/third_blocks_manager.py @@ -5,12 +5,14 @@ from db.mysql_data_delegate import Mysqldb from utils import middle_api_protocol +from utils.kpl_data_db_util import KPLLimitUpDataUtil from utils.ths_industry_util import ThsCodeIndustryManager -SOURCE_TYPE_KPL = 1 # 涓滄柟璐㈠瘜 +SOURCE_TYPE_KPL = 1 # 寮�鐩樺暒 SOURCE_TYPE_TDX = 2 # 閫氳揪淇� SOURCE_TYPE_THS = 3 # 鍚岃姳椤� SOURCE_TYPE_EASTMONEY = 4 # 涓滄柟璐㈠瘜 +SOURCE_TYPE_KPL_RECORD = 5 # 寮�鐩樺暒鍘嗗彶鏁版嵁 class CodeThirdBlocksManager: @@ -40,12 +42,30 @@ cls.__code_source_blocks_dict_origin[result[0]] = {} blocks = set(result[2].split("銆�")) if result[1] == SOURCE_TYPE_THS: + # 鍚岃姳椤哄姞鍏�2绾у垎绫� industry = cls.__ths_industry.get_industry(result[0]) if industry: blocks.add(industry) cls.__code_source_blocks_dict_origin[result[0]][result[1]] = blocks cls.__code_source_blocks_dict[result[0]][result[1]] = BlockMapManager().filter_blocks(blocks) + # 鍔犺浇寮�鐩樺暒鍘嗗彶娑ㄥ仠鍘熷洜 + kpl_results = KPLLimitUpDataUtil.get_latest_block_infos() + code_blocks = {} + for r in kpl_results: + if r[0] not in code_blocks: + code_blocks[r[0]] = set() + code_blocks[r[0]].add(r[2]) + if r[3]: + code_blocks[r[0]] |= set(r[3].split("銆�")) + for code in code_blocks: + if code not in cls.__code_source_blocks_dict: + cls.__code_source_blocks_dict[code] = {} + cls.__code_source_blocks_dict_origin[code] = {} + blocks = code_blocks[code] + cls.__code_source_blocks_dict_origin[code][SOURCE_TYPE_KPL_RECORD] = blocks + cls.__code_source_blocks_dict[code][SOURCE_TYPE_KPL_RECORD] = BlockMapManager().filter_blocks(blocks) + def get_source_blocks(self, code): """ @@ -63,7 +83,7 @@ """ return self.__code_source_blocks_dict_origin.get(code) - def get_intersection_blocks_info(self, code, blocks): + def get_intersection_blocks_info(self, code, blocks, same_count=2): # 鑾峰彇浜ら泦 bs = [] b1 = BlockMapManager().filter_blocks(blocks) @@ -74,13 +94,13 @@ for s in sb_dict: if sb_dict[s]: bs.append(sb_dict[s]) - if len(bs) < 2: + if len(bs) < same_count: return set(), bs s_count = len(bs) fblocks = set() # 姹�2涓钩鍙扮殑浜ら泦 - for ces in combinations(bs, 2): + for ces in combinations(bs, same_count): ic = None for c in ces: if ic is None: -- Gitblit v1.8.0