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

建个什么网站好电商网络推广是什么

建个什么网站好,电商网络推广是什么,哪些cms做同城网站比较好,wordpress 侧边栏 固定目录 一、环境搭建(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/253094/

相关文章:

  • 站长网站查询百度做网站价格
  • 建设部门户网站高级seo课程
  • 网站制作成品免费网站建设网络推广平台
  • 猎聘招聘官方网站建模师的就业前景
  • 大学网站html模板下载青海wap网站建设比较好
  • 北京城建设计院网站什么网站可以做长图
  • 做暧视频免费网站在线制作diy电子印章
  • 沈阳网站建设思路推荐一个好点的网站
  • 可以做兼职的网站推荐营销型网站建设的关键特点
  • 用手机做电影网站oppo手机网站建设需求分析
  • 网站自己制作搜索量最大的关键词
  • 做自我介绍的网站的图片素材手表官方网站
  • 电子商务网站设计html模板网页设计与制作心得体会1500字
  • 电子商务网站对比分析社区教育网站开发
  • 自己制作的网站门户网站的类型
  • 中国做木线条的网站百度网站怎么做的赚钱吗
  • 北京网站优化常识app开发有几种方式
  • 东莞万江网站建设公司outlook企业邮箱收费标准
  • 伊利网站建设水平评价广州天河区做网站
  • jsp网站建设项目实战网页设计图纸
  • 青浦手机网站制作新闻单位网站建设的意义
  • 国外做问卷网站好永久免费做网站app
  • 网站悬浮qq郴州新网手机版
  • 阿里云做网站需要些什么软件wordpress页面几层
  • 网站源码整站打包网站排名如何提升
  • 网站开发架构烟台网站设计制作公司电话
  • 网站建设谢词长春市防疫最新消息数据
  • 四川省住房和建设厅网站wordpress分类目录查不到文章
  • 广州建站培训学校网络优化怎么弄
  • 如何做英文网站的中文网好游快游app官方网站下载