# Agilebpm 项目模块说明 

## agilebpm 主工程

### base基础模块

#### base-api : 提供 通用请求入参、返回参数、基础实体、基础service/dao API定义、异常规范、校验定义

#### base-core : 提供常用工具类、基础API实现 、ID生成、通用校验实现等

#### base-db : 整合多数据源，mybatis，jdbcTemplate等持久化层相关的实现

#### base-rest ：提供 Rest 服务基类、Rest 服务相关的工具类 等

### 系统功能模块

#### sys-api

##### 系统服务接口定义

###### jms

###### freemark

###### groovy

###### email

###### redis

###### scheduler

###### 节假日、流水号、日程、工作台 等系统模块服务接口

#### sys-core

##### 系统服务接口实现

#### sys-rest

##### 对外 rest 服务

### 组织模块

#### org-api

##### 组织架构接口定义

#### ab-org-core

##### orgAPI 实现层

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

#####  

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

### 业务对象

#### 1、业务实体，业务对象的定义

#### 2、业务实体数据的持久化服务

#### 3、表字段控件定义，表单布局设计

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

### 表单模块

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

说明：表单是业务对象的容器，依赖bus模块。

### web 模块

#### 仅仅为了组合 各个模块，提供web服务，没有任何其他代码逻辑

## SpringBoot 版本

### 说明： 本项目使用Springboot2.1.4版本 ,以starter的形式整合 agilebpm 模块，具体模块源码都在 AgileBPM 主工程

### agilebpm-base-starter

#### 整合 base 模块， 主要是base-db 的整合

#### 两个jar agilebpm-base-autoconfigure，agilebpm-base-starter

### agilebpm-sys-starter

#### 整合 sys 系统模块，主要整合了 mq,email 等组件 

#### 两个jar，agilebpm-sys-starter，agilebpm-sys-autoconfigure

### agilebpm-security-starter

#### 整合spring security，

#### agilebpm-security-starter，agilebpm-security-autoconfigure

### agilebpm-wf-starter

#### 整合了流程模块

### agilebpm-ui

#### 前端工程   与主工程中 bpm-explorer 源码一致，这里是以jar包的形式提供前端的资源

### agilebpm-spring-boot-samples

#### spring boot Application 启动项目，以此为案例可以方便整合到自有 springboot工程中 

### 主工程中 bus，form, org 模块直接依赖 rest 模块即可引入模块服务，所以不需要 提供 starter 

## SpringCloud微服务版本-商业版

### 说明：本项目依赖 SpringBoot版本的starter，基于 spring-cloud Greenwich.SR1

### common 公共模块

#### commons-web  微服务项目公共模块，所有微服务模块均基层该基础模块

#### commons-session-adapter-api

##### 当前登录用户的接口定义层

#### commons-session-adapter-server

##### 提供当前登录用户 的具体实现，目前默认session实现

#### commons-adapter-client

##### org 微服务 REST 服务 适配的客户端

#### commons-org-adapter-server

##### org 微服务 REST 服务的 服务提供者

##### 当需要为流程微服务提供组织微服务的时候、直接依赖 该模块，实现orgapi 即可提供 agilebpm 的组织服务

### eureka-server

#### eureka 注册中心

### gateway

#### zuul 网关、实现了 请求资源地址鉴权，csrf 防盗链，防xss注入攻击 ，路由服务请求

### org-services

#### org 微服务的默认实现，依赖 ab-org-core

### bpm-service

#### 流程微服务，依赖 agilebpm-wf-starter，bus-rest，agilebpm-ui ，form-rest，agilebpm-sys-starter

## 前端工程

### agilebpm 主工程 前端  bpm-explorer

### 移动端前端工程 bpm-app

### iview 门户前端工程  agilebpm-eip-ui

#### 商业版

### 说明： 所有前端工程后端项目源码 均在 agilebpm主工程

只不过有springboot形式、微服务形式、传统web形式 三种不同 服务提供形式
