# 250B-Agent **Repository Path**: buerg/250b-agent ## Basic Information - **Project Name**: 250B-Agent - **Description**: 基于 Go 实现的多主机数据导出系统:每台测试电脑部署**无界面 Agent**(**不弹 cmd 窗口**、右下角托盘图标,可一键开启 Windows 服务开机自启),服务端集中管理主机、下发导出任务、接收并保存导出的 Excel 文件。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-09 - **Last Updated**: 2026-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 250B 数据采集分析平台(Agent + Server) 基于 Go 实现的多主机数据导出系统:每台测试电脑部署**无界面 Agent**(**不弹 cmd 窗口**、右下角托盘图标,可一键开启 Windows 服务开机自启),服务端集中管理主机、下发导出任务、接收并保存导出的 Excel 文件。 ``` [测试电脑 Agent] ──HTTPS──▶ Go 服务端(Web 管理后台) ◀──浏览器 ``` ## 核心能力 | 组件 | 说明 | | ---- | ---- | | **Agent** | 每台测试电脑后台运行(托盘图标 / Windows 服务双模式,右键托盘菜单可一键开关「开机自启」),读取本机 Access MDB,按规则导出 Source(.xls)、Tmom(.xlsx),上传服务端;**启动无 cmd 窗口**,UPX 压缩约 3.7MB。另有 **agent-cs(C#/.NET 4.0,兼容 Windows XP)** 版本 | | **Server** | 集中管理:主机注册与心跳、任务下发、文件存储下载、数据分析图表、**企业微信消息通知**、**RA 试验规格上下限匹配**(按文件名自动判定 PASS/FAIL) | | **Web 后台** | 主机列表**宫格/列表双视图(在线优先)**、任务管理(**镀层单选 Au/Ag**)、数据分析(**规格自动填充 + FAIL/PASS 判定** + 一键发送企微)、智能计划(**定时监控文件变化 → 规格判定 → FL/RR 双图 → 发送企微**)、消息配置 | | **数据库** | SQLite 单文件,零安装 | ## 目录结构 ``` 250B-Agent/ ├─ agent/ # Agent 端(Go,Windows) │ ├─ cmd/agent/ # 主入口(托盘 / 服务) │ ├─ internal/ │ │ ├─ core/ # 核心业务:MDB 读取、Source/Tmom 导出、任务执行 │ │ ├─ client/ # 与服务端的 HTTP 通信 │ │ ├─ svc/ # Windows 服务(安装/卸载/运行) │ │ ├─ tray/ # 系统托盘(右下角图标 + 右键菜单) │ │ └─ config/ locker/ logx/ model/ trayicon/ │ ├─ dist/ # 交付部署包(agent.exe + 脚本) │ └─ agent.ini.example # 配置示例 ├─ agent-cs/ # Agent 端(C#/.NET 4.0,兼容 Windows XP) │ ├─ src/ # Model/Client/SourceExport/TmomExport/Xlsx 等 │ ├─ dist/ # agent.exe(XP 版) │ └─ build.bat # 一键编译(.NET 4.0 csc,图标 tools/logo.ico) ├─ server/ # 服务端(Go + Gin + SQLite + 原生 HTML) │ ├─ cmd/server/ # 主入口 │ ├─ internal/{api,config,db,session,spec}/ │ │ # spec:RA 规格匹配模块(spec_ra.json) │ ├─ data/spec_ra.json # RA 规格数据(源,可编辑) │ ├─ templates/ static/ # Web 管理页面 │ ├─ dist/ # 交付部署包(server.exe + 页面 + 启动脚本) │ └─ server.ini.example # 配置示例 ├─ docs/ │ ├─ 部署说明.md # 详细部署文档 │ ├─ RA_SPEC_PLAN.md # RA 规格扩展规划(R1-R5 清单) │ ├─ 不同系列別RA試驗規格上下限.xls # 规格源表(10 sheet) │ └─ skills/ # 规格/解析/分析/执行 4 个 Skill 文档 └─ 开发计划.md / 数据导出逻辑.md # 需求文档 ``` ## 快速开始 1. 部署服务端:把 `server/dist` 整个目录拷到服务器,双击 `start_server.bat`(**首次启动自动生成 `server.ini` 与 `upload/`、`data/` 目录**)。 浏览器打开 `http://服务器IP:8080`,默认账号 `admin / admin123`。可选在 `server.ini` 的 `[storage]` 段配置公用区保存路径 `save_root` 与数据分析目录 `analysis_dir`。 2. 部署 Agent:把 `agent/dist` 整个目录拷到每台测试电脑(**首次启动自动生成 `agent.ini` 与导出目录**),把 `agent.ini` 的 `agent_id` 改为每台唯一、`server_api_url` 指向服务端。 - 双击 `start_tray.bat`:托盘模式(右下角图标,**启动不弹窗口**); - 托盘右键菜单 → 「开机自启(Windows 服务)」勾选即可注册服务开机自启(弹管理员授权),取消勾选即卸载。 3. 打开 Web 后台 → 主机列表(宫格/列表,在线优先)→ 新建任务(单号/料号/项目/**镀层 Au/Ag**/节点,可填公用区保存位置)→ Agent 自动执行并保存/上传 → 任务列表下载 Source/Tmom → 数据分析页(选择上传目录或公用区目录)**按文件名自动匹配 RA 规格上下限**(可手动改)查看趋势图与**每颗晶粒 PASS/FAIL 判定** → 一键**发送结果到企业微信**(需先在「消息配置」填写群机器人 Webhook)。 ## RA 规格扩展(2026-09-17) 按「不同系列別RA試驗規格上下限.xls」将规格数据化,并贯通新建任务 → 导出命名 → 分析 → 智能计划: | 环节 | 能力 | | ---- | ---- | | **规格数据** | `server/data/spec_ra.json`(v1.3,664 条规则、18 系列、中英项目映射、OW 双表优先级);源表改后重新生成 JSON,**运行时可直接编辑 `dist/data/spec_ra.json` 实现"保留可更改"** | | **新建任务** | 镀层单选 Au(镀金)/ Ag(镀银),默认 Au;NA 系列(8J/8A/OZ/OY/OW 等)只有 Au,匹配时忽略镀层 | | **命名规则** | 文件名为 `{单号}-{料号}-{项目}-{镀层}-{节点}.xls/.xlsx`(agent 与 agent-cs 均已实现;空镀层兼容旧命名;tmom 追加时节点段自动更新为最新节点) | | **数据分析** | 按文件名解析料号(产品别=前 2 位、频点=第 3-4 位)、项目、镀层 → 自动匹配规格并填充 FL/RR 上下限(保留可改)→ 逐晶粒 PASS/FAIL 判定 | | **智能计划** | 定时/手动监控目录文件变化 → 解析文件名 → 规格匹配 → 生成文本摘要(含判定表格)+ **FL/RR 双折线图 PNG** → 企微消息(文本+图片,受消息配置 attach_chart 控制) | 规划与实现清单见 [docs/RA_SPEC_PLAN.md](docs/RA_SPEC_PLAN.md);规格/解析/分析/执行 4 个 Skill 文档见 [docs/skills/](docs/skills/)。 详细说明见 [docs/部署说明.md](docs/部署说明.md)。 ## 技术要点 - Agent 与服务端通信模型:**Agent 主动轮询**,服务端不主动访问客户端(适配内网/NAT/防火墙)。 - 鉴权:Agent 每次请求携带 `X-Agent-Id` / `X-Agent-Secret`;Web 后台账号密码 + 会话 Cookie。 - MDB 读取:`go-adodb`(Windows ADO),仅限 Windows 运行,正适配测试电脑。 - Source 导出:默认输出 Excel 兼容的 HTML 表格式 `.xls`;可通过 `source_format = xlsx` 切换为真 xlsx(见文档说明)。 - 单实例互斥:托盘与服务共用全局互斥体,保证 worker 只在其中一个进程运行。 - 轻量化:Agent 以 GUI 子系统编译(`-H windowsgui`,**启动不弹 cmd 窗口**),经 UPX 压缩约 **3.7MB**,常驻内存占用低(轻量轮询)。 - 公用区:服务端可在任务中下发保存路径,Agent 将导出文件保存到指定公用区(网络共享)的 Source/Tmom 子目录;数据分析页可浏览并分析公用区 Tmom 文件。 - 数据分析:参考 `webapp/excel_analysis.py` 的 FL/RR 测量值 + 时间节点逻辑;设置上下限后对每颗晶粒逐节点判定,超限即 FAIL(红)、全部在限内为 PASS(绿),并汇总 PASS/FAIL 计数。**RA 规格扩展后**:文件名自动解析料号/项目/镀层 → `internal/spec` 匹配上下限自动填充(可改)。 - 企业微信通知:`消息配置` 页填写群机器人 Webhook 与模板,分析页可一键把判定结果 + FL 趋势图推送到企业微信群(markdown + 图片 media);智能计划可定时发送 **FL/RR 双图 PNG**(纯 Go `image/draw` 渲染,无第三方图表依赖)。 ## 构建 ``` cd agent && go build -o dist/agent.exe ./cmd/agent # Windows 环境(Go Agent) cd agent-cs && build.bat # C# Agent(.NET 4.0,兼容 XP) cd server && go build -o dist/server.exe ./cmd/server ``` 完整的图标嵌入、无窗口编译、UPX 压缩与一键打包脚本见 [docs/PACKAGING.md](docs/PACKAGING.md),可自行打包 exe。server 模板/静态改动:模板需重启 exe,static 仅清浏览器缓存;规格数据改动直接编辑 `dist/data/spec_ra.json`(重启 server 生效)。