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