java 工作流的开发框架
- 目录
- 概述
- 需求:
- 设计思路
- 实现思路分析
- 1.工作流
- 参考资料和推荐阅读
Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
目录
概述
需求:
设计思路
实现思路分析
1.工作流
工作流开发框架权限设计、用户组、岗位、集团模式应用. java工作流程引擎, .net 工作流引擎,工作流开发框架
1.2: 相关的表结构
– 相关组织-表结构。
SELECT No,Name,ParentNo FROM port_dept; – 部门。
SELECT No,Name,Adminer,AdminerName FROM port_org; – 组织。
– 岗位表.
SELECT No,Name,FK_StationType, OrgNo FROM port_Station; – 岗位。
SELECT No,Name,OrgNo FROM port_stationtype; – 岗位类型。
SELECT FK_Dept,FK_Emp,FK_Station FROM port_deptempstation; – 部门人员岗位。
– 用户组表.
SELECT No,Name,FK_Team FROM port_team; – 用户组。
SELECT No,Name FROM port_teamType; – 用户组类型。
SELECT FK_Teamp,FK_Emp FROM port_teamEmp; – 用户组人员。
–公文字号相关的设计.
SELECT No,Name,FK_Team FROM Doc_DocType; – 公文类型 。FK_Team 是他的分组编号
SELECT No,Name,FK_DocType,FK_Team FROM Doc_Word; – 公文字号。
– 公文表。 必须有的四个字段
SELECT DocWordKey, DocWordName,DocWordYear,DocWordLSH, DowWord FROM Frm_JiTuanXingZhengShouWenJian
1.3: 集团模式下的权限描述如下
-
整个集团的部门是一棵大树,只有一个根节点,根节点的parentNo的编号为0。部门的表的主要字段是No,Name,ParentNo,
-
组织的概念就是独立岗责体系的子公司或者单位,组织里有一个或则多个管理员。
-
集团中admin是超级管理员,admin可以把一个部门节点设置为一个组织。
-
一个二级管理员可以管理多个组织,admin也可以有多个组织的管理权限。
-
二级管理员或者admin登录后,如果有多个组织系统会让其选择要登录那个组织进行管理
-
选择一个组织登录之后,这个管理员,仅仅可以管理本组织的流程,岗位,部门人员信息。如果要管理其他的组织信息,需要切换。
-
组织之间的权限是通过OrgNo进行隔离的。
-
每个人员登录之后,就有WebUser.No, WebUser.Name, WebUser.FK_Dept, WebUser.OrgNo 等登录信息。加粗样式
-
每个流程都有适用范围,在流程属性里可以配置。一个组织的可发起的流程,是由两部分组成的+ 本组织设计的流程+其他组织设计的流程设置了适用范围的流程。
-
对于表单的权限规则参考流程的规则,也有适用范围。
-
用户组与岗位都是对人员的分组,对人员的权限划分。
-
用户组是集团的概念,仅由admin维护。
-
岗位则是每个组织都有自己的一套独立的岗责体系,由自己的组织管理员来维护的。
-
用户组,用户组类型没有OrgNo, 但是岗位,与岗位类型有。
-
用户组类型,岗位类型,都是为了方便管理员操作的方便,没有计算意义。
-
一个操作员可以有多个部门,数据存储到Port_DeptEmp,里面FK_Dept,FK_Emp两个列。
一个操作员在一个部门下可以有多个岗位, Port_DeptEmpStation , 列如下:FK_Dept,FK_Emp,FK_Station. 三个外键列存储。
-
操作员与用户组的关系存储在 Port_TeamEmp表里, FK_Team,FK_Emp 两个列。
-
一个操作员,有三个维度来控制,用户组、岗位、部门。
-
为了方便我们管理,我们把岗位或者用户组划分为,抽象的岗位,实际的岗位,抽象的用户组,实际的用户组。
-
- 比如我们把岗位划分为:部门负责人岗位,部门领导岗,信息部主任岗,信息部副主任岗。张三有部门负责人岗位,信息部主任岗。李四有部门领导岗,信息部副主任岗位。这样换分有利于我们在绑定节点岗位的时候容易处理。
-
用户组的概念是集团的admin管理员统一管理与维护的,可以下分到每个组织可以使用。在节点访问规则支持绑定用户组功能。
组织结构表的概念:
用于控制用户的权限的表都称为组织结构表.
比如:操作员、部门、岗位。与CCBPM的集成也就是组织结构表的集成,以上表格里的表都是组织结构表。
如果您已经有自己的开发架构,有自己的组织结构体系,要把两个系统的组织结构统一起来.
从理论上来说,我们设计的组织结构与您的组织结构是可以集成在一起的如果您想获得更好的运行效率与效果,您也可以使用同步更新的模式实现与ccbpm的组织结构集成.
不管您如何使用ccbpm组织结构集成是第一步需要做的事情.
我们提供的是试图模式的集成,如果不想用这样的方式,您可以与ccbpm的表进行同步数据.
ccbpm的组织结构表比较简单.
结构清晰, 在集成之前,必须了解每个表的字段设计的意义.
您可以通过如下SQL来查询出来:
–用户表
SELECT No,Name,Pass,FK_Dept,Tel,Email,PinYin,OrgNo, Idx FROM Port_Emp;
–部门
SELECT No,Name,NameOfPath,ParentNo,OrgNo FROM Port_Dept;
–岗位
SELECT No,Name,FK_StationType,OrgNo FROM Port_Station;
–岗位类型
SELECT No,Name,OrgNo,Idx FROM Port_StationType;
–部门人员对应关系
SELECT MyPK,FK_Emp,FK_Dept FROM Port_DeptEmp;
–部门人员岗位对应关系
SELECT MyPK,FK_Emp,FK_Dept,FK_Station FROM Port_DeptEmpStation
说明:
Idx是一个顺序号,可以为 0.
NameOfPath 部门路径,比如: 驰骋公司\财务部\财务一组
列名区分大小写,不然会导致程序错误。
Port_Emp的 SID,可以设置为空,比如 ‘’ as SID.
数据类型要保持一致.
集成demo.
把CCBPM集成到您的应用系统里,首先要解决的组织结构的集成,然后根据自己的项目确定集成模式。不管什么方式的集成,首先要把组织结构集成在一起。
把CCBPM中的组织表删除了,换成数据结构一样的视图,数据是从被集成的系统数据库映射回来的。这样CCBPM在工作时,仍然不会影响。以一个SQL来说明问题。
把CCBPM中的组织表删除了,换成数据结构一样的视图,数据是从被集成的系统数据库映射回来的。这样CCBPM在工作时,仍然不会影响。以一个SQL来说明问题。
组织结构的约定:
部门树必须有一个根节点,并且该根节点的ParentNo= 0。
人员表Port_Emp里必须有一个 admin的帐号做为超级用户,并且该帐号的部门为根节点。
如果系统使用到了外部用户流程,就需要增加一个Guest帐号在Port_Emp表里。
如果系统用到了外部用户必须有一个Guest帐号在Port_Emp表里。
集成过程常见的问题:
在运行的过程中出现 alert table xxxx的错误,就是字段不匹配造成的。
集成后您的系统就是一个视图,系统如果有增加列的sql执行,就修改视图增加这一列。
如果您在人员表里没有 Idx, Tel 列可以使用 SELECT ‘’ AS Tel, 0 AS Idx 来虚构出来相关的列。
如果在您的系统里没有岗位类型这个表,就可以不用集成岗位类型。
varchar类型的字段不能有null值,比如: null as OrgNo 是不对的, ‘’ as OrgNo 是可以的.
客户自己的系统没有岗位这个属性,如果不集成岗位表以及部门岗位人员对应表,会有什么影响吗?
RE: 这里的岗位就是您系统的角色,如果没有就会有很多的限制.
7.人员表的Pass字段我们系统里面是加密存储的,驰骋里面是明文存储的123。不管我们自己的系统密码改成什么样,这个固定设置为123就可以吗。
RE: 密码不影响,登录时您来判断的,您判断后,直接调用登录接口,传入账号就好。
8.人员表的SID,PinYin等字段是否有用?客户系统中没有该字段
RE: 组织结构视图中必须有这个字段,可以为空. 没有PinYi, 就不能检索。
参考资料和推荐阅读
- 暂无
2.https://gitee.com/opencc/JFlow/wikis/pages/preview?sort_id=3557782&doc_id=31094
3.https://gitee.com/opencc/JFlow/wikis/%E4%BD%BF%E7%94%A8%E8%80%85%E5%BF%85%E7%9C%8B
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~