diff --git a/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/processon/demo1.bpmn b/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/processon/demo1.bpmn
new file mode 100644
index 000000000..f860f8979
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/processon/demo1.bpmn
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/processon/yishi.bpmn b/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/processon/yishi.bpmn
index 33cdd1a32..152a2efff 100644
--- a/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/processon/yishi.bpmn
+++ b/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/processon/yishi.bpmn
@@ -1,43 +1,50 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/src/main/java/com/elink/esua/epdc/service/ActWorkflowCommonService.java b/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/src/main/java/com/elink/esua/epdc/service/ActWorkflowCommonService.java
new file mode 100644
index 000000000..2db005979
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/src/main/java/com/elink/esua/epdc/service/ActWorkflowCommonService.java
@@ -0,0 +1,24 @@
+package com.elink.esua.epdc.service;
+
+/**
+ * activiti工作流
+ *
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/3 11:18
+ */
+public interface ActWorkflowCommonService {
+
+ /**
+ * 启动流程并绑定任务
+ *
+ * @param processKey 流程ID
+ * @param businessKey 任务ID
+ * @param deptId 部门ID(通过部门ID,判断是否有权限审核任务)
+ * @return boolean
+ * @author yujintao
+ * @date 2019/9/3 13:58
+ */
+ boolean startProcess(String processKey, String businessKey, String deptId);
+
+}
diff --git a/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/src/main/java/com/elink/esua/epdc/service/impl/ActWorkflowCommonServiceImpl.java b/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/src/main/java/com/elink/esua/epdc/service/impl/ActWorkflowCommonServiceImpl.java
new file mode 100644
index 000000000..8c1dee237
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/src/main/java/com/elink/esua/epdc/service/impl/ActWorkflowCommonServiceImpl.java
@@ -0,0 +1,50 @@
+package com.elink.esua.epdc.service.impl;
+
+import com.elink.esua.epdc.service.ActWorkflowCommonService;
+import com.google.common.collect.Maps;
+import org.activiti.engine.HistoryService;
+import org.activiti.engine.RepositoryService;
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.TaskService;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.context.ContextLoader;
+import org.springframework.web.context.WebApplicationContext;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/3 11:19
+ */
+@Service
+public class ActWorkflowCommonServiceImpl implements ActWorkflowCommonService {
+
+ @Autowired
+ private RepositoryService repositoryService;
+
+ @Autowired
+ private RuntimeService runtimeService;
+
+ @Autowired
+ private TaskService taskService;
+
+ @Autowired
+ private HistoryService historyService;
+
+ @Override
+ public boolean startProcess(String processKey, String businessKey, String deptId) {
+ Map map = Maps.newHashMap();
+ map.put("deptId", deptId);
+ map.put("activityId", "_2");
+ //使用正在执行对象表中的一个字段BUSINESS_KEY(Activiti提供的一个字段),让启动的流程(流程实例)关联业务
+ runtimeService.startProcessInstanceByKey(processKey, businessKey, map);
+ return true;
+ }
+
+
+}
diff --git a/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/src/test/java/com/elink/esua/epdc/ActivitiTest.java b/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/src/test/java/com/elink/esua/epdc/ActivitiTest.java
new file mode 100644
index 000000000..5594c95e7
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-activiti/epdc-activiti-server/src/test/java/com/elink/esua/epdc/ActivitiTest.java
@@ -0,0 +1,110 @@
+package com.elink.esua.epdc;
+
+import com.elink.esua.epdc.service.ActWorkflowCommonService;
+import com.google.common.collect.Maps;
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.TaskService;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.activiti.engine.task.Task;
+import org.activiti.engine.task.TaskQuery;
+import org.junit.Test;
+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 java.util.List;
+import java.util.Map;
+
+/**
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/3 10:06
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ActivitiTest {
+
+ @Autowired
+ private ActWorkflowCommonService actWorkflowCommonService;
+
+ @Autowired
+ private TaskService taskService;
+
+ @Autowired
+ private RuntimeService runtimeService;
+
+ @Test
+ public void test() {
+ String processId = "demoTask";
+ // 启动一个任务流程
+ actWorkflowCommonService.startProcess(processId, "testBusinessKey3", "testDeptId");
+ }
+
+ @Test
+ public void test2() {
+ String processId = "demoTask";
+ String deptId = "testDeptId";
+ this.queryTask(processId, deptId);
+ /*
+ 关联业务id:testBusinessKey
+ 流程实例id:5001
+ 任务id:5006
+ 任务标识:_4
+ 任务负责人:testDeptId
+ 任务名称:初次审核
+ 任务创建时间:Tue Sep 03 14:26:50 CST 2019
+ */
+ }
+
+ @Test
+ public void test3() {
+ Map map = Maps.newHashMap();
+ map.put("deptId", "testDeptId2");
+ taskService.complete("5006", map);
+ }
+
+ @Test
+ public void test4() {
+ String processId = "demoTask";
+ String deptId = "testDeptId2";
+ this.queryTask(processId, deptId);
+ /*
+ 关联业务id:testBusinessKey
+ 流程实例id:5001
+ 任务id:7502
+ 任务标识:_5
+ 任务负责人:testDeptId2
+ 任务名称:二次审核
+ 任务创建时间:Tue Sep 03 14:49:29 CST 2019
+ */
+ }
+
+
+ private void queryTask(String processId, String deptId) {
+ //创建查询对象
+ TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(deptId).processDefinitionKey(processId);
+ //获取查询列表
+ List list = taskQuery.list();
+
+ for (Task task : list) {
+ //流程实例id
+ String processInstanceId = task.getProcessInstanceId();
+ //根据流程实例id找到流程实例对象
+ ProcessInstance processInstance = runtimeService
+ .createProcessInstanceQuery()
+ .processInstanceId(processInstanceId)
+ .singleResult();
+ //从流程实例对象获取bussinesskey
+ String businessKey = processInstance.getBusinessKey();
+ //根据businessKey查询业务系统,获取相关的业务信息
+ System.out.println("关联业务id:" + businessKey);
+ System.out.println("流程实例id:" + task.getProcessInstanceId());
+ System.out.println("任务id:" + task.getId());
+ System.out.println("任务标识:" + task.getTaskDefinitionKey());
+ System.out.println("任务负责人:" + task.getAssignee());
+ System.out.println("任务名称:" + task.getName());
+ System.out.println("任务创建时间:" + task.getCreateTime());
+ }
+ }
+}