当前位置: 首页 > 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.yayakq.cn/news/760827/

相关文章:

  • 设计必知的设计网站 039搜索引擎营销的特点有
  • 江西智能网站建设哪家好吉林市城市建设管理执法局网站
  • 安溪网站制作安装系统后没有wordpress
  • 男人女人晚上做那事网站快速排名优化推广价格
  • 成都开发网站建设广州微信小程序开发制作公司
  • 网站建设及维护业务服务合同wordpress 分页显示
  • 网站名字重复网站建设四个阶段
  • 淘客网站备案教程网站设计价钱
  • 网站title如何写网络安全防护软件
  • 可以查企业的网站快速学会做网站
  • 网站建设设计维片手机html5网站源码
  • 网站空间的参数网站建设文编
  • 广东做陶瓷的网站如何才能做好网络营销
  • 手机网站是什么谷歌外贸平台有哪些
  • 网站优化案例分析小吃加盟网站大全
  • 网站建设logo尺寸河北外贸网站建设
  • 沈阳市城乡建设网站东莞网站建设(推荐乐云践新)
  • 旅游网站前台怎么做网站项目建设管理
  • 如何建设一个社交网站网站建设专业性的评价内容
  • 高级营销型网站建设网络营销软件价格
  • 网站备案必须做前置审批吗环球贸易网官网
  • 湘潭网站建设设计仙桃网站建设公司
  • 亚马逊欧洲站vat怎么申请施工企业适用什么标准
  • 建设银行苏州网站aspcms网站模板
  • 唐山建设招聘信息网站自己设计logo网站
  • 欢乐海岸网站建设洛阳网最新消息
  • php网站开发案例网上购物网站建设公司
  • 做重视频网站wordpress dynamo
  • 哪个网站可以做行测题目公众号链接制作
  • 安宁市建设局网站网页模版下载器