From 2f26f1e9888e7dd60dd463864543987f309fc31b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=87=95=E9=B9=8F?= Date: Fri, 30 Oct 2020 13:55:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 4 +- .../com/example/demo/DemoApplication.java | 4 - .../demo/controller/AdminController.java | 7 -- .../demo/controller/WorkFlowController.java | 76 ++++++++++++++++++ .../java/com/example/demo/entity/Admin.java | 1 + src/main/resources/application.yml | 7 +- src/main/resources/bpmn/testbpmn.bpmn | 61 ++++++++++++++ src/main/resources/bpmn/testbpmn.png | Bin 0 -> 4155 bytes .../bpmn/{test.bpmn => testbpmn.xml} | 38 ++++----- 9 files changed, 165 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/example/demo/controller/WorkFlowController.java create mode 100644 src/main/resources/bpmn/testbpmn.bpmn create mode 100644 src/main/resources/bpmn/testbpmn.png rename src/main/resources/bpmn/{test.bpmn => testbpmn.xml} (56%) diff --git a/build.gradle b/build.gradle index 38db876..afba00a 100644 --- a/build.gradle +++ b/build.gradle @@ -20,8 +20,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'com.aiprose:jpa-common-utils:2.3.4' - implementation 'org.activiti:activiti-spring-boot-starter:7.1.0.M4' - implementation 'org.activiti:activiti-image-generator:7.1.0.M4' + implementation 'org.activiti:activiti-spring-boot-starter:7.1.0.M3.1' + implementation 'org.activiti:activiti-image-generator:7.1.0.M3.1' runtimeOnly 'mysql:mysql-connector-java' diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java index d1f5369..fff109c 100644 --- a/src/main/java/com/example/demo/DemoApplication.java +++ b/src/main/java/com/example/demo/DemoApplication.java @@ -1,10 +1,6 @@ package com.example.demo; import lombok.extern.slf4j.Slf4j; -import org.activiti.api.runtime.shared.query.Page; -import org.activiti.api.runtime.shared.query.Pageable; -import org.activiti.api.task.model.Task; -import org.activiti.api.task.model.builders.TaskPayloadBuilder; import org.activiti.api.task.runtime.TaskRuntime; import org.activiti.api.task.runtime.events.TaskAssignedEvent; import org.activiti.api.task.runtime.events.TaskCompletedEvent; diff --git a/src/main/java/com/example/demo/controller/AdminController.java b/src/main/java/com/example/demo/controller/AdminController.java index df96cc3..93efb61 100644 --- a/src/main/java/com/example/demo/controller/AdminController.java +++ b/src/main/java/com/example/demo/controller/AdminController.java @@ -2,9 +2,6 @@ package com.example.demo.controller; import com.example.demo.entity.Admin; import com.example.demo.service.AdminService; -import org.activiti.engine.HistoryService; -import org.activiti.engine.ProcessEngine; -import org.activiti.engine.ProcessEngineConfiguration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -29,13 +26,9 @@ public class AdminController { @Autowired private AdminService adminService; - @Autowired - private ProcessEngine processEngine; - @GetMapping("list") public Flux> list(){ List list = adminService.findList(null); - HistoryService historyService = processEngine.getHistoryService(); return Flux.just(list); } diff --git a/src/main/java/com/example/demo/controller/WorkFlowController.java b/src/main/java/com/example/demo/controller/WorkFlowController.java new file mode 100644 index 0000000..2551f53 --- /dev/null +++ b/src/main/java/com/example/demo/controller/WorkFlowController.java @@ -0,0 +1,76 @@ +package com.example.demo.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.activiti.engine.ProcessEngine; +import org.activiti.engine.RepositoryService; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.activiti.engine.repository.Deployment; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author yanpeng + * @version 1.0 + * @desc TODO + * @company 北京中经网软件有限公司 + * @date 2020/10/27 14:34 + */ +@RestController +@RequestMapping("workflow") +@Api(tags = "工作流接口") +public class WorkFlowController { + + @Autowired + private ProcessEngine processEngine; + + @ApiOperation(value = "发布工作流") + @GetMapping("deploy") + public void deploy() { + RepositoryService repositoryService = processEngine.getRepositoryService(); + Deployment deploy = repositoryService.createDeployment().addClasspathResource("bpmn/testbpmn.bpmn").addClasspathResource("bpmn/testbpmn.png").name("请假申请流程").key("testbpmn").deploy(); + System.out.println(deploy.getId()); + System.out.println(deploy.getName()); + System.out.println(deploy.getKey()); + } + + @ApiOperation(value = "启动工作流") + @GetMapping("start") + public void start() { + RuntimeService runtimeService = processEngine.getRuntimeService(); + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testbpmn"); + System.out.println(processInstance.getProcessDefinitionId()); + System.out.println(processInstance.getId()); + } + + + @ApiOperation(value = "查询任务") + @GetMapping("query") + public Boolean query() { + TaskService taskService = processEngine.getTaskService(); + List testbpmn = taskService.createTaskQuery().processDefinitionKey("testbpmn").list(); + testbpmn.stream().forEach(x->{ + System.out.println(x.getProcessDefinitionId()); + System.out.println(x.getId()); + System.out.println(x.getName()); + System.out.println(x.getAssignee()); + }); + return true; + } + + + @ApiOperation(value = "完成任务") + @GetMapping("ok") + public Boolean ok(String taskid) { + TaskService taskService = processEngine.getTaskService(); + taskService.complete(taskid); + return true; + } +} diff --git a/src/main/java/com/example/demo/entity/Admin.java b/src/main/java/com/example/demo/entity/Admin.java index 1d9a621..14efe6d 100644 --- a/src/main/java/com/example/demo/entity/Admin.java +++ b/src/main/java/com/example/demo/entity/Admin.java @@ -13,6 +13,7 @@ import javax.persistence.Table; * @company 北京中经网软件有限公司 * @date 2020/10/27 13:54 */ + @Data @Entity @Table(name="t_admin") diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c6fd6ff..7f877c4 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -16,4 +16,9 @@ spring: username: root password: trgis driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://47.98.109.5:3309/actibpmn?characterEncoding=utf8&useSSL=false + url: jdbc:mysql://47.98.109.5:3309/actibpmn?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai + hikari: + minimum-idle: 3 + maximum-pool-size: 10 + max-lifetime: 1800000 + connection-test-query: SELECT 1 diff --git a/src/main/resources/bpmn/testbpmn.bpmn b/src/main/resources/bpmn/testbpmn.bpmn new file mode 100644 index 0000000..3835328 --- /dev/null +++ b/src/main/resources/bpmn/testbpmn.bpmn @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/bpmn/testbpmn.png b/src/main/resources/bpmn/testbpmn.png new file mode 100644 index 0000000000000000000000000000000000000000..437ec2de1d05725ee76f2c6148b043d3b6f5a4b7 GIT binary patch literal 4155 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 - + - + @@ -12,48 +12,48 @@ - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - +