当前位置: 首页 > news >正文

拓普网站建设免费网站统计工具

拓普网站建设,免费网站统计工具,徐州政府网站手机版,怎么做阿里巴巴外贸网站目录 一、环境搭建(Spring Boot 2.x) 1.1 依赖配置 1.2 配置文件 二、流程定义与部署 2.1 创建BPMN文件(leave.bpmn) 2.2 流程部署服务 三、流程操作核心实现 3.1 启动流程实例 3.2 查询待办任务 四、审批流程处理 4.1 …

目录

一、环境搭建(Spring Boot 2.x)

1.1 依赖配置

1.2 配置文件

二、流程定义与部署

2.1 创建BPMN文件(leave.bpmn)

2.2 流程部署服务

三、流程操作核心实现

3.1 启动流程实例

3.2 查询待办任务

四、审批流程处理

4.1 通过审批

4.2 驳回流程

4.3 撤回流程

五、流程状态管理

5.1 流程历史查询

5.2 流程图生成

六、完整流程示例

6.1 请假流程时序图

七、常见问题解决方案

7.1 流程版本控制

7.2 流程变量管理

结语


一、环境搭建(Spring Boot 2.x)

1.1 依赖配置

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter-basic</artifactId><version>5.22.0</version></dependency><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency>
</dependencies>

1.2 配置文件

spring:activiti:database-schema-update: truehistory-level: fullcheck-process-definitions: falsedatasource:url: jdbc:h2:mem:testdbdriverClassName: org.h2.Driverusername: sapassword: 

二、流程定义与部署

2.1 创建BPMN文件(leave.bpmn)

<process id="leaveProcess" name="请假流程"><startEvent id="start"/><userTask id="apply" name="提交申请" activiti:assignee="${applicant}"/><userTask id="managerApprove" name="经理审批" activiti:assignee="${approver}"/><exclusiveGateway id="exclusiveGw"/><sequenceFlow sourceRef="start" targetRef="apply"/><sequenceFlow sourceRef="apply" targetRef="managerApprove"/><sequenceFlow sourceRef="managerApprove" targetRef="exclusiveGw"/><endEvent id="end"/>
</process>

2.2 流程部署服务

@Service
public class ProcessService {@Autowiredprivate RepositoryService repositoryService;public void deployProcess(String bpmnPath) {repositoryService.createDeployment().addClasspathResource(bpmnPath).deploy();}
}

三、流程操作核心实现

3.1 启动流程实例

@Service
public class RuntimeService {@Autowiredprivate org.activiti.engine.RuntimeService activitiRuntimeService;public String startProcess(String processKey, String businessKey, Map<String, Object> variables) {return activitiRuntimeService.startProcessInstanceByKey(processKey, businessKey, variables).getId();}
}

3.2 查询待办任务

@Service 
public class TaskService {@Autowiredprivate org.activiti.engine.TaskService activitiTaskService;public List<Task> getTasksByUser(String userId) {return activitiTaskService.createTaskQuery().taskAssignee(userId).list();}
}

四、审批流程处理

4.1 通过审批

public void completeTask(String taskId, Map<String, Object> variables) {activitiTaskService.complete(taskId, variables);
}

4.2 驳回流程

public void rejectTask(String taskId, String targetTaskKey) {Task currentTask = activitiTaskService.createTaskQuery().taskId(taskId).singleResult();activitiRuntimeService.createProcessInstanceModification(currentTask.getProcessInstanceId()).cancelActivityInstance(currentTask.getExecutionId()).startBeforeActivity(targetTaskKey).execute();
}

4.3 撤回流程

public void withdrawProcess(String processInstanceId) {activitiRuntimeService.deleteProcessInstance(processInstanceId, "用户撤回");
}

五、流程状态管理

5.1 流程历史查询

public List<HistoricActivityInstance> getHistory(String processInstanceId) {return historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list();
}

5.2 流程图生成

public InputStream generateDiagram(String processInstanceId) {ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();BpmnModel bpmnModel = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId());return processDiagramGenerator.generateDiagram(bpmnModel, "png", runtimeService.getActiveActivityIds(processInstanceId));
}

六、完整流程示例

6.1 请假流程时序图



七、常见问题解决方案

7.1 流程版本控制

public List<ProcessDefinition> getProcessVersions(String processKey) {return repositoryService.createProcessDefinitionQuery().processDefinitionKey(processKey).orderByProcessDefinitionVersion().desc().list();
}

7.2 流程变量管理

// 设置变量
taskService.setVariable(taskId, "approveComment", "同意申请");// 获取变量
String comment = (String) taskService.getVariable(taskId, "approveComment");

结语

最佳实践建议:

  1. 使用@Transactional注解保证流程操作与业务数据
http://www.khdw.cn/news/60638.html

相关文章:

  • 房山区网站建设百度怎么发自己的小广告
  • 提高自己的网站长尾关键词
  • 邢台推广网站建设电话杭州seo营销公司
  • 做彩网站有哪些外链网站
  • 网站在线留言网站建设方案书模板
  • 网站照片上传不了怎么办推广方案100个
  • 苏州h5网站建设价钱关键词怎么写
  • 贵州公明建设投资咨询有限公司官方网站安卓优化大师历史版本
  • 网页制作模板的作用郑州百度seo排名公司
  • 进口外贸网站有哪些让顾客心动的句子
  • 制作网站要多少钱网站如何做优化排名
  • 网站模板化舆情监测软件
  • 哪个网站可以做验证码兼职互联网营销师怎么考
  • 搭建网站找什么公司seo服务商
  • 建个网站要花多少钱长沙网站seo报价
  • 云南做网站公司哪家好网络推广外包联系方式
  • jsp班级新闻网站代做百度识图搜索引擎
  • 做网站建设的企业还有那些上海百度推广优化排名
  • 中国建设银行个人信息网站营销策划推广
  • 公安网站备案多久更新aso优化教程
  • 西安网站设计哪家公司好写软文一篇多少钱合适
  • 公司网站建设需求分析百度一下百度官方网
  • 建立网站的软件下载东莞网站推广优化网站
  • 织梦网站怎么做seo口碑营销方案怎么写
  • 东莞东智通人才招聘网入门seo技术教程
  • html5个人网站源码googleplaystore
  • 网站建设 焦作bt磁力猪
  • 响应式网站建设服务提供商国内最新新闻消息今天的
  • 西安政府网站建设百度com打开
  • 个人优秀网站欣赏广州番禺发布网