ERP 开源系统!中小企业管理的宝藏利器!
<p>大家好,我是 <code>Java陈序员</code>。</p><p>今天,今天给大家介绍一款令人眼前一亮的国产开源 ERP 系统!</p>
<blockquote>
<p>关注微信公众号:【Java陈序员】,获取<strong>开源项目分享、AI副业分享、超200本经典计算机电子书籍等。</strong></p>
</blockquote>
<h2 id="项目介绍">项目介绍</h2>
<p><code>xingyun</code> —— 一个基于 SpringBoot 框架,为中小企业提供完全开源、永久免费、用户体验好的进销存 ERP 系统。</p>
<p><strong>功能模块</strong>:</p>
<ul>
<li><strong>系统管理</strong>:系统设置、菜单、部门、角色、用户、操作日志</li>
<li><strong>基础信息</strong>:仓库、供应商、客户、会员基础信息</li>
<li><strong>商品中心</strong>:商品主数据、商品分类、品牌、属性(自定义属性)</li>
<li><strong>采购管理</strong>:采购订单、收货单、退货单</li>
<li><strong>销售管理</strong>:销售订单、出库单、退货单</li>
<li><strong>零售管理</strong>:零售出库单、退货单</li>
<li><strong>库存管理</strong>:商品库存</li>
<li><strong>库存盘点</strong>:盘点参数设置、预先盘点单管理、盘点任务管理、盘点单管理</li>
<li><strong>库存调整</strong>:库存调整原因管理、库存调整</li>
<li><strong>结算管理</strong>:供应商费用单、预付款单、对账单、结算单、收入/支出项目</li>
<li><strong>代码生成</strong>:生成增删改查代码</li>
<li><strong>多租户</strong>:支持多租户</li>
</ul>
<p><strong>技术栈</strong>:</p>
<ul>
<li>Springboot2</li>
<li>MyBatis-Plus</li>
<li>HuTool</li>
<li>Lombok</li>
<li>EasyExcel</li>
<li>Vue</li>
</ul>
<h2 id="系统截图">系统截图</h2>
<ul>
<li><strong>仪表盘</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103327.png"></p>
<ul>
<li><strong>基础信息管理</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103347.png"></p>
<ul>
<li><strong>商品中心</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103408.png"></p>
<ul>
<li><strong>采购管理</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103421.png"></p>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103440.png"></p>
<ul>
<li><strong>销售管理</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103459.png"></p>
<ul>
<li><strong>零售管理</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103513.png"></p>
<ul>
<li><strong>库存管理</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103526.png"></p>
<ul>
<li><strong>库存盘点</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103543.png"></p>
<ul>
<li><strong>库存调整</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103558.png"></p>
<ul>
<li><strong>结算管理</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103619.png"></p>
<ul>
<li><strong>物流管理</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/xingyun/img-20250621103631.png"></p>
<h2 id="本地开发">本地开发</h2>
<h3 id="开发环境">开发环境</h3>
<ul>
<li>JDK 1.8</li>
<li>MySQL 5.7.18</li>
<li>Redis 4.0.8</li>
<li>RabbitMQ 3.12.4</li>
<li>Node.js</li>
</ul>
<h3 id="后端服务">后端服务</h3>
<p>1、克隆代码</p>
<pre><code class="language-bash">git clone https://gitee.com/lframework/xingyun.git
</code></pre>
<p>2、以 Maven 工程的形式导入到 IDEA 中,项目的目录结构如下</p>
<pre><code class="language-bash">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:系统服务层
</code></pre>
<p>3、初始化数据库</p>
<p>数据库脚本就在 <code>xingyun-api</code> 的 <code>src/main/resources/db/migration</code> 目录中。</p>
<ul>
<li>all目录中的是全量SQL
<ul>
<li>platform.sql是平台库SQL</li>
<li>tenant.sql是租户库SQL</li>
</ul>
</li>
<li>migration目录中的是增量SQL
<ul>
<li>platform目录中是平台库的增量SQL</li>
<li>tenant目录中是租户库的增量SQL</li>
</ul>
</li>
</ul>
<p>如果不使用多租户,平台库和租户库的 SQL 就在同一个库中执行即可。</p>
<blockquote>
<p>首次使用时,直接使用 all 目录中的全量 SQL 即可。后续进行升级时,使用增量 SQL 进行更新。</p>
</blockquote>
<p>使用多租户时,租户库是从平台库的 <code>tenant</code> 表中获取的,需要修改连接地址和数据库用户名密码。</p>
<pre><code class="language-sql">update tenant SET jdbc_url = 'jdbc:mysql://localhost:3306/platform', jdbc_username = 'root', jdbc_password = '12d64522061abb19884d43cdcui06a46' where id = 1000;
</code></pre>
<p>tenant 表中存储的密码不是明文密码,需要将明文密码加密后存储,参见 <code>EncryptUtil</code> 中的方法进行转换。</p>
<p>可通过如下代码生成密码:</p>
<pre><code class="language-java">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);
}
</code></pre>
<p><strong>注意</strong>:</p>
<ol>
<li>MySQL 的 <code>sql-mode</code> 不要开启严格模式</li>
<li>MySQL 需要关闭区分大小写</li>
</ol>
<p>4、修改配置文件 <code>application.yaml</code> 文件中的配置</p>
<ul>
<li>修改 MySQL 连接地址配置</li>
</ul>
<pre><code class="language-yaml">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
</code></pre>
<ul>
<li>修改 Redis 连接地址配置</li>
</ul>
<pre><code class="language-yaml">spring:
redis:
# 地址
host: localhost
# 端口,默认为6379
port: 6379
# 数据库
database: 0
# 密码
password: 123456
</code></pre>
<ul>
<li>修改 RabbitMQ 连接地址配置</li>
</ul>
<pre><code class="language-yaml">spring:
rabbitmq:
# RabbitMQ 集群地址列表,多个地址用逗号分隔
addresses: localhost:5672
virtual-host: /
# 用户名
username: admin
# 密码
password: 123456
</code></pre>
<p>5、运行启动类 <code>com.lframework.xingyun.api.XingYunApiApplication</code>, 启动项目</p>
<h3 id="前端服务">前端服务</h3>
<p>1、克隆代码</p>
<pre><code class="language-bash">git clone https://gitee.com/lframework/xingyun-front.git
</code></pre>
<p>2、项目目录结构</p>
<pre><code class="language-bash">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:页面
</code></pre>
<blockquote>
<p>如果只是写业务,只需要关注一般常用的目录:<code>src/api</code>、<code>src/views</code>、<code>src/enums</code>、<code>src/utils</code>, 其他的目录可以忽略。</p>
</blockquote>
<p>3、进入项目目录并安装依赖</p>
<pre><code class="language-bash">cd xingyun-front
pnpm install
</code></pre>
<p>4、运行服务</p>
<pre><code class="language-bash">pnpm run dev
</code></pre>
<p>5、当控制台打印如下信息,说明启动成功</p>
<pre><code class="language-bash">VITE v4.4.0ready in 5827 ms
➜Local: http://localhost:5173/
➜Network: http://192.168.31.92:5173/
➜press h to show help
</code></pre>
<p>浏览器访问:</p>
<pre><code class="language-bash">http://localhost:5173
</code></pre>
<p>5、打包部署</p>
<pre><code class="language-bash">pnpm run build
</code></pre>
<p>总的来说,<code>xingyun</code> 是一款非常优秀的开源 ERP 系统。它的技术架构设计优雅,功能模块丰富。对于中小企业来说是一个值得信赖的企业管理解决方案,同时也是一个适合开发者学习和实践的好项目。</p>
<pre><code>项目地址:https://gitee.com/lframework/xingyun
</code></pre>
<h2 id="最后">最后</h2>
<p>推荐的开源项目已经收录到 <code>GitHub</code> 项目,欢迎 <code>Star</code>:</p>
<pre><code>https://github.com/chenyl8848/great-open-source-project
</code></pre>
<p>或者访问网站,进行在线浏览:</p>
<pre><code>https://chencoding.top:8090/#/
</code></pre>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/github/img-20250608222400.png"></p>
<p><strong>我创建了一个开源项目交流群,方便大家在群里交流、讨论开源项目</strong>。</p>
<p><strong>但是任何人在群里打任何广告,都会被 T 掉</strong>。</p>
<p><strong>如果你对这个交流群感兴趣或者在使用开源项目中遇到问题,可以通过如下方式进群</strong>:</p>
<p><strong>关注微信公众号:【Java陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群</strong>。</p>
<blockquote>
<p>大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!</p>
</blockquote>
<hr><br><br>
来源:https://www.cnblogs.com/codechen8848/p/18940869
頁:
[1]