Parcourir la source

提交工作流代码

chenken il y a 8 ans
Parent
commit
18ed853aaa

+ 34 - 0
cqb-flow-core/src/main/java/com/qmth/cqb/flow/enums/PassEnum.java

@@ -0,0 +1,34 @@
+package com.qmth.cqb.flow.enums;
+
+public enum PassEnum {
+	PASS(1,"通过"),
+	NOPASS(0,"不通过");
+	private int value;
+	private String desc;
+	
+	private PassEnum(int value, String desc) {
+		this.value = value;
+		this.desc = desc;
+	}
+	
+	private PassEnum(){
+		
+	}
+
+	public int getValue() {
+		return value;
+	}
+
+	public void setValue(int value) {
+		this.value = value;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+	public void setDesc(String desc) {
+		this.desc = desc;
+	}
+
+}

+ 1 - 1
cqb-flow-core/src/main/java/com/qmth/cqb/flow/service/ComProcessService.java

@@ -31,7 +31,7 @@ public interface ComProcessService {
 	* @return  
 	* @throws
 	 */
-	public void deployProcess(String processName,String exportDir) throws Exception;
+	public void deployProcess(String processPath,String processName) throws Exception;
 	/**
 	 * 通过二进制流部署流程定义
 	 * @param inputStream

+ 19 - 2
cqb-flow-core/src/main/java/com/qmth/cqb/flow/service/ComTaskService.java

@@ -8,6 +8,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.activiti.engine.impl.task.TaskDefinition;
+import org.activiti.engine.task.Task;
 
 import com.qmth.cqb.flow.model.TaskModel;
 import com.qmth.cqb.flow.model.WorkFlowModel;
@@ -26,7 +27,7 @@ public interface ComTaskService {
 	/**
 	* 查询个人可以办理的任务
 	* assignee	任务办理人		必须
-	* category	系统类别		非必须
+	* category	系统类别			非必须
 	* @param assignee 用户ID
 	* @return  
 	* @throws
@@ -79,7 +80,23 @@ public interface ComTaskService {
 	* @return  
 	* @throws
 	 */
-	public void completeTaskByProcInstId(String procInstId,Map<String, Object> variables) throws Exception;
+	public void completeTaskByProcInstIdAndAssignee(String procInstId,Map<String, Object> variables) throws Exception;
+	/**
+	 * 
+	* @Title: completeTaskByProcInstId  
+	* @Description: 通过流程ID和任务处理角色完成任务
+	* @param
+	* @return  
+	* @throws
+	 */
+	public void completeTaskByProcInstIdAndRole(String procInstId,Map<String, Object> variables) throws Exception;
+	/**
+	 * 根据流程实例ID和任务处理人取出任务
+	 * @param procInstId
+	 * @param assignee
+	 * @return
+	 */
+	public Task findTaskByProcInstIdAndAssignee(String procInstId,String assignee);
 	
 	/**
 	 * 根据当前任务ID获取下一节点任务信息

+ 33 - 2
cqb-flow-core/src/main/java/com/qmth/cqb/flow/serviceImpl/ComTaskServiceImpl.java

@@ -140,7 +140,7 @@ public class ComTaskServiceImpl implements ComTaskService{
 	}
 	
 	@Override
-	public void completeTaskByProcInstId(String procInstId,Map<String, Object> variables) throws Exception{
+	public void completeTaskByProcInstIdAndAssignee(String procInstId,Map<String, Object> variables) throws Exception{
 		String assignee = variables.get("assignee")+"";
 		if(StringUtils.isNotBlank(assignee)){
 			Task task = taskService.createTaskQuery()
@@ -258,5 +258,36 @@ public class ComTaskServiceImpl implements ComTaskService{
     private String getGatewayCondition(String gatewayId, String processInstanceId) {  
         Execution execution = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).singleResult();  
         return runtimeService.getVariable(execution.getId(), gatewayId)+"";  
-    }  
+    }
+
+	@Override
+	public Task findTaskByProcInstIdAndAssignee(String procInstId,String assignee) {
+		Task task = null;
+		if(StringUtils.isNotBlank(procInstId)&&StringUtils.isNotBlank(assignee)){
+			 task = taskService.createTaskQuery()
+					 	.processInstanceId(procInstId)
+					 	.taskAssignee(assignee)
+					 	.active()
+					 	.singleResult();
+		}
+		return task;
+	}
+
+	@Override
+	public void completeTaskByProcInstIdAndRole(String procInstId,Map<String, Object> variables) throws Exception {
+		String role = variables.get("role")+"";
+		String assignee = variables.get("assignee")+"";
+		if(StringUtils.isNotBlank(role)){
+			Task task = taskService.createTaskQuery()
+					 	.processInstanceId(procInstId)
+					 	.taskCandidateGroup(role)
+					 	.active()
+					 	.singleResult();
+			// 让指定userId的用户认领指定taskId的任务
+			taskService.claim(task.getId(), assignee);
+			if (task!=null) {
+				taskService.complete(task.getId(), variables);
+			}
+		}
+	}  
 }