基于 AI 视觉识别的发票智能管理平台,支持发票图片上传、自动识别、查询管理和统计分析。
GitHub:https://github.com/Jeniter/invoice-system
| 配置项 |
值 |
| 主机 |
localhost |
| 端口 |
3306 |
| 用户名 |
root |
| 密码 |
(空) |
| 数据库名 |
invoice_system |
- AI 智能识别:上传发票图片,调用 GPT-4o-mini Vision 自动提取发票代码、号码、日期、金额等 12 个核心字段
- 发票查询:支持日期范围筛选 + 多字段模糊搜索,分页浏览,点击查看详情与原始图片
- 统计分析:实时汇总发票张数、价税合计、不含税金额、税额,支持条件筛选
- Hello Kitty 主题:粉色 UI 风格,自定义鼠标光标 + 泡泡拖尾动效
| 层级 |
技术 |
| 前端 |
Vue 3 + Vite + Element Plus + Axios |
| 后端 |
Node.js + Express + Multer |
| 数据库 |
MySQL 9.6(mysql2/promise 连接池) |
| AI 识别 |
OpenAI GPT-4o-mini Vision API |
├── client/ # 前端
│ ├── src/
│ │ ├── api/invoice.js # API 接口封装
│ │ ├── assets/
│ │ │ ├── image/ # 背景图、鼠标图标等素材
│ │ │ └── styles/main.css # 全局样式
│ │ ├── router/index.js # 路由配置
│ │ ├── views/
│ │ │ ├── HomeView.vue # 发票上传页
│ │ │ ├── QueryView.vue # 发票查询页
│ │ │ └── StatisticsView.vue # 发票统计页
│ │ ├── App.vue # 根组件(侧边栏布局 + 鼠标特效)
│ │ └── main.js # 入口文件
│ └── vite.config.js # Vite 配置(proxy + HMR)
├── server/ # 后端
│ ├── config/db.js # MySQL 连接配置
│ ├── controllers/ # 业务逻辑控制器
│ ├── models/ # 数据库操作层
│ ├── routes/ # RESTful API 路由
│ ├── services/ocr.service.js # AI 发票识别服务
│ ├── uploads/ # 上传图片存储目录
│ └── app.js # Express 入口
├── database/init.sql # 数据库初始化脚本
├── .env # 环境变量(不提交到 Git)
├── 开发文档.md # 详细开发记录
└── package.json # 根目录脚本(concurrently)
- Node.js >= 18
- MySQL >= 5.6
- OpenAI API Key(需支持 Vision 能力)
# 1. 克隆项目
git clone https://github.com/Jeniter/invoice-system.git
cd invoice-system
# 2. 安装依赖(前后端 + 根目录)
npm install
cd client && npm install && cd ..
cd server && npm install && cd ..
# 3. 启动 MySQL 并初始化数据库
brew services start mysql
mysql -u root < database/init.sql
# 4. 配置环境变量
cp .env.example .env
# 编辑 .env,填写你的 OPENAI_API_KEY 和数据库密码
# 一键启动前后端(使用 concurrently)
npm run dev
| 方法 |
路径 |
功能 |
| POST |
/api/invoices/upload |
上传发票图片并 AI 识别 |
| GET |
/api/invoices |
查询发票列表(分页 + 搜索) |
| GET |
/api/invoices/:id |
获取发票详情 |
| GET |
/api/invoices/:id/image |
获取发票原始图片 |
| GET |
/api/invoices/statistics/summary |
统计汇总 |
| DELETE |
/api/invoices/:id |
删除发票 |
invoices 表(中文字段名,Navicat 友好):
| 字段 |
类型 |
说明 |
| id |
INT |
主键自增 |
| 发票代码 |
VARCHAR(50) |
发票代码 |
| 发票号码 |
VARCHAR(50) |
发票号码 |
| 开票日期 |
DATE |
开票日期 |
| 发票类型 |
VARCHAR(50) |
增值税普通/专用发票等 |
| 购买方名称 |
VARCHAR(200) |
购买方名称 |
| 购买方税号 |
VARCHAR(50) |
购买方纳税人识别号 |
| 销售方名称 |
VARCHAR(200) |
销售方名称 |
| 销售方税号 |
VARCHAR(50) |
销售方纳税人识别号 |
| 不含税金额 |
DECIMAL(12,2) |
金额(不含税) |
| 税额 |
DECIMAL(12,2) |
税额 |
| 价税合计 |
DECIMAL(12,2) |
价税合计 |
| 备注 |
TEXT |
备注信息 |
| 图片路径 |
VARCHAR(500) |
图片本地存储路径 |
| 图片数据 |
LONGBLOB |
图片二进制数据 |
| AI识别结果 |
TEXT |
AI 原始识别结果(JSON) |
| 创建时间 |
DATETIME |
创建时间 |
| 更新时间 |
DATETIME |
更新时间 |
- 课程名称:智能系统综合设计
- 项目创建日期:2026-03-02