# openlogic
**Repository Path**: wei-yongpe/openlogic
## Basic Information
- **Project Name**: openlogic
- **Description**: 基于solon3.0.7,mybtais-flex,sa-token的国产决策引擎。为了帮助快速构建企业决策引擎,智能决策。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 21
- **Forks**: 6
- **Created**: 2025-02-05
- **Last Updated**: 2025-06-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Java, JavaScript, Vue
## README
OpenLogic
v3.0.2
基于 Solon 和 Vue 前后端分离的分布式微服务架构
## 平台简介
OpenLogic是一套开源的决策引擎开放系统。
* 采用前后端分离的模式,微服务架构。
* 具备与若依相同的后台管理功能。
* 后端技术栈:Solon、Solon Cloud、HikariCP、Mybatis-Flex、Redis、Sa-Token、Hutool、rabbitMq等。
* 前端技术栈:Vue、Vue-Router、Vuex/Pinia、Element-UI/Element-Plus、Axios等。
## 平台优势
* 仿照若依开发,轻松上手。
* 后端打包体积更小,启动速度更快,运行时内存占用更低,并发更高。
## 版本分支
* 默认`master`分支,后端采用`Maven`作为构建工具。
* `release`分支,正式发行版,后端采用`Maven`作为构建工具。
* `developer`分支,开发调试分支,后端采用`Maven`作为构建工具。
> 不建议直接`clone`分支代码,推荐下载`发行版`或`标签`中的最新版本。
## 系统模块
~~~
com.openlogic
├── openlogic-api // 接口模块
│ └── openlogic-api-bom // 接口模块定义依赖管理
│ └── openlogic-api-system // 系统接口
├── openlogic-auth // 认证中心 [8101]
├── openlogic-cloud-ui // 前端框架(vue2版) [80]
├── openlogic-cloud-ui-vue3 // 前端框架(vue3版) [80]
├── openlogic-common // 通用模块
│ └── openlogic-common-bom // 公共模块通用依赖管理
│ └── openlogic-common-core // 核心模块
│ └── openlogic-common-datasource // 多数据源
│ └── openlogic-common-plugins // 插件管理-基于jdk的SPI机制
│ └── openlogic-common-plugins-spi // 数据源插件(MYSQL,ORACLE,EXCEL)
│ └── openlogic-common-plugins-db // 数据源插件依赖管理
│ └── openlogic-common-plugins-db-api // 数据源插件公共api
│ └── openlogic-common-plugins-db-mysql // mysql数据源插件
│ └── openlogic-common-plugins-db-excel // excel数据源插件
│ └── openlogic-common-plugins-db-oracle // oracle数据源插件(待开发)
│ └── openlogic-common-log // 日志记录
│ └── openlogic-common-logic // 决策引擎
│ └── openlogic-common-mq // 消息队列
│ └── openlogic-common-mq-bom // 消息队列依赖管理
│ └── openlogic-common-mq-rabbit // rabbitmq消息队列
│ └── openlogic-common-redis // 缓存服务
│ └── openlogic-common-security // 安全模块
│ └── openlogic-common-swagger // 文档模块
├── openlogic-gateway // 网关模块 [8080]
├── openlogic-modules // 业务模块
│ └── openlogic-modules-demo // 演示服务 [8103]
│ └── openlogic-modules-docs // 文档服务 [8095]
│ └── openlogic-modules-file // 文件服务 [8091]
│ └── openlogic-modules-gen // 代码生成 [8092]
│ └── openlogic-modules-flow // 流程引擎 [8299]
│ └── openlogic-modules-logic // 决策服务 [8156]
│ └── openlogic-modules-schedule // 任务调度 [8093]
│ └── openlogic-modules-system // 系统服务 [8102]
├── openlogic-visual // 图形化管理模块
│ └── openlogic-visual-monitor // 监控中心 [8094]
│ └── openlogic-visual-registry // 注册中心 [8848]
├── pom.xml // 公共依赖
~~~
## 内置功能
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
3. 岗位管理:配置系统用户所属担任职务。
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
7. 参数管理:对系统动态配置常用参数。
8. 通知公告:系统通知公告信息发布维护。
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. 登录日志:系统登录日志记录查询包含登录异常。
11. 在线构建:拖动表单元素生成相应的HTML代码。
12. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载。
13. 定时任务:任务调度。
14. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
15. 系统接口:根据业务代码自动生成相关的api接口文档。
16. 在线用户:当前系统中活跃用户状态监控。
17. 流程引擎:基于warm-flow1.6.6,实现流程发起,代办,审批,会签等
18. 决策引擎:基于aviator实现业务决策。
## 版本要求
| | 要求 | 推荐 |
| :--: | :--: | :--: |
| JDK | >= 1.8 | 17 |
| Maven | >= 3.6.3 | 3.8.6 |
| Node | >= 14 | 14.21.3 |
| MySQL | >= 5.6 | 5.6.36 |
| Redis | >= 3 | 3.2.100 |
| RabbitMQ | >= 3 | 4.0.5 |
## nacos注册中心说明
nacos采用抽取官方的console模块,独立启动。
>**为什么将nacos单独抽取出来?**
> 1. 方便兼容国产信创的适配,可以利用nacos的datasource-plugin进行扩展更多的国产数据库
> 2. 可以进行二开对nacos,比如ui以及控制台的面板等
说明:nacos对官方的console模块进行修改后重新打包,nacos代码地址:https://github.com/alibaba/nacos
nacos多数据源插件扩展,可以参考:https://gitee.com/wei-yongpe/nacos_database_pg_extends/tree/0.0.2/
## 工作流说明
工作流采用warm-flow国产工作流引擎,Dromara Warm-Flow国产工作流引擎🎉,其特点简洁轻量,五脏俱全,可扩展,是一个可通过jar引入设计器的工作流。
实现功能:
- 审批功能:支持通过、退回、任意跳转、转办、终止、会签、票签、委派和加减签、互斥和并行网关
- 流程图:流程引擎自带流程图,数据入库,并行支持扩展
- 流程设计器:可通过jar包形式快速集成到项目,减少繁琐代码搬运和适配
- orm框架采用mybatis-flex
warm-flow核心api说明:https://warm-flow.dromara.org/master/primary/api.html
> **备注:**warm-flow官方提供的mybatis-flex插件支持的solon版本较低`(2.8.4)`,这里我对官方mybatis-flex-solon插件进行改造,`支持solon3.x`
> **地址:**warm-flow-mybatis-flex-solon3插件地址:https://gitee.com/wei-yongpe/warm-flow-mybatis-flex-solon3
## 网关说明
solon官方对网关的介绍,在solon2.x版本推荐适用业务网关,类似Spring-Cloud-Gateway,但在solon3.x版本后,随着云原生技术的成熟,出现了像ingress,higress这类的流量网关和云原生网关。
目前系统支持的网关架构:
- nginx(流量网关)+gateway(业务网关)
openlogic3.0.2支持采用higress云原生网关统一管理流量,安全和业务转发,具体操作见操作手册。
## AI大模型
疯狂敲码中...`预计3.2.0版本后支持`
## 决策说明
文档待补充...
## 预览
## 特别感谢
源于开源,回归开源
- 感谢**若依**开源的ruoyi-cloud: https://gitee.com/y_project/RuoYi-Cloud
- 感谢**solon**面向全场景的 Java 企业级应用开发框架:https://gitee.com/opensolon/solon
- 感谢**warm-flow**开源的warm-flow工作流: https://gitee.com/dromara/warm-flow