zhangxiao
2024-10-23 df971a07c4c4b9f6e5e1ba6b966102f41b54c717
app/api/excel.py
@@ -63,7 +63,7 @@
            save_path_list.append(save_path)
        else:
            return JSONResponse(content={"error": "不允许的文件类型"}, status_code=400)
    return JSONResponse(content={"message": "文件上传成功", "paths": save_path_list}, status_code=201)
    return JSONResponse(content={"code": 200, "msg": "", "data": {}}, status_code=200)
# ws://localhost:9201/api/document/ws/excel
@@ -71,26 +71,34 @@
async def ws_excel(websocket: WebSocket):
    await websocket.accept()
    while True:
        data = await websocket.receive_json()
        action = data.get("action")
        data = await websocket.receive_text()
        try:
            if action == "process":
            if data == "合并Excel文件":
                clear_directory(EXCEL_FILES_PATH)
                output_file_path = run_conformity()
                await websocket.send_json({"step_message": "开始合并"})
            elif action == "inquire":
                await websocket.send_json({"step_message": "开始合并", "type": "stream", "files": []})
            elif data == "查询合并进度":
                files = os.listdir(EXCEL_FILES_PATH)
                if not files:
                    await websocket.send_json({"step_message": "正在合并中"})
                    await websocket.send_json({"step_message": "正在合并中", "type": "stream", "files": []})
                else:
                    await websocket.send_json({"step_message": "文档合并成功!"})
            elif action == "download":
                    await websocket.send_json({"step_message": "文档合并成功!", "type": "stream", "files": []})
            elif data == "获取文件":
                files = os.listdir(EXCEL_FILES_PATH)
                if not files:
                    await websocket.send_json({"error": "目录下没有生成的文件"})
                    await websocket.send_json({"error": "目录下没有生成的文件", "type": "stream", "files": []})
                else:
                    first_file = files[0]
                    await websocket.send_json({"step_message": "合并文件已生成", "download_url": f"/download/{first_file}"})
                    file_name = os.path.basename(first_file)
                    file_url = f"./api/document/download/{first_file}"
                    await websocket.send_json({
                        "step_message": "文档合并成功!",
                        "type": "stream",
                        "files": [{
                            "file_name": file_name,
                            "file_url": file_url
                        }]
                    })
            else:
                await websocket.send_json({"error": "未知指令"})
        except Exception as e: