# GokTrainTask04
**Repository Path**: zhqwang/gok-train-task04
## Basic Information
- **Project Name**: GokTrainTask04
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-01-31
- **Last Updated**: 2021-02-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# JeeSite 学习
> 开源地址:https://github.com/thinkgem/jeesite
## 快速体验
1. 具备运行环境:JDK1.6+、Maven3.0+、MySql5+或Oracle10g+。
2. 修改src\main\resources\jeesite.properties文件中的数据库设置参数。
3. 根据修改参数创建对应MySql或Oracle数据库用户和参数。
4. 运行bin\init-db.bat脚本,即可导入表结构及演示数据(linux操作系统:在控制台中切换至项目根目录,运行命令:mvn antrun:run -Pinit-db)
5. 运行bin\run-tomcat7.bat或bin\run-jetty.bat,启动Web服务器(第一次运行,需要下载依赖jar包,请耐心等待)。
6. 最高管理员账号,用户名:thinkgem 密码:admin
## 工作流模块
> 进度反馈
### Activity
#### 1. 基础
##### 部署activiti
Activiti是一个工作流引擎(其实就是一堆jar包API),业务系统访问(操作)activiti的接口,就可以方便的操作流程相关数据,这样就可以把工作流环境与业务系统的环境集成在一起。
##### 流程定义
使用activiti流程建模工具(activity-designer)定义业务流程(.bpmn文件) 。
.bpmn文件就是业务流程定义文件,通过xml定义业务流程。
##### 流程定义部署
activiti部署业务流程定义(.bpmn文件)。
使用activiti提供的api把流程定义内容存储起来,在Activiti执行过程中可以查询定义的内容
Activiti执行把流程定义内容存储在数据库中
##### 启动一个流程实例
流程实例也叫:ProcessInstance
启动一个流程实例表示开始一次业务流程的运行。
##### 用户查询待办任务(Task)
因为现在系统的业务流程已经交给activiti管理,通过activiti就可以查询当前流程执行到哪了,当前用户需要办理什么任务了,这些activiti帮我们管理了,而不需要开发人员自己编写在sql语句查询。
##### 用户办理任务
用户查询待办任务后,就可以办理某个任务,如果这个任务办理完成还需要其它用户办理,比如请假申请创建后由部门经理审核,这个过程也是由activiti帮我们完成了。
##### 流程结束
当任务办理完成没有下一个任务结点了,这个流程实例就完成了。
#### 2. 表
##### 表的命名规则和作用
发现Activiti 的表都以 ACT_ 开头。
第二部分是表示表的用途的两个字母标识。 用途也和服务的 API 对应。
**ACT_RE** :'RE'表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
**ACT_RU**:'RU'表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti 只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
**ACT_HI**:'HI'表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
**ACT_GE** : GE 表示 general。 通用数据, 用于不同场景下
##### Activiti数据表介绍
| **表分类** | **表名** | **解释** |
| ------------ | --------------------- | -------------------------------------------------- |
| 一般数据 | | |
| | [ACT_GE_BYTEARRAY] | 通用的流程定义和流程资源 |
| | [ACT_GE_PROPERTY] | 系统相关属性 |
| 流程历史记录 | | |
| | [ACT_HI_ACTINST] | 历史的流程实例 |
| | [ACT_HI_ATTACHMENT] | 历史的流程附件 |
| | [ACT_HI_COMMENT] | 历史的说明性信息 |
| | [ACT_HI_DETAIL] | 历史的流程运行中的细节信息 |
| | [ACT_HI_IDENTITYLINK] | 历史的流程运行过程中用户关系 |
| | [ACT_HI_PROCINST] | 历史的流程实例 |
| | [ACT_HI_TASKINST] | 历史的任务实例 |
| | [ACT_HI_VARINST] | 历史的流程运行中的变量信息 |
| 流程定义表 | | |
| | [ACT_RE_DEPLOYMENT] | 部署单元信息 |
| | [ACT_RE_MODEL] | 模型信息 |
| | [ACT_RE_PROCDEF] | 已部署的流程定义 |
| 运行实例表 | | |
| | [ACT_RU_EVENT_SUBSCR] | 运行时事件 |
| | [ACT_RU_EXECUTION] | 运行时流程执行实例 |
| | [ACT_RU_IDENTITYLINK] | 运行时用户关系信息,存储任务节点与参与者的相关信息 |
| | [ACT_RU_JOB] | 运行时作业 |
| | [ACT_RU_TASK] | 运行时任务 |
| | [ACT_RU_VARIABLE] | 运行时变量表 |
#### 3. 类关系图

#### 4. 基于jeesite项目
##### 请假模块遇见的问题
- **反馈**
1. 起步不是基于jeesite,而是直接在activity文档看;看懂了一小部分,jeesite具体如何整合activity的,还需要研究
2. 目前阅读jeesite存在问题如下:
- 项目结构整体把握不足
- 前后端工作流这块的逻辑没看太懂
- 改造请假单遇见空指针异常,目前推测是对工作流的理解(工作流创建可能就存在问题)欠缺导致
3. 个人觉得总体有较大难度,先着手完成其他任务,同步工作流任务
- 创建请假流程

- 提交审批(查看节点)

- 目前状态

## 更多文档
*
一个人的个人能力再强,也无法战胜一个团队,希望兄弟姐妹的支持,能够贡献出自己的部分代码,参与进来共同完善它(^_^)。
怎么共享我的代码:[手把手教你如何加入到github的开源世界!](http://www.cnblogs.com/wenber/p/3630921.html)