MCPcopy Index your code
hub / github.com/SpringSunYY/LZ-litchi

github.com/SpringSunYY/LZ-litchi @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
9,284 symbols 33,449 edges 2,084 files 3,315 documented · 36%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

你好,YY

Typing SVG

Typing SVG

Typing SVG

🧑‍💻开发必读

  • 如果这个项目让你有所收获,记得 Star 关注哦,这对我们是非常不错的鼓励与支持。本项目基于芋道开发。

因为国际化有几万条,数据量大,默认初始化SQL不提供国际化信息,可以联系我们给您【见下面联系方式】(推荐),或者可以自行运行代码国际化Python脚本,运行对应SQL,同时,因为根据芋道二次开发,原来没有国际化,国际化信息生成是使用AI生成的对应国际化Key,已经创建对应的国际化规范文档,可以使用规范文档生成,如果您觉得我们生成的不够好,可以自己生成,生成之后一定要在【国际化-国家地区】刷新国际化缓存,因为您直接执行SQL的话和系统无关,刷新不了缓存的。

后端脚本文件【consolidate_i18n_sql.py】会生成所有模块的国际化SQL,执行对应SQL即可

前端文件【apps/web-antd/src/locales/generate_i18n_sql.py】会生成一个all.sql和对应模块SQL,选择all.sql可以直接全部执行

后端规范文档【litchi-doc/i18n】、前端规范文档【litchi-doc/i18n】

注意注意,还有一个菜单的国际化和字典的国际化,视频说是自己生成,这里我们已经把字典和菜单SQL更新至【sql/mysql/lz-litchi-simp.sql】,所以无需重新生成,使用我们给的就可以

最后,如果国际化部分没有的话可以_Issues_ ,也可以自行生成,如果想要其他语言,可以导出为Excel文件,检查没有错后导入就行了,发给豆包【帮我把message列翻译en-US,其他列不变,返回数据给我,翻译内容尽量简短,所有message列内容都要翻译】,豆包会给你生成一个新的翻译的Excel文件,这波豆包上大分,我用其他AI还不能给我生成Excel文件。当前我们使用这个方法是可以的,后续如果有新的方法待续。

还有一点,当前提供的SQL初始化脚本数据库为MySQL(后端【sql/mysql/lz-litchi-simp.sql】),如果您有其他的数据库需求,理论上是可以实现的,因为芋道本身就支持多个数据库,但是您要自己初始化SQL,如果您这样做了,还成功了,麻烦您也给我们一份,因为我们也很需要😁😁😁

🐶 新手必读

  • 演示地址:https://www.litchi.work 【租户编码:litchi、账号:admin、密码:admin123】
  • 演示视频:https://www.bilibili.com/video/BV1RR7N6QEZo/?vd_source=c8ae193313b392ba04cef0f904b7106f
  • 启动教程:https://www.bilibili.com/video/BV1GMjm6cENu/?vd_source=c8ae193313b392ba04cef0f904b7106f
  • 视频教程:https://space.bilibili.com/3546627304327173/lists/8392666?type=season
  • 前端代码:https://github.com/SpringSunYY/LZ-litchi-ui-admin-vben

🐯 平台简介

荔枝,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。

有任何问题,或者想要的功能,可以在 Issues 中提给YY。

😜 给项目点点 Star 吧,这对我们真的很重要!

  • Java 后端:JDK 21 + Spring Boot 3.4.5,没错就是12345
  • 管理后台的电脑端:Vue3 、vben(ant-design-vue)
  • 后端采用 Spring Boot 多模块架构、MySQL + MyBatis Plus、Redis + Redisson
  • 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
  • 消息队列可使用 Event、Redis、RabbitMQ、Kafka、RocketMQ 等
  • 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统,支持 SSO 单点登录
  • 支持加载动态权限菜单,按钮级别权限控制,Redis 缓存提升性能
  • 支持 SaaS 多租户,可自定义每个租户的权限,提供透明化的多租户底层封装,为租户订阅租户套餐,让租户拥有权限
  • 国际化,使用在线配置的方式,实现多国语言在线配置国际化
  • 工作流使用 Flowable,支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式
  • 高效率开发,使用代码生成器可以一键生成 Java、Vue 前后端代码、SQL 脚本、接口文档,支持单表、树表、主子表、国际化
  • 实时通信,采用 Spring WebSocket 实现,内置 Token 身份校验,支持 WebSocket 集群
  • 集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务

😎 开源协议

为什么推荐使用本项目?

① 本项目采用比 Apache 2.0 更宽松的 MIT License 开源协议,个人与企业可 100% 免费使用,不用保留类作者、Copyright 信息。

② 代码全部开源,不会像其他项目一样,只开源部分代码,让你无法了解整个项目的架构设计。

③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细。

🤝 项目外包

  • 我们也是接外包滴,如果你有项目想要外包,可以微信联系【SpringSun_YY】。

  • 团队包含专业的项目经理、架构师、前端工程师、后端工程师、测试工程师、运维工程师,可以提供全流程的外包服务。

  • 项目可以是OA 系统、ERP 系统、CRM系统等等,或者您的二次开发。

  • 外包项目请联系

alt 定制开发

2

😁 联系我

QQ邮箱 Google邮箱 抖音 B站 YouTube

🐼 内置功能

  • 通用模块(必选):系统功能、基础设施
  • 通用模块(可选):工作流程
  • 业务系统(按需):ERP 系统、CRM 系统、AI 大模型

🙂 所有功能,都通过 单元测试 保证高质量。

系统功能

功能 描述
用户管理 用户是系统操作者,该功能主要完成系统用户配置
在线用户 当前系统中活跃用户状态监控,支持手动踢下线
角色管理 角色菜单权限分配、设置角色按机构进行数据范围权限划分
菜单管理 配置系统菜单、操作权限、按钮权限标识等,本地缓存提供性能
部门管理 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限
岗位管理 配置系统用户所属担任职务
租户管理 配置系统租户,支持 SaaS 场景下的多租户功能
租户套餐 配置租户套餐,自定每个租户的菜单、操作、按钮的权限
字典管理 对系统中经常使用的一些较为固定的数据进行维护
短信管理 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台
邮件管理 邮箱账号、邮件模版、邮件发送日志,支持所有邮件平台
站内信 系统内的消息通知,提供站内信模版、站内信消息
操作日志 系统正常操作日志记录和查询,集成 Swagger 生成日志内容
登录日志 系统登录日志记录查询,包含登录异常
错误码管理 系统所有错误码的管理,可在线修改错误提示,无需重启服务
通知公告 系统通知公告信息发布维护
敏感词 配置系统敏感词,支持标签分组
应用管理 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式
地区管理 展示省份、城市、区镇等城市信息,支持 IP 对应城市

工作流程

功能列表 功能描述
SIMPLE 设计器 仿钉钉/飞书设计器,支持拖拽搭建表单流程,10 分钟快速完成审批流程配置
BPMN 设计器 基于 BPMN 标准开发,适配复杂业务场景,满足多层级审批及流程自动化需求
会签 同一个审批节点设置多个人(如 A、B、C 三人,三人会同时收到待办任务),需全部同意之后,审批才可到下一审批节点
或签 同一个审批节点设置多个人,任意一个人处理后,就能进入下一个节点
依次审批 (顺序会签)同一个审批节点设置多个人(如 A、B、C 三人),三人按顺序依次收到待办,即 A 先审批,A 提交后 B 才能审批,需全部同意之后,审批才可到下一审批节点
抄送 将审批结果通知给抄送人,同一个审批默认排重,不重复抄送给同一人
驳回 (退回)将审批重置发送给某节点,重新审批。可驳回至发起人、上一节点、任意节点
转办 A 转给其 B 审批,B 审批后,进入下一节点
委派 A 转给其 B 审批,B 审批后,转给 A,A 继续审批后进入下一节点
加签 允许当前审批人根据需要,自行增加当前节点的审批人,支持向前、向后加签
减签 (取消加签)在当前审批人操作之前,减少审批人
撤销 (取消流程)流程发起人,可以对流程进行撤销处理
终止 系统管理员,在任意节点终止流程实例
表单权限 支持拖拉拽配置表单,每个审批节点可配置只读、编辑、隐藏权限
超时审批 配置超时审批时间,超时后自动触发审批通过、不通过、驳回等操作
自动提醒 配置提醒时间,到达时间后自动触发短信、邮箱、站内信等通知提醒,支持自定义重复提醒频次
父子流程 主流程设置子流程节点,子流程节点会自动触发子流程。子流程结束后,主流程才会执行(继续往下下执行),支持同步子流程、异步子流程
条件分支 (排它分支)用于在流程中实现决策,即根据条件选择一个分支执行
并行分支 允许将流程分成多条分支,不进行条件判断,所有分支都会执行
包容分支 (条件分支 + 并行分支的结合体)允许基于条件选择多条分支执行,但如果没有任何一个分支满足条件,则可以选择默认分支
路由分支 根据条件选择一个分支执行(重定向到指定配置节点),也可以选择默认分支执行(继续往下执行)
触发节点 执行到该节点,触发 HTTP 请求、HTTP 回调、更新数据、删除数据等
延迟节点 执行到该节点,审批等待一段时间再执行,支持固定时长、固定日期等
拓展设置 流程前置/后置通知,节点(任务)前置、后置通知,流程报表,自动审批去重,自定流程编号、标题、摘要,流程报表等

基础设施

功能 描述
代码生成 前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载
国际化 在线国际化,前端、后台报错、导入导出均可以国际化,并且您可以选择是否开启国际化
系统接口 基于 Swagger 自动生成相关的 RESTful API 接口文档
数据库文档 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式
表单构建 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件
配置管理 对系统动态配置常用参数,支持 SpringBoot 加载
定时任务 在线(添加、修改、删除)任务调度包含执行结果日志
文件服务 支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等
WebSocket 提供 WebSocket 接入示例,支持一对一、一对多发送方式
API 日志 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题
MySQL 监控 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈
Redis 监控 监控 Redis 数据库的使用情况,使用的 Redis Key 管理
消息队列 基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费
Java 监控 基于 Spring Boot Admin 实现 Java 应用的监控
链路追踪 接入 SkyWalking 组件,实现链路追踪
日志中心 接入 SkyWalking 组件,实现日志中心
服务保障 基于 Redis 实现分布式锁、幂等、限流功能,满足高并发场景
日志服务 轻量级日志中心,查看远程服务器的日志
单元测试 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等

🐨 技术栈

模块

项目 说明
litchi-dependencies Maven 依赖版本管理
litchi-framework Java 框架拓展
litchi-server 管理后台 + 用户 APP 的服务端
litchi-module-system 系统功能的 Module 模块
litchi-module-infra 基础设施的 Module 模块
litchi-module-bpm 工作流程的 Module 模块
litchi-module-erp ERP 系统的 Module 模块
litchi-module-crm CRM 系统的 Module 模块
litchi-module-ai AI 大模型的 Module 模块

框架

框架 说明 版本
Spring Boot 应用开发框架 3.4.5
MySQL 数据库服务器 5.7 / 8.0+
Druid JDBC 连接池、监控组件 1.2.23
MyBatis Plus MyBatis 增强工具包 3.5.7
Dynamic Datasource 动态数据源 4.3.1
Redis key-value 数据库 5.0 / 6.0 /7.0
Redisson Redis 客户端 3.32.0
Spring MVC MVC 框架 6.1.10
Spring Security Spring 安全框架 6.3.1
Hibernate Validator 参数校验组件 8.0.1
Flowable 工作流引擎 7.0.0
Quartz 任务调度组件 2.3.2
Springdoc Swagger 文档 2.3.0
SkyWalking 分布式应用追踪系统 9.0.0
Spring Boot Admin Spring Boot 监控平台 3.3.2
Jackson JSON 工具库 2.17.1
MapStruct Java Bean 转换 1.6.3
Lombok 消除冗长的 Java 代码 1.18.34
JUnit Java 单元测试框架 5.10.1
Mockito Java Mock 框架 5.7.0

🐷 演示图

注:只是部分功能演示图,主要请查看演示地址

系统功能

模块 biu biu biu
登录 & 首页 登录 首页 个人中心
用户 & 应用 用户管理 令牌管理 应用管理
租户 & 套餐 租户管理 租户套餐 租户套餐
部门 & 岗位 部门管理 岗位管理
菜单 & 角色 菜单管理 角色管理
审计日志 操作日志 登录日志
短信 短信渠道 短信模版 短信日志
字典 字典类型
公告 & 通知 错误码管理 通知公告 站内信

工作流程

模块 biu biu biu
流程模型 流程模型-列表 流程模型-设计 流程模型-定义
表单 & 分组 流程表单 用户分组 用户分组
我的流程 我的流程-列表 我的流程-发起 我的流程-详情
待办 & 已办 任务列表-审批 审批流程 已办任务

基础设施

模块 biu biu biu
代码生成 代码生成-列表 代码生成-预览

Extension points exported contracts — how you extend this code

JobHandler (Interface)
任务处理器 @author 荔枝源码 [30 implementers]
litchi-framework/litchi-spring-boot-starter-job/src/main/java/com/lz/framework/quartz/core/handler/JobHandler.java
DataPermissionRule (Interface)
数据权限规则接口 通过实现接口,自定义数据规则。例如说, @author 荔枝源码 [7 implementers]
litchi-framework/litchi-spring-boot-starter-biz-data-permission/src/main/java/com/lz/framework/datapermission/core/rule/DataPermissionRule.java
RateLimiterKeyResolver (Interface)
限流 Key 解析器接口 @author 荔枝源码 [13 implementers]
litchi-framework/litchi-spring-boot-starter-protection/src/main/java/com/lz/framework/ratelimiter/core/keyresolver/RateLimiterKeyResolver.java
FileClientConfig (Interface)
文件客户端的配置 不同实现的客户端,需要不同的配置,通过子类来定义 @author 荔枝源码 [6 implementers]
litchi-module-infra/src/main/java/com/lz/module/infra/framework/file/core/client/FileClientConfig.java
BpmTaskCandidateStrategy (Interface)
BPM 任务的候选人的策略接口 例如说:分配审批人 @author 荔枝源码 [11 implementers]
litchi-module-bpm/src/main/java/com/lz/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateStrategy.java
CrmCustomerPoolConfigService (Interface)
客户公海配置 Service 接口 @author Wanwan [4 implementers]
litchi-module-crm/src/main/java/com/lz/module/crm/service/customer/CrmCustomerPoolConfigService.java
LoginLogApi (Interface)
登录日志的 API 接口 @author 荔枝源码 [4 implementers]
litchi-module-system/src/main/java/com/lz/module/system/api/logger/LoginLogApi.java
AreaCommonApi (Interface)
地区信息 Common API 接口 提供给其他模块调用的地区信息服务接口 @author 荔枝 [4 implementers]
litchi-framework/litchi-common/src/main/java/com/lz/framework/common/biz/infra/area/AreaCommonApi.java

Core symbols most depended-on inside this repo

getId
called by 1115
litchi-module-system/src/main/java/com/lz/module/system/framework/sms/core/client/SmsClient.java
success
called by 816
litchi-framework/litchi-common/src/main/java/com/lz/framework/common/pojo/CommonResult.java
exception
called by 579
litchi-framework/litchi-common/src/main/java/com/lz/framework/common/exception/util/ServiceExceptionUtil.java
eq
called by 536
litchi-framework/litchi-spring-boot-starter-mybatis/src/main/java/com/lz/framework/mybatis/core/query/QueryWrapperX.java
get
called by 522
litchi-module-system/src/main/java/com/lz/module/system/controller/admin/captcha/CaptchaController.java
toBean
called by 518
litchi-framework/litchi-common/src/main/java/com/lz/framework/common/util/object/BeanUtils.java
getType
called by 434
litchi-module-bpm/src/main/java/com/lz/module/bpm/service/task/trigger/BpmTrigger.java
getName
called by 411
litchi-framework/litchi-spring-boot-starter-excel/src/main/java/com/lz/framework/excel/core/function/ExcelColumnSelectFunction.java

Shape

Method 7,145
Class 1,653
Interface 370
Enum 111
Function 5

Languages

Java99%
Python1%

Modules by API surface

sql/dm/flowable-patch/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java254 symbols
litchi-module-bpm/src/main/java/com/lz/module/bpm/framework/flowable/core/util/SimpleModelUtils.java68 symbols
sql/tools/convertor.py67 symbols
litchi-module-bpm/src/main/java/com/lz/module/bpm/service/task/BpmTaskServiceImpl.java56 symbols
litchi-module-bpm/src/main/java/com/lz/module/bpm/framework/flowable/core/util/BpmnModelUtils.java55 symbols
litchi-module-ai/src/main/java/com/lz/module/ai/framework/ai/core/model/AiModelFactoryImpl.java53 symbols
litchi-module-system/src/test/java/com/lz/module/system/service/user/AdminUserServiceImplTest.java39 symbols
sql/dm/flowable-patch/src/main/java/liquibase/database/core/DmDatabase.java37 symbols
litchi-module-bpm/src/main/java/com/lz/module/bpm/service/task/BpmTaskService.java35 symbols
litchi-framework/litchi-spring-boot-starter-redis/src/main/java/com/lz/framework/redis/core/RedisUtils.java34 symbols
litchi-module-system/src/main/java/com/lz/module/system/service/tenant/TenantServiceImpl.java33 symbols
litchi-module-crm/src/main/java/com/lz/module/crm/service/customer/CrmCustomerServiceImpl.java33 symbols

Datastores touched

(mysql)Database · 1 repos
litchiDatabase · 1 repos
lz-litchiDatabase · 1 repos
litchiDatabase · 1 repos
postgresDatabase · 1 repos

For agents

$ claude mcp add LZ-litchi \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact