ARTICLE · 1350776
项目源码|管伊佳 ERP 进销存系统|Spring Boot + Vue 2 · 采购销售仓库财务
课设或毕设想做一套「进销存 / 仓库 / 财务」完整业务,又不想只改通用后台的增删改查?管伊佳 ERP 把零售、采购、销售、仓库、财务和进销存报表收进一套前后端分离工程:后端 Spring Boot,前端 Vue 2。
本篇在本机用源码跑通,没有使用任何云平台或演示站。结论先说:租户账号登录、首页统计、商品信息、补一张采购入库、再开一张销售出库、打开进销存统计和仓库信息、查看结算账户,这些都实测过。 零售出库页面可以打开,本篇没有补零售单。超管账号下的租户管理页也打开过,用来对比两种账号的差别。这是课设和二次开发学习项目,技术栈偏旧,不要当成可直接裸奔公网的生产系统。下载区是源码包和中文部署说明,积分 80。
4 步上手
- 准备环境并改配置
:必须安装 JDK 8(Java 的 8 版本,不要用 17 或 21 硬上)、Maven、Node.js(建议 20)和 Yarn。用 Docker 准备 MySQL 8 和 Redis,端口只绑 127.0.0.1。编辑jshERP-boot/src/main/resources/application.yml:后端端口9999,服务路径(context-path)设为/jshERP-boot,加上server.address=127.0.0.1。把数据库口令和 Redis 口令改成你自己的,两边要一致。MySQL 8 若报 Public Key Retrieval,在 JDBC 地址里补上allowPublicKeyRetrieval=true和serverTimezone=Asia/Shanghai。默认文件目录在/opt下,没有写权限就改成本机可写目录并先建好文件夹。再检查pom.xml里maven-compiler-plugin的skip,必须是false,否则打出来的 jar 里没有 class。 - 建库并导入首次安装脚本
:库名必须是 jsh_erp(中间是下划线)。只导入jshERP-boot/docs/jsh_erp.sql。同目录那份「数据库更新记录」是给老库升级的,第一次安装不要跑。 - 启动后端
:在 jshERP-boot执行mvn -DskipTests package,再java -jar target/jshERP.jar。启动类是com.jsh.erp.ErpApplication,包名是jshERP。 - 启动前端并登录
:在 jshERP-web配好 Yarn 镜像后执行yarn install && yarn serve。开发端口 3000,已经把/jshERP-boot代理到http://127.0.0.1:9999。Node 17 及以上若 webpack 报 OpenSSL 错误,启动前加上NODE_OPTIONS=--openssl-legacy-provider。打开http://127.0.0.1:3000/,用租户账号登录。不要用超管账号走采购销售主线。
它是什么
- 进销存
:采购入库、销售出库,以及请购、订单、退货等单据。本篇实测了采购入库和销售出库各一张。 - 仓库
:仓库资料、库存数量,还有调拨等出入库单据。本篇看了仓库信息页;调拨支持但本篇未实测。 - 财务
:结算账户、收入、付款等。本篇看了结算账户;收入单和付款单支持但本篇未实测。 - 报表
:进销存统计、库存、采购销售汇总等。本篇实测了进销存统计。 零售出库在菜单里可以打开,本篇没有补零售单,支持但本篇未实测开单。
技术栈:Spring Boot 2.0、JDK 8、MyBatis-Plus(简化数据库操作的工具)、MySQL 8、Redis、Vue 2.7、Ant Design Vue 1.5、Maven、Yarn。前端界面的模板源自较早的 Jeecg-Boot 2.2,和后来的 JeecgBoot 3.x 不是同一个项目。开源包提供的是电脑端进销存能力,不包含手机端小程序或付费插件的完整功能。
本机实跑
1. 登录页

看这里:左侧是产品说明,右侧是登录框。用户名、密码、验证码都是空的,没有预填。默认开启验证码;本机调试不方便时,可以用超管进入「系统管理 → 平台配置」,把验证码启用标记改成 0,再重新登录。主线请用租户账号,不要用超管去做采购和销售。
2. 租户登录后的首页统计

看这里:用租户账号登录后进入首页。补完下面两张单据后,今日销售是 15 元(卖出 1 个商品 1),今日采购是 22 元(入库 2 个,单价 11)。本月、今年的数字与今天一致。下方三张图里,销售和采购在 2026 年 11 月都有柱子,零售仍是 0。第一次进入会弹出新手说明,关掉即可。
3. 商品信息

看这里:在「商品管理 → 商品信息」按名称查「商品 1」。列表里出现商品 1 和商品 17(名称里也带「商品 1」)。商品 1 的条码是 1001,单位是「个」,库存 3,采购价 11。演示库里还有带制造商字样的其他商品,这一页没有用到。
4. 采购入库

看这里:在「采购管理 → 采购入库」补了一张单。供应商是「供应商 1」,单号 CGRK00000000675,商品是「商品 1」,数量 2,单据日期是 2026-11-13 09:09(Asia/Shanghai)。操作员显示为「测试用户」。保存后出现在列表里,状态还没有点审核。
5. 销售出库

看这里:接着在「销售管理 → 销售出库」开了一张单。客户是「客户 1」,单号 XSCK00000000676,还是「商品 1」,数量 1,单价按演示数据里的销售价 15,时间紧挨着上一张入库单。列表可以查看、编辑和复制。
6. 仓库信息

看这里:「基础资料 → 仓库信息」里有仓库 1、仓库 2、仓库 3。本篇入库和出库都走仓库 1。负责人、地址是演示占位数据。
7. 进销存统计

看这里:「报表查询 → 进销存统计」,默认周期大约是 2026 年 10 月到 11 月。商品 1 在这个周期内:上期结存 0,入库数量 2,出库数量 1,本期结存 1,结存金额 11。右上角合计与表格一致。这里统计的是所选周期内的出入库单据;周期开始前已经在库里的数量,不一定会出现在「上期结存」里。
8. 结算账户

看这里:「基础资料 → 结算账户」有账户 1 和账户 2,状态都是启用,账户 1 是默认账户。本篇两张单据都选了账户 1。收入单、付款单在「财务管理」菜单里,支持但本篇未实测。
9. 零售出库(未补单)

看这里:「零售管理 → 零售出库」可以打开,列表是空的。本篇没有补零售单,支持但本篇未实测开单。
10. 超管看到的租户管理

看这里:换成超管账号后,进入「系统管理 → 租户管理」。这里能看到租户列表、用户数量和到期时间,顶部欢迎语变成了「管理员」。超管的职责是管租户和平台配置,不是编辑采购销售单。做进销存主线时请切回租户账号。
实测踩坑
- JDK 必须是 8
:用 17 或 21 不要直接硬上。先确认 java -version。 - 编译器 skip 要改成 false
:原仓库 pom.xml里maven-compiler-plugin可能写着skip=true。不改的话,打包会跳过编译,jar 里没有 class,启动会失败。源码包里这项已经改好。 - 库名和脚本不要弄错
:库名是 jsh_erp,只导首次安装 SQL。升级用的那份记录第一次不要跑。 - Redis 口令必须和配置一致
:对不上时,登录或会话会出问题。 - 文件目录要可写
:默认路径在 /opt下,没权限就改成本机目录,并先把文件夹建好。 - MySQL 8 可能要补 JDBC 参数
:遇到 Public Key Retrieval 时,加上 allowPublicKeyRetrieval=true和serverTimezone=Asia/Shanghai。 - 前端 OpenSSL 报错
:Node 17 及以上启动前加上 NODE_OPTIONS=--openssl-legacy-provider。 - 超管不是业务账号
:用超管登录往往做不了采购销售编辑,这是设计。主线用租户账号。 - 这是学习项目
:Spring Boot 2.0 加 Vue 2 偏旧。端口只绑本机,上线前换掉所有弱口令,不要把服务暴露到公网。
安全提醒
演示库、配置示例里都有公开弱口令。自己跑起来之后,立刻改数据库、Redis 和登录口令。 源码包里的配置已改成占位符,没有本机真实口令。 不要把账号密码写进笔记、截图或再分发的压缩包。
下载说明
积分下载源码包 jsherp-src.zip:含 jshERP-boot、jshERP-web、首次安装 SQL、完整 Apache-2.0 LICENSE,以及中文 DEPLOY.txt。已去掉 Git 历史、依赖目录、构建产物,以及文档里的打赏、微信、QQ、淘宝二维码和联系方式推广文案。
本项目基于 Apache-2.0 开源,源码包保留原协议。
原文:https://yuanyinglight.com/2513.html















































































