Appearance
项目简介
收支管理系统是一个自托管的个人收支管理应用,用于把分散在支付宝、微信、美团、银行等平台的账单汇总到一处,统一分类、打标签、统计收支,并通过自定义规则与 AI 能力减少手工整理的工作量。
解决什么问题
日常消费分散在多个平台:扫码用微信/支付宝、外卖在美团、大额消费走银行卡。各平台账单格式不同、导出入口不同,手动记录既繁琐又容易遗漏。本系统提供:
- 多来源账单导入:支付宝(CSV)、微信(xlsx)、美团(CSV)、招商银行(CSV/PDF)、交通银行(xls),支持加密 zip 压缩包;解析预览后再确认导入,按交易号去重。
- 自动归类:自定义规则按关键词、收支类型、金额区间自动匹配分类与标签;AI 可对已有记录批量给出分类/标签建议。
- 统计与图表:月度汇总、分类占比、收支趋势、支付方式占比,支持自定义时间范围与多维度筛选。
- 自动化提醒:按周期提醒导入新账单;也可通过 IMAP 监听邮箱自动拉取账单邮件。
核心功能
| 模块 | 能力 |
|---|---|
| 收支记录 | 增删改查、分页与多条件筛选、批量设置分类/标签、批量删除、计入统计开关、备注隐藏、导出 Excel |
| 分类与标签 | 收入/支出分类与标签的增删改查,新用户自动获得默认数据,AI 推荐 Emoji 与颜色 |
| 统计图表 | 月度收支、分类占比、收支趋势、支付方式占比,支持按日/周/月/季/年粒度 |
| 账单导入 | 五类账单解析、zip 解密、解析预览、按交易号去重、规则建议 |
| 自定义规则 | 关键词/收支类型/金额区间组合,优先级排序、启用停用,导入时自动应用 |
| AI 能力 | 分类标签建议、自然语言查询、自然语言记账、分类/标签生成、Emoji/颜色推荐、用量统计 |
| 邮箱账单 | 多邮箱 IMAP IDLE 监听、发件人规则识别账单类型、待处理列表先预览再导入 |
| 定时通知 | 每天/每周/每月提醒,邮箱 SMTP 与 Server 酱渠道,发送日志 |
| 系统日志 | 访问日志、登录日志、运行日志在线查看,运行日志实时推送,自动清理 |
| 账号与多语言 | JWT 登录、注册开关、运行时数据库配置(SQLite/MySQL)、中/英/日三语 |
技术栈
| 层级 | 技术 |
|---|---|
| 后端 | Spring Boot 3.3.6 + Java 21 + MyBatis-Plus 3.5.12 + MySQL / SQLite |
| 前端 | Vue 3 + TypeScript + Vite + Naive UI + ECharts + Pinia |
| 构建 | Gradle 8.13(后端)/ npm(前端) |
| 认证 | JWT |
| 对象映射 | MapStruct 1.6.3 |
| 账单解析 | EasyExcel 4.0.3 + PDFBox 3.0.3 + Zip4j 2.11.5 |
| AI 能力 | DeepSeek |
| 通知渠道 | 邮箱 SMTP / Server 酱 |
| 多语言 | 中文 / 英文 / 日文(vue-i18n) |
| API 文档 | Knife4j(OpenAPI 3) |
适用场景
- 个人或家庭希望把多平台账单集中管理、统一统计。
- 希望按自己的习惯自定义分类、标签与自动归类规则。
- 希望借助 AI 快速完成分类打标、自然语言查询与记账。
- 希望私有部署,数据保存在本地 SQLite 或自有 MySQL 中。