From 0e921bc8d68e830f15bb049dfb84b22bc05db788 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 15 八月 2024 09:49:50 +0800
Subject: [PATCH] bug修复

---
 utils/data_export_util.py |   48 ++++++++++++++++++++++++++----------------------
 1 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/utils/data_export_util.py b/utils/data_export_util.py
index e5d2ab7..8e3137d 100644
--- a/utils/data_export_util.py
+++ b/utils/data_export_util.py
@@ -43,16 +43,19 @@
         datas = local_today_datas.get(code)
     if not datas:
         datas = []
-    logger_debug.info("鍔犺浇L2閫愮瑪濮旀墭鑰楁椂锛歿}", f"{(time.time() - __start_time)}")
-    __start_time = time.time()
-    process_indexs = log_export.get_l2_process_position(code, date)
-    logger_debug.info("鍔犺浇L2閫愮瑪濮旀墭鎵规鑰楁椂锛歿}", f"{(time.time() - __start_time)}")
-    __start_time = time.time()
-    trade_indexs = log_export.get_l2_trade_position(code, date)
-    real_position_indexes = log_export.get_real_place_order_positions(code, date)
-    deal_list = log_export.load_huaxin_deal_record(code, date)
-    logger_debug.info("鍔犺浇鍏朵粬浜ゆ槗鍙傛暟鑰楁椂锛歿}", f"{(time.time() - __start_time)}")
-    __start_time = time.time()
+    if not datas:
+        # 鍔犲揩娌℃湁L2鏁版嵁鐨勫鍑洪�熷害
+        process_indexs = []
+        trade_indexs = []
+        real_position_indexes = []
+        deal_list = []
+        cancel_reasons = {}
+    else:
+        process_indexs = log_export.get_l2_process_position(code, date)
+        trade_indexs = log_export.get_l2_trade_position(code, date)
+        real_position_indexes = log_export.get_real_place_order_positions(code, date)
+        deal_list = log_export.load_huaxin_deal_record(code, date)
+        cancel_reasons = log_export.load_cancel_buy_reasons(code, date)
     deal_list_dict = {}
     for d in deal_list:
         deal_list_dict[str(d[0])] = d
@@ -61,14 +64,10 @@
     sell_nos = sell_no_dict.get(code)
     active_sell_map = log_export.load_huaxin_active_sell_map(date=date)
     active_sell_set = active_sell_map.get(code)
-    logger_debug.info("鍔犺浇鍗栧崟鑰楁椂锛歿}", f"{(time.time() - __start_time)}")
-    __start_time = time.time()
     if not active_sell_set:
         active_sell_set = set()
     fdatas = export_l2_data(code, datas, process_indexs, trade_indexs, real_position_indexes, deal_list_dict, sell_nos,
-                            active_sell_set)
-    logger_debug.info("缁勮鏁版嵁鑰楁椂锛歿}", f"{(time.time() - __start_time)}")
-    __start_time = time.time()
+                            active_sell_set, cancel_reasons)
     return fdatas
 
 
@@ -82,7 +81,7 @@
 
 
 def export_l2_data(code, datas, process_indexs, trade_indexs, real_position_indexes, deal_list_dict, sell_nos,
-                   active_sell_nos):
+                   active_sell_nos, cancel_reasons):
     def find_process_index(index):
         for i in range(0, len(process_indexs)):
             if process_indexs[i][0] <= index <= process_indexs[i][1]:
@@ -94,20 +93,15 @@
             if trade_indexs[i][1] == index:
                 return trade_indexs[i]
         return None
-    logger_debug.info("鍑嗗鍔犺浇L2Map鏁版嵁-----")
+
     # 鏁版嵁棰勫鐞�
     num_operate_map = {}
     l2.l2_data_util.load_num_operate_map(num_operate_map, code, datas)
-    logger_debug.info("load_num_operate_map")
-
     buy_no_map = {}
     sell_no_map = {}
     l2.l2_data_util.load_buy_no_map(buy_no_map, code, datas)
-    logger_debug.info("load_buy_no_map")
     l2.l2_data_util.load_sell_no_map(sell_no_map, code, datas)
-    logger_debug.info("load_sell_no_map")
     l2.l2_data_util.load_canceled_buy_no_map(l2.l2_data_util.local_today_canceled_buyno_map, code, datas)
-    logger_debug.info("load_canceled_buy_no_map")
     # num_dict = {}
     # for data in datas:
     #     if data["val"]["num"] not in num_dict:
@@ -116,8 +110,14 @@
     logger_debug.info(f"寰幆缁勮鏁版嵁寮�濮嬶細闀垮害-{len(datas)} 涓诲姩鍗栭暱搴�-{len(active_sell_nos)}")
     index = 0
     fdatas = []
+    # 鏁版嵁澶灏遍渶瑕佽繃婊ゆ帀灏忛噾棰�
+    is_data_too_large = len(datas) > 20000
     for data in datas:
         index += 1
+        if is_data_too_large and data['val']['num'] * float(data['val']['price']) < 5000:
+            if data["index"] not in real_position_indexes:
+                continue
+
         # 鍏堢Щ闄�
         if data['val']['orderNo'] in active_sell_nos:
             # 杩囨护涓诲姩鍗�
@@ -227,6 +227,10 @@
             elif trade_info[0] == 2:
                 # font.colour_index = 10
                 cancel_order_info = trade_info[2]
+        if not cancel_order_info:
+            if data["index"] in cancel_reasons:
+                cancel_order_info = cancel_reasons[data["index"]]
+
         format_data.append(cancel_order_info)
         format_data.append(data["val"].get("orderNo"))
         fdatas.append((style_int, trade_info, format_data))

--
Gitblit v1.8.0