From 247038b7ee75997c1a9ae1a7472e5eb5023bc9e8 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期三, 19 二月 2025 14:37:09 +0800
Subject: [PATCH] commit

---
 app/api/excel.py |   39 ++++++++++++++++++++++-----------------
 1 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/app/api/excel.py b/app/api/excel.py
index 5db60db..1c0ccf4 100644
--- a/app/api/excel.py
+++ b/app/api/excel.py
@@ -1,10 +1,10 @@
 import random
 import string
 
-from fastapi import APIRouter, File, UploadFile, Form, BackgroundTasks, Depends, Request
+from fastapi import APIRouter, File, UploadFile, Form, BackgroundTasks, Depends, Request, WebSocket
 from fastapi.responses import JSONResponse, FileResponse
 from sqlalchemy.orm import Session
-from starlette.websockets import WebSocket
+# from starlette.websockets import WebSocket
 
 from app.api import get_current_user, get_current_user_websocket, Response
 from app.models import UserModel, AgentType
@@ -52,14 +52,15 @@
     return prefix + random_part
 
 
-def db_create_session(db: Session, user_id: str):
+def db_create_session(db: Session, user_id: str, message:str, upload_filenames: list):
     db_id = generate_db_id()
     session = SessionService(db).create_session(
         db_id,
-        "鍚堝苟Excel",
+        message,
         "basic_excel_merge",
         AgentType.BASIC,
-        int(user_id)
+        int(user_id),
+        {"role": "user", "content": message, "upload_filenames": upload_filenames}
     )
     return session
 
@@ -102,26 +103,30 @@
     user_excel = EXCEL_FILES_PATH
     create_dir_if_not_exists(user_source)
     create_dir_if_not_exists(user_excel)
-
     while True:
-        data = await websocket.receive_text()
+        # data = await websocket.receive_text()git
+        receive_message = await websocket.receive_json()
         try:
-            if data == "\"鍚堝苟Excel\"":
+            if receive_message.get("message") == "鍚堝苟Excel":
+                upload_filenames = receive_message.get('upload_filenames', [])
                 merge_file = run_conformity(user_source, user_excel)
                 if merge_file is not None:
 
                     await websocket.send_json({
-                        "message": "鏂囨。鍚堝苟鎴愬姛锛�",
                         "type": "stream",
-                        "file_name": f"{merge_file}.xlsx",
-                        "download_url": f"./api/document/download/{merge_file}.xlsx"
+                        "files": [
+                            {
+                                "file_name": "Excel",
+                                "file_url": f"./api/document/download/{merge_file}.xlsx?file_type=excel",
+                            }
+                        ]
                     })
                     await websocket.send_json({
-                        "message": "鏂囨。鍚堝苟鎴愬姛锛�",
+                        "message": "鍚堝苟鎴愬姛",
                         "type": "close",
                     })
                     # 鍒涘缓浼氳瘽璁板綍
-                    session = db_create_session(db, user_id)
+                    session = db_create_session(db, user_id, receive_message.get("message"), upload_filenames)
                     # 鏇存柊浼氳瘽璁板綍
                     if session:
                         session_id = session.id
@@ -130,8 +135,8 @@
                             "content": {
                                 "message": "\u5408\u5e76\u6210\u529f",
                                 "type": "message",
-                                "file_url": f"/api/document/download/{merge_file}.xlsx?file_type=excel",
-                                "file_name": f"{merge_file}"
+                                "file_name": "Excel",
+                                "file_url": f"/api/document/download/{merge_file}.xlsx?file_type=excel"
                             }
                         }
                         session_service = SessionService(db)
@@ -140,8 +145,8 @@
                     await websocket.send_json({"error": "鍚堝苟澶辫触", "type": "stream", "files": []})
                     await websocket.close()
             else:
-                print(f"Received data: {data}")
-                await websocket.send_json({"error": "鏈煡鎸囦护", "data": str(data)})
+                print(f"Received data: {receive_message.get('message')}")
+                await websocket.send_json({"error": "鏈煡鎸囦护", "data": str(receive_message.get('message'))})
                 await websocket.close()
         except Exception as e:
             await websocket.send_json({"error": str(e)})

--
Gitblit v1.8.0