
大家好,我是 Java陈序员。
今天,今天给大家介绍一款令人眼前一亮的国产开源 ERP 系统!
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。
项目介绍
xingyun —— 一个基于 SpringBoot 框架,为中小企业提供完全开源、永久免费、用户体验好的进销存 ERP 系统。
功能模块:
- 系统管理:系统设置、菜单、部门、角色、用户、操作日志
 - 基础信息:仓库、供应商、客户、会员基础信息
 - 商品中心:商品主数据、商品分类、品牌、属性(自定义属性)
 - 采购管理:采购订单、收货单、退货单
 - 销售管理:销售订单、出库单、退货单
 - 零售管理:零售出库单、退货单
 - 库存管理:商品库存
 - 库存盘点:盘点参数设置、预先盘点单管理、盘点任务管理、盘点单管理
 - 库存调整:库存调整原因管理、库存调整
 - 结算管理:供应商费用单、预付款单、对账单、结算单、收入/支出项目
 - 代码生成:生成增删改查代码
 - 多租户:支持多租户
 
技术栈:
- Springboot2
 - MyBatis-Plus
 - HuTool
 - Lombok
 - EasyExcel
 - Vue
 
系统截图
- 仪表盘
 

- 基础信息管理
 

- 商品中心
 

- 采购管理
 


- 销售管理
 

- 零售管理
 

- 库存管理
 

- 库存盘点
 

- 库存调整
 

- 结算管理
 

- 物流管理
 

本地开发
开发环境
- JDK 1.8
 - MySQL 5.7.18
 - Redis 4.0.8
 - RabbitMQ 3.12.4
 - Node.js
 
后端服务
1、克隆代码
git clone https://gitee.com/lframework/xingyun.git
2、以 Maven 工程的形式导入到 IDEA 中,项目的目录结构如下
xingyun
├──cloud:
│    ├──xingyun-cloud-api:Spring Cloud 架构的 API 接口层
│    └──xingyun-cloud-gateway:GateWay 网关
├──xingyun-api:API 接口层
├──xingyun-basedata:基础数据服务层
├──xingyun-chart:图标服务层
├──xingyun-comp:公共组件服务层
├──xingyun-core:基础依赖
├──xingyun-export:导出服务层
├──xingyun-sc:仓库业务服务层
├──xingyun-settle:结算服务层
└──xingyun-sys:系统服务层
3、初始化数据库
数据库脚本就在 xingyun-api 的 src/main/resources/db/migration 目录中。
- all目录中的是全量SQL
- platform.sql是平台库SQL
 - tenant.sql是租户库SQL
 
 - migration目录中的是增量SQL
- platform目录中是平台库的增量SQL
 - tenant目录中是租户库的增量SQL
 
 
如果不使用多租户,平台库和租户库的 SQL 就在同一个库中执行即可。
首次使用时,直接使用 all 目录中的全量 SQL 即可。后续进行升级时,使用增量 SQL 进行更新。
使用多租户时,租户库是从平台库的 tenant 表中获取的,需要修改连接地址和数据库用户名密码。
update tenant SET jdbc_url = 'jdbc:mysql://localhost:3306/platform', jdbc_username = 'root', jdbc_password = '12d64522061abb19884d43cdcui06a46' where id = 1000;
tenant 表中存储的密码不是明文密码,需要将明文密码加密后存储,参见 EncryptUtil 中的方法进行转换。
可通过如下代码生成密码:
public static void main(String[] args) {
    SecretProperties secretProperties = new SecretProperties();
    // key 的值需要与配置文件 application.yml 中的配置 jugg.secret.key 一致
    secretProperties.setKey("eRE2drUFINojkG9ivqtfOA==");
    String encrypt = EncryptUtil.encrypt("root", secretProperties);
    System.out.println(encrypt);
}
注意:
- MySQL 的 
sql-mode不要开启严格模式 - MySQL 需要关闭区分大小写
 
4、修改配置文件 application.yaml 文件中的配置
- 修改 MySQL 连接地址配置
 
spring:
  datasource:
    dynamic:
      # 设置默认数据源
      primary: master
      # 是否严格匹配数据源,未匹配到指定数据源时 true 抛异常, false 使用默认数据源
      strict: true
      datasource:
        master:
          type: com.alibaba.druid.pool.DruidDataSource
          driver-class-name: com.mysql.cj.jdbc.Driver
          # 连接地址
          url: jdbc:mysql://localhost:3306/platform?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
          # 用户名
          username: root
          # 密码
          password: root
- 修改 Redis 连接地址配置
 
spring:
  redis:
    # 地址
    host: localhost
    # 端口,默认为6379
    port: 6379
    # 数据库
    database: 0
    # 密码
    password: 123456
- 修改 RabbitMQ 连接地址配置
 
spring: 
  rabbitmq:
    # RabbitMQ 集群地址列表,多个地址用逗号分隔
    addresses: localhost:5672
    virtual-host: /
    # 用户名
    username: admin
    # 密码
    password: 123456
5、运行启动类 com.lframework.xingyun.api.XingYunApiApplication, 启动项目
前端服务
1、克隆代码
git clone https://gitee.com/lframework/xingyun-front.git
2、项目目录结构
xingyun-front
├──public:不需要编译的文件,比如 index.html、静态资源文件
└──src
    ├──api:接口定义
    ├──assets:资源文件
    ├──commponents:项目中的组件
    ├──design:全局样式配置
    ├──directive:自定义指令
    ├──enums:枚举
    ├──events:全局事件总线
    ├──hooks:hooks
    ├──layouts:主页面布局
    ├──locales:国际化
    ├──logics:系统逻辑
    ├──mixins:mixins
    ├──router:路由
    ├──settings:系统配置
    ├──store:Vue Store相关
    ├──utils:工具类
    └──views:页面
如果只是写业务,只需要关注一般常用的目录:
src/api、src/views、src/enums、src/utils, 其他的目录可以忽略。
3、进入项目目录并安装依赖
cd xingyun-front
pnpm install
4、运行服务
pnpm run dev
5、当控制台打印如下信息,说明启动成功
VITE v4.4.0  ready in 5827 ms
  Local:   http://localhost:5173/                                                        
  Network: http://192.168.31.92:5173/                                                               
  press h to show help    
浏览器访问:
http://localhost:5173
5、打包部署
pnpm run build
总的来说,xingyun 是一款非常优秀的开源 ERP 系统。它的技术架构设计优雅,功能模块丰富。对于中小企业来说是一个值得信赖的企业管理解决方案,同时也是一个适合开发者学习和实践的好项目。
项目地址:https://gitee.com/lframework/xingyun
最后
推荐的开源项目已经收录到 GitHub 项目,欢迎 Star:
https://github.com/chenyl8848/great-open-source-project
或者访问网站,进行在线浏览:
https://chencoding.top:8090/#/

我创建了一个开源项目交流群,方便大家在群里交流、讨论开源项目。
但是任何人在群里打任何广告,都会被 T 掉。
如果你对这个交流群感兴趣或者在使用开源项目中遇到问题,可以通过如下方式进群:
关注微信公众号:【Java陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群。
大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!
