项目模块

基础模块 BASE

  • base-api 提供 通用请求入参、返回参数、基础实体、基础service/dao API定义、异常规范、校验定义
  • base-core 提供常用工具类、基础API实现 、ID生成、通用校验实现等
  • base-db 整合数据源,mybatis,jdbcTemplate等持久化层相关的实现
  • base-rest 提供 Rest 服务基类、REST服务相关的工具类 等

依赖基础模块、便即刻获取基于 AgileBPM 的 底层规范

系统功能模块 SYS

  • 提供 jms、freemark、groovy、email、redis、scheduler、log 等组件的服务接口定义
  • 数据字典、系统资源管理、系统环境属性、流水号、多数据源、菜单资源、子系统、国家节假日、日程、工作台 等系统功能

系统组件的服务最终可能是远程项目的调用,但入口统一都在 SYS 服务模块转发,比如消息服务,SYS 模块会调用真正的消息平台去发送,本身只是搬运工
所以 SYS 模块 是一个系统功能服务的 适配层,让具体服务与系统框架解耦,当我们做服务切换时会很有帮助

组织架构模块 ORG

用户管理
组织岗位
角色
用户组关系

为流程、鉴权 等组件提供用户组织服务,该模块由 服务接口模块、接口适配器层、具体实现层三部分组成

业务对象模块 BUS

业务对象、业务实体的定义
业务数据的持久化服务
表字段控件定义(为生成表单做准备)

业务对象为具体的业务数据的结构,支持一对多、多对多、一对一、多层关联关系(学校-班级-学生…),业务对象多表来自不同数据源,并支持多数据源分布式事务(性能与普通事务管理没什么差别)

表单组件 FORM

提供在线表单的生成(PC 、移动端 )
表单高级控件的配置
表单 模板管理
表单对于业务数据增删改查的简实现

表单是业务对象的容器,依赖bus模块。

流程模块 WF

wf-api :流程模块的接口服务定义
wf-core :AgileBPM 流程管理 核心包、
wf-plugin :流程扩展功能插件包 :AgileBPM 所有的流程功能都封装成了插件的形式,支持可插拔
wf-activiti :模块是基于 activiti5.22 做的整合,基本无侵入。只有很小部分的代码修改,并扩展了activiti 设计器,支持了更多人性化插件的扩展,丰富了流程功能。

我们已经开发了 flowable 版本 wf-flowable 分支,但是依赖太多,而且性能也一般,功能上面对我们也没有太大意义,最终转支持 activiti no history 模式,后期等flowable 5 问世后我们能支持平滑迁移

目前流程模块使用 activiti 13 张表+ agilebpm 8 张表 共 21 张表

其他组件

平台整合模块、鉴权模块、


系统结构图