Files
BIPMaterialManager/README.md
ERPAuto Bot 5d8563a4c9 docs: add P0 summary report and update README with test docs
- Add comprehensive P0 summary report (.sisyphus/evidence/p0-summary.md)
- Update README.md with test infrastructure links and examples
- Add coverage thresholds to vitest.config.ts (global 70%, core 80%)
- Document 41.5% performance improvement (7.65s → 4.49s)

Related: test-optimization-p0 task-18
2026-04-04 20:46:46 +08:00

214 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ERPAuto - ERP 数据自动化处理工具
一个基于 Electron 的桌面应用程序,用于自动化处理 ERP 系统中的数据提取和清理任务。
## 功能特性
- **数据提取**:从 ERP 系统批量下载物料计划数据
- **物料清理**:自动删除指定的物料代码,支持干运行模式
- **数据库支持**:支持 MySQL 和 SQL Server 数据存储
- **Excel 解析**:自动解析下载的 Excel 文件
## 快速开始
### 环境要求
- Node.js >= 18
- npm >= 9
- 可访问的 ERP 系统
### 安装
```bash
# 克隆项目
git clone <repository-url>
cd ERPAuto
# 安装依赖
npm install
```
### 配置
在项目根目录创建 `config.yaml` 文件(可参考 `config.template.yaml`
```yaml
# ERP 配置(固定基础设施)
erp:
url: https://your-erp-server.com
# 数据库配置
database:
activeType: mysql # 或 sqlserver
mysql:
host: localhost
port: 3306
database: erpauto
username: root
password: your_password
charset: utf8mb4
sqlserver:
server: localhost
port: 1433
database: erpauto
username: sa
password: your_password
driver: 'ODBC Driver 18 for SQL Server'
trustServerCertificate: true
# 路径配置
paths:
dataDir: './data/'
defaultOutput: 'output.xlsx'
validationOutput: 'validation-result.xlsx'
```
**注意**ERP 用户名和密码在应用的设置界面中配置,存储在数据库中(按用户管理)。
### 运行开发环境
```bash
npm run dev
```
### 构建应用
```bash
# Windows 安装版 + 便携版
npm run build:win
```
当前项目的正式构建与发布链路仅维护 Windows 目标。
## 使用指南
### 数据提取
1. 启动应用后,点击主页的「数据提取」进入提取页面
2. 在订单号输入框中输入订单号,每行一个
3. 设置批量大小(默认 100
4. 点击「开始提取」按钮
5. 等待提取完成,查看结果
### 物料清理
1. 点击主页的「物料清理」进入清理页面
2. 输入订单号(每行一个)
3. 输入要删除的物料代码(每行一个)
4. 勾选「干运行模式」可预览删除结果(不实际删除)
5. 点击「开始清理」按钮
6. 查看清理结果和详细统计
## 测试
```bash
# 运行单元测试
npm run test
# 运行 E2E 测试
npm run test:e2e
# 查看测试报告
npm run test:e2e:report
# 查看覆盖率报告
npm run test:coverage
```
### 测试基础设施
P0 测试优化已完成2026-04性能提升 **41.5%**7.65s → 4.49s)。
**文档**:
- [测试工厂使用指南](docs/TEST_FACTORY_USAGE.md) — 测试数据工厂 API 和最佳实践
- [Mock 库使用指南](docs/MOCK_LIBRARY_USAGE.md) — Mock 工厂函数和迁移指南
**快速示例**:
```typescript
// 使用测试工厂
import { UserFactory, OrderFactory } from '@/tests/fixtures/factory'
const admin = UserFactory.createAdmin()
const order = OrderFactory.createOrder()
// 使用 Mock 库
import { createMockLogger, createMockConfigManager } from '@/tests/mocks'
const logger = createMockLogger()
const config = createMockConfigManager({ logging: { level: 'debug' } })
```
## 项目结构
```
ERPAuto/
├── src/
│ ├── main/ # 主进程代码
│ │ ├── services/ # 业务服务
│ │ ├── ipc/ # IPC 处理器
│ │ └── types/ # TypeScript 类型
│ ├── preload/ # 预加载脚本
│ └── renderer/ # 渲染进程React UI
├── tests/
│ ├── unit/ # 单元测试
│ ├── integration/ # 集成测试
│ └── e2e/ # E2E 测试
└── docs/ # 文档
```
## 技术栈
- **框架**Electron 39
- **前端**React 19 + TypeScript
- **构建工具**electron-vite
- **浏览器自动化**Playwright
- **数据库**mysql2, mssql
- **Excel 处理**ExcelJS
- **测试**Vitest, Playwright Test
## 常见问题
### 无法连接 ERP 系统
1. 检查 `config.yaml` 中的 ERP URL 是否正确
2. 确认网络连接正常
3. 检查 ERP 系统是否可访问
4. 在设置界面中确认 ERP 用户名和密码已配置
### 提取失败
1. 确认订单号格式正确
2. 检查 ERP 系统账号权限
3. 查看应用日志获取详细错误信息
### 数据库连接失败
1. 确认数据库服务已启动
2. 检查 `config.yaml` 中的数据库配置
3. 确认防火墙允许数据库端口访问
## 开发
```bash
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 类型检查
npm run typecheck
# 代码格式化
npm run format
# Lint 检查
npm run lint
```
## 许可证
MIT License