From 517b90c5f094d9a8658e16bb748da3f96470fc65 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期二, 27 五月 2025 13:09:16 +0800
Subject: [PATCH] 大单导出修改

---
 l2_data_parser.py                           |   19 ++++++++-----------
 data_parser/transaction_big_order_parser.py |   41 ++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 48 insertions(+), 12 deletions(-)

diff --git a/data_parser/transaction_big_order_parser.py b/data_parser/transaction_big_order_parser.py
index 48be723..e986684 100644
--- a/data_parser/transaction_big_order_parser.py
+++ b/data_parser/transaction_big_order_parser.py
@@ -194,10 +194,49 @@
     ))
 
 
+def extract_big_order_of_code(dir_path, code):
+    """
+    鎻愬彇浠g爜鐨勫ぇ鍗�
+    @param code:
+    @return:
+    """
+
+    def first_last(group):
+        """
+            鑾峰彇绗竴鏉℃暟鎹笌鏈�鍚庝竴鏉�
+            @param group:
+            @return:
+            """
+        return pd.Series({
+            'TotalAmount': group['TotalAmount'].sum(),
+            'TotalVolume': group['TotalVolume'].sum(),
+            'StartTime': group['StartTime'].iloc[0],
+            'StartPrice': group['StartPrice'].iloc[0],
+            'EndTime': group['EndTime'].iloc[-1],
+            'EndPrice': group['EndPrice'].iloc[-1]
+        })
+
+    combined_path = os.path.join(dir_path, 'combined.csv')
+    if not os.path.exists(combined_path):
+        print("鎷兼帴鏁版嵁涓嶅瓨鍦�")
+        return
+    df = pd.read_csv(combined_path)
+    df_copy = df.copy()
+    df_copy = df_copy[df_copy["SecurityID"] == int(code)]
+    if df_copy.empty:
+        print("鐩爣浠g爜瀵瑰簲鎴愪氦鏁版嵁涓虹┖")
+        return
+    df_copy["SecurityID"] = df_copy["SecurityID"].apply(BigOrderDealParser.code_format)
+    # 鎸塖ecurityID鍜孊uyNo鍒嗙粍
+    grouped = df_copy.groupby(['SecurityID', 'BuyNo'])
+    grouped_result = grouped.apply(first_last)
+    grouped_result = grouped_result[grouped_result["TotalAmount"] > 500000]
+    grouped_result.to_csv(os.path.join(dir_path, f"{code}.csv"))
+    print("淇濆瓨鎴愬姛")
 
 
 if __name__ == "__main__":
     # pre_process_transactions("E:/娴嬭瘯鏁版嵁/Transaction_Test.csv")
     # pre_process_ngtsticks("E:/娴嬭瘯鏁版嵁/NGTSTick_Test.csv")
     # concat_pre_transactions("E:/娴嬭瘯鏁版嵁/Transaction_Test")
-    process_combined_transaction("E:/娴嬭瘯鏁版嵁/Transaction_Test")
+    extract_big_order_of_code("E:/娴嬭瘯鏁版嵁/Transaction_Test", "000017")
diff --git a/l2_data_parser.py b/l2_data_parser.py
index eb3f982..7fb76cf 100644
--- a/l2_data_parser.py
+++ b/l2_data_parser.py
@@ -403,17 +403,14 @@
             transaction_big_order_parser.concat_pre_transactions(f"/home/userzjj/ftp/{day}/Transaction")
         elif _type == 'NGTSTick_Concat':
             transaction_big_order_parser.concat_pre_ngtsticks(f"/home/userzjj/ftp/{day}/NGTSTick")
-
-
         elif _type == 'ExtractDealBigOrder':
-            # 鎻愬彇鎵�鏈夋垚浜ょ殑澶у崟
-            if len(params) > 2:
-                save_path = params[2].strip()
+            # 鍛戒护妯″紡  /home/userzjj/app/gp-server/l2_data_parser ExtractDealBigOrder 2025-05-09
+            # 鏍规嵁code鎻愬彇澶у崟
+            if not code:
+                print("娌℃湁浼犲叆浠g爜")
             else:
-                save_path = None
+                if tool.is_sh_code(code):
+                    transaction_big_order_parser.extract_big_order_of_code(f"/home/userzjj/ftp/{day}/NGTSTick", code)
+                else:
+                    transaction_big_order_parser.extract_big_order_of_code(f"/home/userzjj/ftp/{day}/Transaction", code)
 
-            if len(params) > 3:
-                target_code = params[3].strip()
-            else:
-                target_code = None
-            parse_deal_big_orders(day, save_path, target_code)

--
Gitblit v1.8.0