本文共 3347 字,大约阅读时间需要 11 分钟。
本节主要介绍了一个基于Activiti流程引擎的Java项目,其中包含了与用户身份相关的任务管理功能的实现。以下是代码的主要逻辑和实现细节:
AddIdentityLink类初始化
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();IdentityService identityService = engine.getIdentityService();TaskService taskService = engine.getTaskService();用户组和用户创建
IdentityService创建用户组:Group groupA = createGroup(identityService, "group1", "经理组", "manager");IdentityService创建用户:User user = creatUser(identityService, "user1", "张三", "last", "abc@163.com", "123");任务创建与身份关联
Task task1 = taskService.newTask("task1"); task1.setName("申请任务"); taskService.saveTask(task1);addGroupIdentityLink方法:taskService.addGroupIdentityLink(task1.getId(), groupA.getId(), IdentityLinkType.CANDIDATE); taskService.addGroupIdentityLink(task1.getId(), groupA.getId(), IdentityLinkType.OWNER); taskService.addGroupIdentityLink(task1.getId(), groupA.getId(), IdentityLinkType.ASSIGNEE);Task task2 = taskService.newTask("task2"); task2.setName("申请任务2"); taskService.saveTask(task2);addUserIdentityLink方法:taskService.addUserIdentityLink(task2.getId(), user.getId(), IdentityLinkType.CANDIDATE); taskService.addUserIdentityLink(task2.getId(), user.getId(), IdentityLinkType.OWNER); taskService.addUserIdentityLink(task2.getId(), user.getId(), IdentityLinkType.ASSIGNEE);creatUser 和 createGroupcreatUser方法:通过IdentityService创建并保存用户信息。
static User creatUser(IdentityService identityService, String id, String first, String last, String email, String passwd) { User user = identityService.newUser(id); user.setFirstName(first); user.setLastName(last); user.setEmail(email); user.setPassword(passwd); identityService.saveUser(user); return identityService.createUserQuery().userId(id).singleResult();}createGroup方法:通过IdentityService创建并保存用户组信息。
static Group createGroup(IdentityService identityService, String id, String name, String type) { Group group = identityService.newGroup(id); group.setName(name); group.setType(type); identityService.saveGroup(group); return identityService.createGroupQuery().groupId(id).singleResult();}本节对Activiti流程引擎相关数据库表的数据进行了分析,重点关注了任务相关的数据存储和关联关系。
act_hi_taskinst 表该表主要存储任务执行记录,字段包括:
ID_:任务IDPROC_DEF_ID_:流程定义IDTASK_DEF_KEY_:任务定义键PROC_INST_ID_:流程实例IDEXECUTION_ID_:执行IDNAME_:任务名称PARENT_TASK_ID_:父任务IDDESCRIPTION_:任务描述OWNER_:任务所有者ASSIGNEE_:任务代理人START_TIME_:任务启动时间CLAIM_TIME_:任务领取时间END_TIME_:任务结束时间DURATION_:任务时长DELETE_REASON_:删除原因PRIORITY_:任务优先级DUE_DATE_:任务期限FORM_KEY_:表单密钥CATEGORY_:类别TENANT_ID_:租户IDact_ru_task 表该表存储任务实例信息,字段包括:
ID_:任务IDREV_:版本号EXECUTION_ID_:执行IDPROC_INST_ID_:流程实例IDPROC_DEF_ID_:流程定义IDNAME_:任务名称PARENT_TASK_ID_:父任务IDDESCRIPTION_:任务描述TASK_DEF_KEY_:任务定义键OWNER_:任务所有者ASSIGNEE_:任务代理人DELEGATION_:委托类型PRIORITY_:任务优先级CREATE_TIME_:创建时间DUE_DATE_:任务期限CATEGORY_:类别SUSPENSION_STATE_:挂起状态TENANT_ID_:租户IDFORM_KEY_:表单密钥CLAIM_TIME_:任务领取时间act_id_user 表该表存储用户信息,字段包括:
ID_:用户IDREV_:版本号FIRST_:用户名字LAST_:用户姓氏EMAIL_:用户邮箱PWD_:用户密码PICTURE_ID_:用户头像IDact_id_group 表该表存储用户组信息,字段包括:
ID_:组IDREV_:版本号NAME_:组名称TYPE_:组类型act_ru_identitylink 表该表存储任务与用户或用户组的关联关系,字段包括:
ID_:关联IDREV_:版本号GROUP_ID_:用户组IDTYPE_:关联类型USER_ID_:用户IDTASK_ID_:任务IDPROC_INST_ID_:流程实例IDPROC_DEF_ID_:流程定义ID以上为本项目中涉及的主要数据库表的分析,完整的数据库设计和数据结构可以根据实际需求进行扩展和优化。
转载地址:http://tcqj.baihongyu.com/