From ffba3685a925dbd2c1082c19acb8ca85c8ab0ff9 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 06 十一月 2024 18:20:54 +0800
Subject: [PATCH] 扫入删除前排不正的板块

---
 third_data/code_plate_key_manager.py |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/third_data/code_plate_key_manager.py b/third_data/code_plate_key_manager.py
index 24da373..85db82c 100644
--- a/third_data/code_plate_key_manager.py
+++ b/third_data/code_plate_key_manager.py
@@ -1356,6 +1356,9 @@
         history_index, history_before_codes_info = cls.__get_history_index(code, block,
                                                                            yesterday_limit_up_codes,
                                                                            exclude_codes=exclude_codes)
+        # 杩囨护涓嶆鐨勫師鍥�
+        history_index, history_before_codes_info = cls.__filter_before_codes(block, history_index, history_before_codes_info, yesterday_limit_up_codes)
+
         # 涔伴鏉胯�佸ぇ/鑰佷簩
         # 棣栨澘鑰佸ぇ涓嶈兘涔版椂鍙拱鑰佷簩
         if history_index > 1:
@@ -1367,6 +1370,36 @@
                 return False, f"寮�1鏁伴噺锛歿count}锛屽墠鎺掍唬鐮佸彲涔帮細{history_before_codes_info[0]}"
             return True, f"寮�1鏁伴噺锛歿count}锛屽墠鎺掍唬鐮佷笉鍙拱锛歿history_before_codes_info[0]}锛屽巻鍙插墠鎺�-{history_before_codes_info}锛屽紑1浠g爜-{open_limit_up_block_codes}"
         return True, f"寮�1鏁伴噺锛歿count}锛屽巻鍙�-{history_index + 1} 瀹炴椂-{current_index + 1}锛� 鍓嶆帓浠g爜-{current_before_codes_info}, 寮�1浠g爜-{open_limit_up_block_codes}"
+
+    @classmethod
+    def __filter_before_codes(cls, block, index, before_codes_info, yesterday_codes):
+        """
+        杩囨护鍓嶆帓娑ㄥ仠鍘熷洜涓嶆鐨勪唬鐮�
+        @param code:
+        @param block:鏉垮潡
+        @param index: 鐩爣浠g爜浣嶇疆
+        @param before_codes_info: [(浠g爜, 娑ㄥ仠鏃堕棿鎴�)]
+        @return: 杩囨护涔嬪悗鐨� (index, before_codes_info)
+        """
+        try:
+            if index == 0 or not before_codes_info:
+                return index, before_codes_info
+            temp_index = index
+            temp_before_codes_info = []
+            for b in before_codes_info:
+                # 褰撲綔鐩爣绁ㄨ幏鍙栨壂鍏ユ澘鍧�
+                blocks = LimitUpCodesBlockRecordManager().get_radical_buy_blocks(b[0])
+                blocks = BlockMapManager().filter_blocks(blocks)
+                if block not in blocks and b[0] not in yesterday_codes:
+                    # 棣栨澘娑ㄥ仠鍘熷洜涓嶆
+                    temp_index -= 1
+                else:
+                    temp_before_codes_info.append(b)
+
+            return temp_index, temp_before_codes_info
+        except Exception as e:
+            async_log_util.error(logger_debug, f"鎵叆鏉垮潡杩囨护鍑洪敊锛歿str(e)}")
+            return index, before_codes_info
 
     @classmethod
     def __is_radical_buy_with_block_up(cls, code, block, yesterday_limit_up_codes):
@@ -1428,6 +1461,12 @@
             exclude_codes |= set(open_limit_up_code_dict.keys())
         history_index, history_before_codes_info = cls.__get_history_index(code, block, yesterday_limit_up_codes,
                                                                            exclude_codes)
+
+        # 杩囨护涓嶆鐨勫師鍥�
+        history_index, history_before_codes_info = cls.__filter_before_codes(block, history_index,
+                                                                             history_before_codes_info,
+                                                                             yesterday_limit_up_codes)
+
         # 鑾峰彇鏈澘鍧椾拱鍏ヤ唬鐮佺殑鏈�澶ф暟閲�
         max_count = RadicalBuyBlockCodeCountManager().get_block_code_count(block)
         if history_index > max_count:

--
Gitblit v1.8.0