# 汇账 个人汇账应用:收支记录、分类标签、账单导入、归类规则、AI 智能记账、统计图表、定时提醒与系统日志。 ## 功能特性 - 收支记录:增删改查、筛选分页、批量操作、Excel 导出,支持「计入统计」「备注隐藏」开关。 - 分类与标签:增删改查与默认数据,分类图标/标签颜色支持 AI 推荐。 - 交易渠道:内置渠道 + 自定义渠道(改名不影响历史账单,有账单使用时不可删除)。 - 统计与图表:月度收支、分类占比、收支趋势、分组统计与概览(ECharts)。 - 账单导入:支付宝/微信/美团/淘宝/京东/交行/招行,支持 zip(含加密压缩包),预览后确认导入并按交易号去重。 - 自定义规则:关键词、收支类型、金额区间组合,命中后自动应用分类与标签。 - AI 能力:分类/标签建议与一键采纳、自然语言查询与记账、图片记账(SSE 进度)、生成分类标签与图标颜色、用量统计。 - 定时提醒与通知:每天/每周/每月提醒,邮箱与 Server 酱推送。 - 系统日志:访问/登录日志查询,运行日志在线查看(SSE 实时推送)。 - 账号与多语言:JWT 登录、注册开关、运行时切换 SQLite/MySQL、中英日界面。 ## 快速开始 前置条件:JDK 21(Temurin,含编译工具链与 jpackage)、Node.js(含 npm)。 > 首次构建或运行需联网:Gradle 会下载发行版与 Maven 依赖,前端会 `npm install` 安装依赖。使用 wrapper(`./gradlew` / `gradlew.bat`)可自动获取所需 Gradle 版本。 ```bash # Windows 用 gradlew.bat,Linux/macOS 用 ./gradlew # 后端(默认 8080,接口文档 http://localhost:8080/doc.html) ./gradlew bootRun # 前端(默认 5173,/api 由 Vite 代理到 8080) cd frontend && npm install && npm run dev ``` 数据库无需预先准备:启动后在页面按引导选择 SQLite(本地文件,零配置)或 MySQL,保存后立即生效并自动建表;配置持久化于 `config/database.json`。 ## 代码检查 - 后端:`./gradlew lint`(Spotless + Checkstyle + SpotBugs)。 - 前端:`cd frontend && npm run lint`(ESLint;`npm run lint:fix` 自动修复,`npm run format` 用 Prettier 格式化)。 - `bootJar` / `bootGuiJar` 会先执行后端检查与前端 ESLint,检查不通过则中断打包。 ## 构建与打包 ```bash ./gradlew bootJar bootGuiJar # 普通 jar + 带 GUI 启动器的 jar(内嵌前端),产物在 build/libs/ ./gradlew jpackageAppImage # 免安装应用(普通 + GUI),产物在 build/jpackage/ ``` - 打包前会先安装前端依赖并构建前端产物,再一并打入 jar,无需手动 `npm run build`。 - GUI jar 内嵌前后端与跨平台 JavaFX,单文件即可运行;配置与日志默认落在 jar 所在目录,可用 `--home=<目录>` 或环境变量 `LEDGERLY_HOME` 指定。 - app-image 自带运行时、免安装,但只能为**当前操作系统**生成。