Skip to content

Jeniter/invoice-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

发票识别智能管理系统

基于 AI 视觉识别的发票智能管理平台,支持发票图片上传、自动识别、查询管理和统计分析。

GitHubhttps://github.com/Jeniter/invoice-system

启动指令

npm run dev

数据库连接信息

配置项
主机 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

API 接口

方法 路径 功能
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

About

发票识别智能管理系统 - Vue 3 + Express + MySQL + GPT-4o-mini Vision

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors