Commit 76de1573 by 王厚康

接口定义

parent 40ebb7e4
package com.bbd.bpm.controller.deployment;
import com.bbd.bpm.BpmResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.Model;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.HashMap;
import java.util.Map;
/**
* Created by houkang on 2019/2/22.
*/
@RestController
@RequestMapping("/bpm/model")
@Api(tags = {"流程管理"})
public class DeploymentController {
private static final Logger Log = LoggerFactory.getLogger(DeploymentController.class);
@Autowired
private RepositoryService repositoryService;
@Autowired
private RuntimeService runtimeService;
@ApiOperation(value = "查询流程列表")
@GetMapping("/modelList")
public BpmResponse modelList() {
BpmResponse resp = new BpmResponse();
//todo
return resp;
}
@ApiOperation(value = "删除流程")
@GetMapping("/deleteModel")
public BpmResponse deleteModel() {
BpmResponse resp = new BpmResponse();
//todo
return resp;
}
@ApiOperation(value = "部署流程")
@GetMapping("/deploymentModel")
public BpmResponse deploymentModel(final String modelId) {
BpmResponse resp = new BpmResponse();
resp.setSuccess(true);
try {
Model modelData = repositoryService.getModel(modelId);
ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId()));
byte[] bpmnBytes = null;
BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode);
bpmnBytes = new BpmnXMLConverter().convertToXML(model);
String processName = modelData.getName() + ".bpmn20.xml";
DeploymentBuilder db = repositoryService.createDeployment().name(modelData.getName());
Deployment deployment = db.addString(processName, new String(bpmnBytes,"utf-8")).deploy();
//需要在 model表里保存 deploymentid
modelData.setDeploymentId(deployment.getId());
//保存 model
//todo
resp.setData(deployment.getId());
} catch (Exception e) {
Log.error(modelId+"部署失败",e);
resp.setSuccess(false);
}
return resp;
}
@ApiOperation(value = "删除部署")
@GetMapping("/deleteDeployment")
public BpmResponse deleteDeployment(String deploymentId) {
BpmResponse resp = new BpmResponse();
// processEngine.getRepositoryService().deleteDeployment(deploymentId, true);
//todo
return resp;
}
@ApiOperation(value = "开启流程")
@GetMapping("/startModel")
public BpmResponse startModel(final String deploymentId,String bussinessKey) {
BpmResponse resp = new BpmResponse();
resp.setSuccess(true);
try {
//获取流程定义
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deploymentId).singleResult();
//启动流程定义,返回流程实例
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("user","yuagong1");
ProcessInstance pi = runtimeService.startProcessInstanceByKey(processDefinition.getKey(), bussinessKey,variables);
String processId = pi.getId();
System.out.println("流程创建成功,当前流程实例ID:" + processId);
resp.setData(processId);
} catch (Exception e) {
Log.error(deploymentId+"开启失败",e);
resp.setSuccess(false);
resp.setMessage("开启失败");
}
return resp;
}
}
package com.bbd.bpm.controller.taskHistory;
import io.swagger.annotations.Api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by houkang on 2019/2/27.
*/
@RestController
@RequestMapping("/bpm/history")
@Api(tags = {"历史任务管理"})
public class TaskHistoryController {
private static final Logger Log = LoggerFactory.getLogger(TaskHistoryController.class);
}
package com.bbd.bpm.controller.taskOperate;
import com.bbd.bpm.BpmResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by houkang on 2019/2/27.
*/
@RestController
@RequestMapping("/bpm/task")
@Api(tags = {"任务管理"})
public class TaskOperateController {
private static final Logger Log = LoggerFactory.getLogger(TaskOperateController.class);
@ApiOperation(value = "查询待处理任务")
@GetMapping("/pendingTaskList")
public BpmResponse pendingTaskList() {
BpmResponse resp = new BpmResponse();
//todo
return resp;
}
@ApiOperation(value = "改变任务处理人")
@GetMapping("/appointTaskTo")
public BpmResponse appointTaskTo() {
BpmResponse resp = new BpmResponse();
//todo
return resp;
}
@ApiOperation(value = "删除任务")
@GetMapping("/deleteTask")
public BpmResponse deleteTask() {
BpmResponse resp = new BpmResponse();
//todo
return resp;
}
@ApiOperation(value = "任务处理")
@GetMapping("/completeTask")
public BpmResponse completeTask() {
BpmResponse resp = new BpmResponse();
//todo
return resp;
}
}
package com.bbd.bpm.domain;
import javax.persistence.*;
import java.sql.Timestamp;
/**
* Created by houkang on 2019/2/22.
*/
@Entity
@Table(name = "act_re_model")
public class ActReModelEntity {
private String id;
private Integer rev;
private String name;
private String key;
private String category;
private Timestamp createTime;
private Timestamp lastUpdateTime;
private Integer version;
private String metaInfo;
private String tenantId;
@Id
@Column(name = "ID_")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Basic
@Column(name = "REV_")
public Integer getRev() {
return rev;
}
public void setRev(Integer rev) {
this.rev = rev;
}
@Basic
@Column(name = "NAME_")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Basic
@Column(name = "KEY_")
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
@Basic
@Column(name = "CATEGORY_")
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
@Basic
@Column(name = "CREATE_TIME_")
public Timestamp getCreateTime() {
return createTime;
}
public void setCreateTime(Timestamp createTime) {
this.createTime = createTime;
}
@Basic
@Column(name = "LAST_UPDATE_TIME_")
public Timestamp getLastUpdateTime() {
return lastUpdateTime;
}
public void setLastUpdateTime(Timestamp lastUpdateTime) {
this.lastUpdateTime = lastUpdateTime;
}
@Basic
@Column(name = "VERSION_")
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
@Basic
@Column(name = "META_INFO_")
public String getMetaInfo() {
return metaInfo;
}
public void setMetaInfo(String metaInfo) {
this.metaInfo = metaInfo;
}
@Basic
@Column(name = "TENANT_ID_")
public String getTenantId() {
return tenantId;
}
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
}
...@@ -5,6 +5,7 @@ import org.activiti.engine.ProcessEngines; ...@@ -5,6 +5,7 @@ import org.activiti.engine.ProcessEngines;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.impl.el.FixedValue;
import java.io.Serializable; import java.io.Serializable;
...@@ -12,24 +13,21 @@ import java.io.Serializable; ...@@ -12,24 +13,21 @@ import java.io.Serializable;
* Created by houkang on 2019/1/28. * Created by houkang on 2019/1/28.
*/ */
public class PutAssigneeListener implements Serializable, TaskListener { public class PutAssigneeListener implements Serializable, TaskListener {
// private String job; private FixedValue job;
@Override @Override
public void notify(DelegateTask delegateTask) { public void notify(DelegateTask delegateTask) {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
TaskService taskService = processEngine.getTaskService(); TaskService taskService = processEngine.getTaskService();
//System.out.println("========================= "+job+" ============="); if(job!=null){
// if(job!=null){ if("jingli".equals(job.getExpressionText())){
// if("jingli".equals(job)){ delegateTask.setAssignee("wang");
// delegateTask.setAssignee("wang"); }else if("emp".equals(job.getExpressionText())){
// }else if("emp".equals(job)){ delegateTask.setAssignee("houkang");
// delegateTask.setAssignee("houkang"); }
// } }else{
// }else{
taskService.setAssignee(delegateTask.getId(),"hr"); taskService.setAssignee(delegateTask.getId(),"hr");
// } }
} }
//
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment