From 312a17ab9c14d4b5a36e6f0530196255a0eaa074 Mon Sep 17 00:00:00 2001 From: zhouhaibin Date: Tue, 23 Jan 2024 20:16:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {jeecg-module-activit => huzhou}/pom.xml | 16 +- .../service/IHuzhouProcessinfoService.java | 8 + .../jeecg-system-start/pom.xml | 6 + .../modules/message/test/SendMessageTest.java | 230 ++++++++++++++++++ jeecg-module-system/pom.xml | 3 + pom.xml | 2 +- 6 files changed, 255 insertions(+), 10 deletions(-) rename {jeecg-module-activit => huzhou}/pom.xml (79%) create mode 100644 huzhou/src/main/java/org/jeecg/modules/huzhou/service/IHuzhouProcessinfoService.java diff --git a/jeecg-module-activit/pom.xml b/huzhou/pom.xml similarity index 79% rename from jeecg-module-activit/pom.xml rename to huzhou/pom.xml index 8365550..2d8d7d0 100644 --- a/jeecg-module-activit/pom.xml +++ b/huzhou/pom.xml @@ -9,13 +9,14 @@ 3.6.1 - jeecg-module-activit - pom + org.jeecg + huzhou + - - org.jeecgframework.boot - jeecg-boot-base-core - + + org.jeecgframework.boot + jeecg-boot-base-core + org.activiti activiti-spring-boot-starter @@ -28,7 +29,4 @@ - - - \ No newline at end of file diff --git a/huzhou/src/main/java/org/jeecg/modules/huzhou/service/IHuzhouProcessinfoService.java b/huzhou/src/main/java/org/jeecg/modules/huzhou/service/IHuzhouProcessinfoService.java new file mode 100644 index 0000000..c5f076d --- /dev/null +++ b/huzhou/src/main/java/org/jeecg/modules/huzhou/service/IHuzhouProcessinfoService.java @@ -0,0 +1,8 @@ +package org.jeecg.modules.huzhou.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.huzhou.entity.HuzhouProcessinfo; +import org.springframework.stereotype.Service; + +public interface IHuzhouProcessinfoService extends IService { +} diff --git a/jeecg-module-system/jeecg-system-start/pom.xml b/jeecg-module-system/jeecg-system-start/pom.xml index 765c63f..56f8b59 100644 --- a/jeecg-module-system/jeecg-system-start/pom.xml +++ b/jeecg-module-system/jeecg-system-start/pom.xml @@ -24,6 +24,12 @@ jeecg-module-demo ${jeecgboot.version} + + org.jeecg + huzhou + 3.6.1 + + diff --git a/jeecg-module-system/jeecg-system-start/src/test/java/org/jeecg/modules/message/test/SendMessageTest.java b/jeecg-module-system/jeecg-system-start/src/test/java/org/jeecg/modules/message/test/SendMessageTest.java index 3ec68c9..204f2f5 100644 --- a/jeecg-module-system/jeecg-system-start/src/test/java/org/jeecg/modules/message/test/SendMessageTest.java +++ b/jeecg-module-system/jeecg-system-start/src/test/java/org/jeecg/modules/message/test/SendMessageTest.java @@ -2,6 +2,23 @@ package org.jeecg.modules.message.test; import com.alibaba.fastjson.JSONObject; import com.aliyuncs.exceptions.ClientException; +import org.activiti.bpmn.model.BpmnModel; +import org.activiti.bpmn.model.FlowElement; +import org.activiti.bpmn.model.SequenceFlow; +import org.activiti.bpmn.model.UserTask; +import org.activiti.engine.HistoryService; +import org.activiti.engine.RepositoryService; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.activiti.engine.history.HistoricActivityInstance; +import org.activiti.engine.history.HistoricTaskInstance; +import org.activiti.engine.repository.Deployment; +import org.activiti.engine.repository.ProcessDefinition; +import org.activiti.engine.runtime.Execution; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.activiti.spring.integration.Activiti; +import org.apache.shiro.SecurityUtils; import org.jeecg.JeecgSystemApplication; import org.jeecg.common.api.dto.message.BusMessageDTO; import org.jeecg.common.api.dto.message.BusTemplateMessageDTO; @@ -19,9 +36,12 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.util.CollectionUtils; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.UUID; /** * @Description: 消息推送测试 @@ -33,6 +53,216 @@ public class SendMessageTest { @Autowired ISysBaseAPI sysBaseAPI; + @Autowired + private RepositoryService repositoryService; + @Autowired + RuntimeService runtimeService; + @Autowired + TaskService taskService; + @Autowired + HistoryService historyService; + @Test + public void createproess(){ + Deployment deployment = repositoryService + .createDeployment() + .addClasspathResource("process/initiatesProjects.bpmn20.xml") + .addClasspathResource("process/initiatesProjects.png") + .name("项目入库申请流程") + .deploy(); + System.out.println("deployment.getId() = " + deployment.getId()); + System.out.println("deployment.getName() = " + deployment.getName()); + } + @Test + public void delete(){ + List deployments = repositoryService.createDeploymentQuery().list(); + for (Deployment deployment : deployments) { + System.out.println(deployment.getId()); + repositoryService.deleteDeployment(deployment.getId()); + } + } + /** + * 查询流程定义列表 + */ + @Test + public void listProcessDefinitions() { + List processDefinitions = this.repositoryService.createProcessDefinitionQuery() + .list(); + if (!CollectionUtils.isEmpty(processDefinitions)) { + processDefinitions.forEach(processDefinition -> { + System.out.println("Name:" + processDefinition.getName()); + System.out.println("Key:" + processDefinition.getKey()); + System.out.println("ResourceName:" + processDefinition.getResourceName()); + System.out.println("DeploymentId:" + processDefinition.getDeploymentId()); + System.out.println("Version:" + processDefinition.getVersion()); + }); + } + } + /** + * 初始化流程实例,发起流程 + */ + @Test + public void initProcessInstance() { + // 流程定义KEY + + String processDefinitionKey = "initiatesProjects"; + // 业务表KEY(用于把业务数据与Activiti7流程数据相关联) + String businessKey = UUID.randomUUID().toString().replace("-",""); //"4208169753200945"; + // 参数 + Map variables = new HashMap<>(); + variables.put("start","e9ca23d68d884d4ebb19d07889727dae"); + ProcessInstance processInstance = this.runtimeService + .startProcessInstanceByKey(processDefinitionKey, businessKey, variables); + System.out.println("流程实例ID:" + processInstance.getProcessInstanceId()); + //1d1d364f-b9ca-11ee-a2e6-f43bd81684b1 + } + /** + * 查询流程实例 + */ + @Test + public void getProcessInstance() { + String processInstanceId = "1d1d364f-b9ca-11ee-a2e6-f43bd81684b1"; + ProcessInstance processInstance = this.runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId) + .singleResult(); + System.out.println("ProcessInstanceId:" + processInstance.getProcessInstanceId()); + System.out.println("ProcessDefinitionId:" + processInstance.getProcessDefinitionId()); + System.out.println("isEnded:" + processInstance.isEnded()); + System.out.println("isSuspended:" + processInstance.isSuspended()); + } + /** + * 查询流程实例列表 + */ + @Test + public void listProcessInstances() { + List processInstanceList = this.runtimeService.createProcessInstanceQuery().list(); + if (!CollectionUtils.isEmpty(processInstanceList)) { + processInstanceList.forEach(processInstance -> { + System.out.println("ProcessInstanceId:" + processInstance.getProcessInstanceId()); + System.out.println("ProcessDefinitionId:" + processInstance.getProcessDefinitionId()); + System.out.println("isEnded:" + processInstance.isEnded()); + System.out.println("isSuspended:" + processInstance.isSuspended()); + }); + } + } + /** + * 查询任务列表 + */ + @Test + public void listTasks() { + List taskList = this.taskService.createTaskQuery().list(); + if (!CollectionUtils.isEmpty(taskList)) { + taskList.forEach(task -> { + BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId()); + + +//这里的key要找到下一个才行 + FlowElement flowElement = bpmnModel.getFlowElement(task.getTaskDefinitionKey()); + + UserTask userTask = (UserTask) flowElement; +//搞到当前userTask的出处 + List outgoingFlows = userTask.getOutgoingFlows(); +//直接获得目标元素 + FlowElement targetFlowElement = outgoingFlows.get(0).getTargetFlowElement(); +//转过来 + UserTask nextUserTask = (UserTask) targetFlowElement; + String nextUserTaskName = nextUserTask.getName(); + if("监管单位审批".equals(nextUserTaskName)){ + + } + String processInstanceId = task.getProcessInstanceId(); + List list = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId) + .active().list(); + + System.out.println("Id:" + task.getId()); + System.out.println("Name:" + task.getName()); + System.out.println("Assignee:" + task.getAssignee()); + }); + } + } + /** + * 查询我的代办任务 + */ + @Test + public void listTasksByAssignee() { + String assignee = "e9ca23d68d884d4ebb19d07889727dae"; + List taskList = this.taskService.createTaskQuery() + .taskAssignee(assignee) + .list(); + if (!CollectionUtils.isEmpty(taskList)) { + taskList.forEach(task -> { + System.out.println("Id:" + task.getId()); + System.out.println("Name:" + task.getName()); + System.out.println("Assignee:" + task.getAssignee()); + }); + } + } + + /** + * 我的组代办 + */ + @Test + public void listTasksByGroup() { + String assignee = "e9ca23d68d884d4ebb19d07889727dae"; + List taskList = this.taskService.createTaskQuery() + .taskCandidateGroup("supervise") + .list(); + if (!CollectionUtils.isEmpty(taskList)) { + taskList.forEach(task -> { + System.out.println("Id:" + task.getId()); + System.out.println("Name:" + task.getName()); + System.out.println("Assignee:" + task.getAssignee()); + }); + } + } + /** + * 完成任务 + */ + @Test + public void completeTask() { + String taskId = "c594f43d-b9d5-11ee-91b9-f43bd81684b1"; + Map variables = new HashMap<>(); + variables.put("type",1); + this.taskService.complete(taskId, variables); + } + /** + * 根据用户名查询历史记录 + */ + @Test + public void listHistoricTasksByAssignee() { + String assignee = "e9ca23d68d884d4ebb19d07889727dae"; + List historicTasks = this.historyService.createHistoricTaskInstanceQuery() + .taskAssignee(assignee) + .list(); + if (!CollectionUtils.isEmpty(historicTasks)) { + historicTasks.forEach(historicTaskInstance -> { + System.out.println("Id:" + historicTaskInstance.getId()); + System.out.println("ProcessInstanceId:" + historicTaskInstance.getProcessInstanceId()); +// System.out.println("Name:" + historicTaskInstance.getName()); + }); + } + } + + + + + + + + + + + + + + + + + + + + + /** * 发送系统消息 diff --git a/jeecg-module-system/pom.xml b/jeecg-module-system/pom.xml index 13748f4..68b3cfd 100644 --- a/jeecg-module-system/pom.xml +++ b/jeecg-module-system/pom.xml @@ -17,5 +17,8 @@ jeecg-system-biz jeecg-system-start + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 6bcd097..ebe0a77 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ jeecg-boot-base-core jeecg-module-demo jeecg-module-system - jeecg-module-activit + huzhou