# 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. 类关系图 ![image-20210131225250732](https://cdn.jsdelivr.net/gh/qinwant/Figurebed/img/20210131225255.png) #### 4. 基于jeesite项目 ##### 请假模块遇见的问题 - **反馈** 1. 起步不是基于jeesite,而是直接在activity文档看;看懂了一小部分,jeesite具体如何整合activity的,还需要研究 2. 目前阅读jeesite存在问题如下: - 项目结构整体把握不足 - 前后端工作流这块的逻辑没看太懂 - 改造请假单遇见空指针异常,目前推测是对工作流的理解(工作流创建可能就存在问题)欠缺导致 3. 个人觉得总体有较大难度,先着手完成其他任务,同步工作流任务 - 创建请假流程 ![image-20210205213226675](https://cdn.jsdelivr.net/gh/qinwant/Figurebed/img/20210205213230.png) - 提交审批(查看节点) ![image-20210205213349766](https://cdn.jsdelivr.net/gh/qinwant/Figurebed/img/20210205213351.png) - 目前状态 ![image-20210205213635777](https://cdn.jsdelivr.net/gh/qinwant/Figurebed/img/20210205213637.png) ## 更多文档 * 一个人的个人能力再强,也无法战胜一个团队,希望兄弟姐妹的支持,能够贡献出自己的部分代码,参与进来共同完善它(^_^)。 怎么共享我的代码:[手把手教你如何加入到github的开源世界!](http://www.cnblogs.com/wenber/p/3630921.html)