Code with SOLO】用 SOLO 为 MES 订单导出脚本打造完整 GUI 工具,从命令行到一键操作
一、摘要
我是一名部门主管,负责生产制造部门的管理工作。日常工作中,团队需要频繁从 MES 系统中按生产批号逐个查询并导出订单进度表,供生产部门跟踪进度。原始的 Python 自动化脚本(基于 pyautogui)由 TRAE SOLO 生成,能完成批量导出,但纯命令行操作、坐标需手动修改代码、没有进度反馈,使用门槛高且容易出错,团队成员难以独立使用。本次我继续使用 TRAE SOLO,为该脚本打造了一个完整的 tkinter 图形界面,增加了坐标方案管理、多文件夹配置、等待时间自定义、失败重试、ESC 紧急停止等功能,将一个"能用但难用"的脚本变成了一个"任何人都能上手"的桌面工具。
二、背景
工作场景
在生产制造环境中,MES(制造执行系统)是核心系统之一。每天需要从 MES 中按生产批号查询订单进度表并导出为 Excel 文件,供生产部门跟踪进度。一个批号的操作流程如下:
打开 MES 系统的订单进度表页面
在输入框中填入生产批号
点击"未完成查询"
等待查询结果加载
点击"导出"按钮
Excel 弹出后运行宏(Ctrl+Shift+Q)处理数据
另存为指定目录
关闭 Excel
一个批号需要手动操作约 30 秒,每天几十个批号,耗时且重复。
原始方案
之前已经用 TRAE SOLO 生成了一个 Python 自动化脚本(pyautogui),能批量完成上述操作。但存在以下问题:
纯命令行:需要手动编辑 JSON 配置文件修改坐标和路径
坐标管理困难:换电脑或分辨率变化后需要重新修改代码
没有进度反馈:运行时不知道处理到第几个,成功还是失败
失败无法重试:部分批号失败后只能全部重来
使用门槛高:非技术人员无法独立使用
本次目标
用 TRAE SOLO 为现有脚本打造完整的 GUI 界面,解决以上所有痛点。
三、实践过程
第一步:需求分析与任务拆解
我先向 SOLO 描述了现有脚本的功能和痛点,SOLO 帮我梳理出以下核心需求:
模块 功能 优先级
路径配置 清单目录、导出目录可视化选择 P0
坐标管理 可视化编辑、录制、多方案保存 P0
导出控制 一键启动、停止、进度显示 P0
运行日志 实时显示每步操作 P0
等待时间 所有等待参数可配置 P1
失败重试 扫描缺失文件,智能重试 P1
方案管理 一套方案=坐标+路径+等待时间 P1
第二步:UI 框架搭建
Prompt 示例:
“也做过ui出来”
SOLO 直接生成了完整的 tkinter 界面代码,包含路径设置、坐标管理、操作控制、日志显示四个区域。首次生成即可运行,无需调试。
第三步:坐标录制优化
遇到的问题: 录制坐标时,鼠标需要停在目标位置,但点击"记录"按钮时鼠标会移到按钮上,导致记录的永远是按钮的坐标。
与 SOLO 的交互过程:
“坐标录制 记录需要支持空格键快捷键,不然鼠标一直记录记录按钮的坐标”
SOLO 理解后去掉了所有按钮,改为纯键盘操作:
空格 = 记录当前鼠标位置
S = 跳过当前目标
Esc = 关闭录制窗口
录制窗口自动置顶,全程不需要碰鼠标。
第四步:坐标方案管理
需求演进:
“增加坐标配置文件,可以快速选择之前记录的坐标,可以重命名”
SOLO 增加了方案管理系统:
下拉框快速切换已有方案
保存/重命名/删除方案
数据持久化到 coord_presets.json
进一步需求:
“一个坐标配置对应保存一个文件夹,文件夹都可以自己选择路径”
SOLO 将方案扩展为完整配置包:坐标 + 清单目录 + 导出目录 + 等待时间,切换方案时全部自动加载。
第五步:等待时间可配置
“整个脚本过程等待时间长度都可以设置”
SOLO 新增了可折叠的"等待时间设置"面板,包含 7 个可调参数:
参数 默认值 说明
点击间隔 0.5s 每次点击后等待
查询等待 5s 查询后等待结果
Excel加载等待 3s Excel打开后等内容
宏运行等待 3s 运行宏后等待
保存对话框等待 1.5s 另存为弹出等待
保存完成等待 1.5s 保存完成等待
开始倒计时 5s 导出前倒计时
支持一键恢复默认值。
第六步:路径斜杠问题修复
遇到的问题:
“C:/Users/Administrator/Desktop/全部\H26022.xlsx 保存错误根本问题,不是没有后缀,是斜杠问题”
Windows Excel 另存为要求路径使用反斜杠 \,但 Python 的 os.path.join 在某些情况下会产生正斜杠 /。
修复: 保存前统一替换 .replace(“/”, “\”)。
第七步:导出结果检测与失败重试
需求:
“检测有没有导出成功,应该检查导出的文件目录” “失败的完成后可以继续尝试导出”
SOLO 实现了两层检测:
检查预期路径是否存在文件
如果精确匹配失败,在导出目录中搜索包含批号的文件(模糊匹配)
重试逻辑采用智能扫描模式:
重新读取清单中全部批号
扫描导出目录已有文件
比对找出真正缺失的批号
只导出缺失的部分
第八步:ESC 紧急停止
“增加按esc停止”
SOLO 集成了 keyboard 库,在导出循环中实时检测 ESC 按键,按下立即停止。
第九步:静默启动
“可以启动bat文件时,不启动终端”
SOLO 用 VBS 脚本替代 bat,通过 pythonw 启动,完全不弹出终端窗口。
四、成果展示
最终工具界面
工具包含以下功能区域:
Plain Text
┌─────────────────────────────────────────────┐
│ 坐标方案管理 │
│ [方案下拉框▼] [保存为方案] [重命名] [删除] │
│ 订单进度表按钮: 702, 75 │
│ 生产批号输入框: 510, 168 │
│ 未完成查询按钮: 702, 203 │
│ 导出按钮: 702, 234 │
│ [录制全部坐标] [保存配置] │
├─────────────────────────────────────────────┤
│ 路径设置 │
│ 清单目录:[C:\Users…\Desktop\jc] [浏览] │
│ 导出目录:[C:\Users…\Desktop\jc\导出][浏览]│
│ Excel文件:找到 3 个文件 │
├─────────────────────────────────────────────┤
│ 等待时间设置 [
展开设置] [恢复默认] │
│ (可折叠,7个参数可调) │
├─────────────────────────────────────────────┤
│ 操作控制 │
│ [
开始导出] [■停止] [↻重试失败] ████░ 60% │
├─────────────────────────────────────────────┤
│ 运行日志 │
│ [OK] 清单.xlsx: 24 个批号 │
│ [click] (702, 75) - 订单进度表 │
│ [input] (510, 168) - 生产批号: H26022 │
│ [OK] saved: H26022 (15.2KB) │
└─────────────────────────────────────────────┘
项目文件结构
Plain Text
order_export_project/
├── order_export_ui.py # GUI 主程序(约 1000 行)
├── order_progress_export.py # 原始命令行脚本(TRAE SOLO 生成)
├── order_export_config.json # 运行配置(坐标+路径+等待时间)
├── coord_presets.json # 坐标方案库
└── 启动UI.vbs # 静默启动脚本(无终端窗口)
核心功能清单
功能 说明
坐标录制 纯键盘操作,空格记录,窗口置顶
方案管理 多套方案保存/切换/重命名/删除
方案绑定 一套方案 = 坐标 + 清单目录 + 导出目录 + 等待时间
等待时间 7 个参数可调,适应不同网络/机器速度
智能重试 扫描导出目录,自动找出缺失批号
紧急停止 ESC 键 + 鼠标移到左上角
实时日志 深色终端风格,每步操作可视化
自动记忆 启动时自动加载上次使用的方案
静默启动 VBS 启动,无终端黑窗口
导出检测 精确匹配 + 模糊搜索,确保导出成功
五、效果与总结
提效对比
对比项 改造前 改造后
启动方式 命令行运行 Python 脚本 双击 VBS,无窗口启动
坐标配置 编辑 JSON 文件 界面录制 + 方案管理
路径设置 修改代码中的路径 浏览按钮选择
进度反馈 无 实时进度条 + 日志
失败处理 全部重来 智能扫描 + 一键重试
等待调优 改代码重启 界面实时调整
使用门槛 需要懂 Python 任何人都能用
SOLO 在项目中的角色
原始脚本生成:MES 自动化操作脚本完全由 TRAE SOLO 生成(pyautogui + openpyxl)
UI 界面开发:从 tkinter 界面搭建到功能迭代,全程通过自然语言对话完成
问题排查修复:路径斜杠问题、坐标录制问题、文件检测逻辑,都是描述问题后 SOLO 直接定位并修复
功能迭代:每次提出新需求,SOLO 都能在一次对话中完成开发、测试、打包
可复用经验
渐进式开发:先跑通核心流程,再逐步加功能,每次迭代都可验证
描述问题而非方案:告诉 SOLO "鼠标一直记录按钮的坐标"比"用 bind_all"更有效
配置与代码分离:JSON 配置文件让工具适配不同环境,不需要改代码
面向失败设计:导出检测 + 智能重试,让工具在异常情况下也能可靠运行
总结
从命令行脚本到完整的 GUI 桌面工具,整个开发过程通过 TRAE SOLO 的多轮对话完成。SOLO 不仅理解了我的需求,还能在遇到问题时主动分析原因并给出合理方案。最终产出的工具已经在实际工作中使用,显著降低了操作门槛,提升了工作效率。这证明了 AI 辅助开发不仅能生成代码,更能通过持续迭代将一个"能用"的脚本打磨成"好用"的产品。