Commit c039e7e6 by yuwei

项目初始化

parent a52c139f
......@@ -16,6 +16,7 @@ public class DataConstant {
TOKENTYPE("bearer "),
//security授权角色前缀
ROLEPREFIX("ROLE_");
Security(String val){
this.val = val;
}
......@@ -33,6 +34,7 @@ public class DataConstant {
public enum TrueOrFalse {
FALSE("0",false),
TRUE("1",true);
TrueOrFalse(String key, boolean val){
this.key = key;
this.val = val;
......@@ -62,6 +64,7 @@ public class DataConstant {
DEPT("user_dept", "用户部门"),
ROLE("user_role", "用户角色"),
POST("user_post", "用户岗位");
UserAdditionalInfo(String key, String val){
this.key = key;
this.val = val;
......@@ -85,6 +88,7 @@ public class DataConstant {
public enum EnableState {
DISABLE("0","禁用"),
ENABLE("1","启用");
EnableState(String key, String val){
this.key = key;
this.val = val;
......@@ -107,34 +111,13 @@ public class DataConstant {
*/
public enum AuditState{
WAIT("1","待提交"),
AUDIT("2","审核中"),
AGREE("3","成功"),
REJECT("4","失败"),
CANCEL("5", "已撤销");
AuditState(String key, String val){
this.key = key;
this.val = val;
}
private final String key;
private final String val;
BACK("2", "已退回"),
AUDIT("3","审核中"),
AGREE("4","通过"),
REJECT("5","不通过"),
CANCEL("6", "已撤销");
public String getKey() {
return key;
}
public String getVal() {
return val;
}
}
/**
* 流程审批状态
*/
public enum ApproveState{
REJECT("0","不通过"),
AGREE("1","通过");
ApproveState(String key, String val){
AuditState(String key, String val){
this.key = key;
this.val = val;
}
......
......@@ -17,6 +17,11 @@ spring:
port: 5672
username: admin
password: 1234@abcd
publisher-confrems: true
publisher-returns: true
listener:
simple:
acknowledge-mode: manual
datasource:
dynamic:
primary: mysql
......
......@@ -30,8 +30,12 @@ public class RabbitMqListenerConfig {
try {
log.info("fanoutQueueRelease接收到了:{}", id);
queueHandlerService.handlerRelease(id);
// 手动确认
channel.basicAck(message.getMessageProperties().getDeliveryTag(), true);
}catch (Exception e){
log.error("全局异常信息ex={}, StackTrace={}", e.getMessage(), ThrowableUtil.getStackTrace(e));
// 拒绝策略
channel.basicReject(message.getMessageProperties().getDeliveryTag(), false);
}
}
......@@ -45,8 +49,12 @@ public class RabbitMqListenerConfig {
try {
log.info("fanoutQueueCancel接收到了:{}", id);
queueHandlerService.handlerCancel(id);
// 手动确认
channel.basicAck(message.getMessageProperties().getDeliveryTag(), true);
}catch (Exception e){
log.error("全局异常信息ex={}, StackTrace={}", e.getMessage(), ThrowableUtil.getStackTrace(e));
// 拒绝策略
channel.basicReject(message.getMessageProperties().getDeliveryTag(), false);
}
}
}
......@@ -363,20 +363,48 @@ public class DataApiServiceImpl extends BaseServiceImpl<DataApiDao, DataApiEntit
@Override
public void releaseDataApi(String id) {
rabbitTemplate.convertAndSend(RabbitMqConstant.FANOUT_EXCHANGE_API_RELEASE_NAME, "", id);
// 消息是否成功发送到Exchange
rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
if (ack) {
log.info("消息成功发送到Exchange");
DataApiEntity dataApiEntity = new DataApiEntity();
dataApiEntity.setId(id);
dataApiEntity.setStatus(DataConstant.ApiState.RELEASE.getKey());
dataApiDao.updateById(dataApiEntity);
} else {
log.error("消息发送到Exchange失败, {}, cause: {}", correlationData, cause);
}
});
// 触发setReturnCallback回调必须设置mandatory=true, 否则Exchange没有找到Queue就会丢弃掉消息, 而不会触发回调
rabbitTemplate.setMandatory(true);
// 消息是否从Exchange路由到Queue, 注意: 这是一个失败回调, 只有消息从Exchange路由到Queue失败才会回调这个方法
rabbitTemplate.setReturnCallback((message, replyCode, replyText, exchange, routingKey) -> {
log.error("消息从Exchange路由到Queue失败: exchange: {}, route: {}, replyCode: {}, replyText: {}, message: {}", exchange, routingKey, replyCode, replyText, message);
});
rabbitTemplate.convertAndSend(RabbitMqConstant.FANOUT_EXCHANGE_API_RELEASE_NAME, "", id);
}
@Override
public void cancelDataApi(String id) {
rabbitTemplate.convertAndSend(RabbitMqConstant.FANOUT_EXCHANGE_API_CANCEL_NAME, "", id);
// 消息是否成功发送到Exchange
rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
if (ack) {
log.info("消息成功发送到Exchange");
DataApiEntity dataApiEntity = new DataApiEntity();
dataApiEntity.setId(id);
dataApiEntity.setStatus(DataConstant.ApiState.CANCEL.getKey());
dataApiDao.updateById(dataApiEntity);
} else {
log.error("消息发送到Exchange失败, {}, cause: {}", correlationData, cause);
}
});
// 触发setReturnCallback回调必须设置mandatory=true, 否则Exchange没有找到Queue就会丢弃掉消息, 而不会触发回调
rabbitTemplate.setMandatory(true);
// 消息是否从Exchange路由到Queue, 注意: 这是一个失败回调, 只有消息从Exchange路由到Queue失败才会回调这个方法
rabbitTemplate.setReturnCallback((message, replyCode, replyText, exchange, routingKey) -> {
log.error("消息从Exchange路由到Queue失败: exchange: {}, route: {}, replyCode: {}, replyText: {}, message: {}", exchange, routingKey, replyCode, replyText, message);
});
rabbitTemplate.convertAndSend(RabbitMqConstant.FANOUT_EXCHANGE_API_CANCEL_NAME, "", id);
}
@Override
......
......@@ -22,7 +22,7 @@ public class ProcessInstanceCreateRequest implements Serializable {
@ApiModelProperty(value = "业务ID")
private String businessKey;
@ApiModelProperty(value = "业务类型")
private String businessType;
private String businessCode;
@ApiModelProperty(value = "业务名称")
private String businessName;
@ApiModelProperty(value = "流程参数")
......@@ -31,7 +31,7 @@ public class ProcessInstanceCreateRequest implements Serializable {
public Map<String, Object> getVariables() {
variables.put(VariablesEnum.submitter.toString(), submitter);
variables.put(VariablesEnum.businessKey.toString(), businessKey);
variables.put(VariablesEnum.businessType.toString(), businessType);
variables.put(VariablesEnum.businessCode.toString(), businessCode);
variables.put(VariablesEnum.businessName.toString(), businessName);
return variables;
}
......
......@@ -10,7 +10,7 @@ import lombok.Getter;
@AllArgsConstructor
public enum ActionEnum {
COMPLETE("complete", "完成任务"),
COMPLETE("complete", "任务完成"),
CLAIM("claim", "任务签收"),
UNCLAIM("unclaim", "任务反签收"),
DELEGATE("delegate", "任务委派"),
......
......@@ -26,13 +26,13 @@ public enum VariablesEnum {
/** 失败结束节点 */
rejectEnd,
/** 活动主题 */
/** 业务主题 */
businessName,
/** 活动类型 */
businessType,
/** 业务类型 */
businessCode,
/** 主键id */
/** 业务主键 */
businessKey,
/** 审核结果 */
......
......@@ -12,6 +12,6 @@ public class FlowInstanceQuery extends BaseQueryParams {
private String name;
private String businessKey;
private String businessType;
private String businessCode;
private String businessName;
}
......@@ -17,7 +17,7 @@ public class FlowTaskQuery extends BaseQueryParams {
private List<String> groupIds;
private String name;
private String businessKey;
private String businessType;
private String businessCode;
private String businessName;
private String taskDefinitionKey;
private String processInstanceId;
......
......@@ -52,7 +52,7 @@ public class FlowHistTaskVo implements Serializable {
* 业务相关
*/
private String businessKey;
private String businessType;
private String businessCode;
private String businessName;
private Map<String,Object> variables;
......@@ -61,7 +61,7 @@ public class FlowHistTaskVo implements Serializable {
if(null != variables){
//放入业务常量
this.businessKey = (String) variables.get(VariablesEnum.businessKey.toString());
this.businessType = (String) variables.get(VariablesEnum.businessType.toString());
this.businessCode = (String) variables.get(VariablesEnum.businessCode.toString());
this.businessName = (String) variables.get(VariablesEnum.businessName.toString());
}
}
......
......@@ -53,10 +53,14 @@ public class FlowTaskVo implements Serializable {
private Boolean isUpdated;
private Boolean isDeleted;
/**
* 是否委派任务
*/
private Boolean isDelegation;
/**
* 业务相关
*/
private String businessKey;
private String businessType;
private String businessCode;
private String businessName;
private Map<String,Object> variables;
......@@ -65,7 +69,7 @@ public class FlowTaskVo implements Serializable {
if(null != variables){
//放入业务常量
this.businessKey = (String) variables.get(VariablesEnum.businessKey.toString());
this.businessType = (String) variables.get(VariablesEnum.businessType.toString());
this.businessCode = (String) variables.get(VariablesEnum.businessCode.toString());
this.businessName = (String) variables.get(VariablesEnum.businessName.toString());
}
}
......
......@@ -29,9 +29,9 @@ public class FlowInstanceController extends BaseController {
@PostMapping("/startById")
@ApiOperation(value = "启动通过流程定义ID流程实例")
@ApiImplicitParam(name = "request", value = "启动流程实例实体request", required = true, dataType = "ProcessInstanceCreateRequest")
public R startById(@RequestBody ProcessInstanceCreateRequest request) {
flowInstanceService.startProcessInstanceById(request);
return R.ok();
public FlowInstanceVo startById(@RequestBody ProcessInstanceCreateRequest request) {
FlowInstanceVo flowInstanceVo = flowInstanceService.startProcessInstanceById(request);
return flowInstanceVo;
}
@ApiOperation(value = "分页查询")
......
......@@ -24,6 +24,17 @@ public class FlowTaskController extends BaseController {
@Autowired
private FlowTaskService flowTaskService;
@ApiOperation(value = "执行任务", notes = "执行任务类型:claim签收 unclaim反签收 complete完成 delegate任务委派 resolve任务归还 assignee任务转办")
@ApiImplicitParams({
@ApiImplicitParam(name = "taskId", value = "任务ID", required = true, dataType = "String", paramType = "path"),
@ApiImplicitParam(name = "request", value = "执行任务实体request", required = true, dataType = "TaskRequest")
})
@PostMapping(value = "/execute/{taskId}")
public R executeTask(@PathVariable String taskId, @RequestBody TaskRequest request) {
flowTaskService.execute(request);
return R.ok();
}
@ApiOperation(value = "分页查询待办任务")
@ApiImplicitParams({
@ApiImplicitParam(name = "flowTaskQuery", value = "查询实体flowTaskQuery", required = true, dataTypeClass = FlowTaskQuery.class)
......@@ -45,15 +56,4 @@ public class FlowTaskController extends BaseController {
JsonPage<FlowHistTaskVo> jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), page.getRecords());
return R.ok().setData(jsonPage);
}
@ApiOperation(value = "执行任务", notes = "执行任务类型:claim签收 unclaim反签收 complete完成 delegate任务委派 resolve任务归还 assignee任务转办")
@ApiImplicitParams({
@ApiImplicitParam(name = "taskId", value = "任务ID", required = true, dataType = "String", paramType = "path"),
@ApiImplicitParam(name = "request", value = "执行任务实体request", required = true, dataType = "TaskRequest")
})
@PostMapping(value = "/execute/{taskId}")
public R executeTask(@PathVariable String taskId, @RequestBody TaskRequest request) {
flowTaskService.execute(request);
return R.ok();
}
}
package cn.datax.service.workflow.flowable;
import cn.datax.common.core.DataConstant;
import cn.datax.service.workflow.api.enums.VariablesEnum;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener;
import java.util.Map;
@Slf4j
public class EndTaskListener implements ExecutionListener {
@Override
public void notify(DelegateExecution delegateExecution) {
log.info("业务编号{}", delegateExecution.getProcessInstanceBusinessKey());
log.info("节点{},{}", delegateExecution.getId(), delegateExecution.getEventName());
log.info("节点{},{},{}", delegateExecution.getId(), delegateExecution.getEventName(), delegateExecution.getCurrentActivityId());
log.info("Variables:{}", delegateExecution.getVariables());
// 业务状态变更操作
Map<String, Object> variables = delegateExecution.getVariables();
// 发送消息队列
String businessKey = (String) variables.get(VariablesEnum.businessKey.toString());
String businessCode = (String) variables.get(VariablesEnum.businessCode.toString());
log.info("业务结束:{},{}", businessKey, businessCode);
if (delegateExecution.getCurrentActivityId().equals(VariablesEnum.approveEnd.toString())) {
log.info("业务结束状态:{}", DataConstant.AuditState.AGREE.getKey());
} else if (delegateExecution.getCurrentActivityId().equals(VariablesEnum.rejectEnd.toString())) {
log.info("业务结束状态:{}", DataConstant.AuditState.REJECT.getKey());
}
}
}
......@@ -7,7 +7,7 @@ import org.flowable.task.service.delegate.DelegateTask;
import org.flowable.task.service.delegate.TaskListener;
@Slf4j
public class FinalAuditTaskListener implements TaskListener {
public class FinalAuditCreateTaskListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
......@@ -16,6 +16,7 @@ public class FinalAuditTaskListener implements TaskListener {
taskService.setAssignee(delegateTask.getId(), "1214835832967581698");
// taskService.addCandidateUser(delegateTask.getId(), "");
// taskService.addCandidateGroup(delegateTask.getId(), "");
log.info("Variables:{}", delegateTask.getVariables());
log.info("任务执行人:{}", delegateTask.getAssignee());
log.info("任务配置ID: {}", delegateTask.getTaskDefinitionKey());
log.info("退出终审节点用户任务启动监听器");
......
package cn.datax.service.workflow.flowable;
import cn.datax.common.utils.SpringContextHolder;
import cn.datax.service.workflow.api.enums.VariablesEnum;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.TaskService;
import org.flowable.task.service.delegate.DelegateTask;
import org.flowable.task.service.delegate.TaskListener;
import java.util.Map;
import java.util.Optional;
@Slf4j
public class InitialAuditCompleteTaskListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
log.info("进入初审节点用户任务完成监听器");
log.info("Variables:{}", delegateTask.getVariables());
log.info("任务执行人:{}", delegateTask.getAssignee());
log.info("任务配置ID: {}", delegateTask.getTaskDefinitionKey());
Map<String, Object> variables = delegateTask.getVariables();
Boolean approved = (Boolean) Optional.ofNullable(variables).map(s -> s.get(VariablesEnum.approved)).orElse(true);
log.info("审核结果: {}", approved);
// 退回操作
if (!approved) {
// 发送消息队列
String businessKey = (String) variables.get(VariablesEnum.businessKey.toString());
String businessCode = (String) variables.get(VariablesEnum.businessCode.toString());
log.info("业务退回:{},{}", businessKey, businessCode);
}
log.info("退出初审节点用户任务完成监听器");
}
}
......@@ -7,7 +7,7 @@ import org.flowable.task.service.delegate.DelegateTask;
import org.flowable.task.service.delegate.TaskListener;
@Slf4j
public class InitialAuditTaskListener implements TaskListener {
public class InitialAuditCreateTaskListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
......@@ -16,6 +16,7 @@ public class InitialAuditTaskListener implements TaskListener {
taskService.setAssignee(delegateTask.getId(), "1214835832967581698");
// taskService.addCandidateUser(delegateTask.getId(), "");
// taskService.addCandidateGroup(delegateTask.getId(), "");
log.info("Variables:{}", delegateTask.getVariables());
log.info("任务执行人:{}", delegateTask.getAssignee());
log.info("任务配置ID: {}", delegateTask.getTaskDefinitionKey());
log.info("退出初审节点用户任务启动监听器");
......
package cn.datax.service.workflow.flowable;
import cn.datax.common.core.DataConstant;
import cn.datax.service.workflow.api.enums.VariablesEnum;
import lombok.extern.slf4j.Slf4j;
import org.flowable.task.service.delegate.DelegateTask;
import org.flowable.task.service.delegate.TaskListener;
import java.util.Map;
@Slf4j
public class SubmitCompleteTaskListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
log.info("进入提交节点用户任务完成监听器");
log.info("Variables:{}", delegateTask.getVariables());
log.info("任务执行人:{}", delegateTask.getAssignee());
log.info("任务配置ID: {}", delegateTask.getTaskDefinitionKey());
// 业务状态变更操作
Map<String, Object> variables = delegateTask.getVariables();
// 发送消息队列
String businessKey = (String) variables.get(VariablesEnum.businessKey.toString());
String businessCode = (String) variables.get(VariablesEnum.businessCode.toString());
log.info("业务审核中:{},{}", businessKey, businessCode);
log.info("业务审核中状态:{}", DataConstant.AuditState.AUDIT.getKey());
log.info("退出提交节点用户任务完成监听器");
}
}
......@@ -38,8 +38,9 @@ public interface FlowInstanceService {
/**
* 启动流程实例
* @param request
* @return
*/
void startProcessInstanceById(ProcessInstanceCreateRequest request);
FlowInstanceVo startProcessInstanceById(ProcessInstanceCreateRequest request);
/**
* 获取流程图图片
......
......@@ -7,6 +7,7 @@ import cn.datax.service.workflow.api.query.FlowInstanceQuery;
import cn.datax.service.workflow.api.vo.FlowInstanceVo;
import cn.datax.service.workflow.service.FlowInstanceService;
import cn.datax.service.workflow.utils.BeanCopyUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
......@@ -25,6 +26,7 @@ import org.flowable.engine.runtime.ProcessInstanceBuilder;
import org.flowable.engine.runtime.ProcessInstanceQuery;
import org.flowable.engine.task.Comment;
import org.flowable.image.impl.DefaultProcessDiagramGenerator;
import org.flowable.task.api.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
......@@ -61,11 +63,11 @@ public class FlowInstanceServiceImpl implements FlowInstanceService {
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessKey())){
processInstanceQuery.processInstanceBusinessKey(flowInstanceQuery.getBusinessKey());
}
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessType())){
processInstanceQuery.variableValueEquals(VariablesEnum.businessType.toString(), flowInstanceQuery.getBusinessType());
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessCode())){
processInstanceQuery.variableValueEquals(VariablesEnum.businessCode.toString(), flowInstanceQuery.getBusinessCode());
}
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessName())){
processInstanceQuery.variableValueEquals(VariablesEnum.businessName.toString(), flowInstanceQuery.getBusinessName());
processInstanceQuery.variableValueLike(VariablesEnum.businessName.toString(), flowInstanceQuery.getBusinessName());
}
List<ProcessInstance> processInstanceList = processInstanceQuery.includeProcessVariables()
.orderByStartTime().desc()
......@@ -97,10 +99,10 @@ public class FlowInstanceServiceImpl implements FlowInstanceService {
}
@Override
public void startProcessInstanceById(ProcessInstanceCreateRequest request) {
public FlowInstanceVo startProcessInstanceById(ProcessInstanceCreateRequest request) {
Assert.notNull(request.getSubmitter(), "请输入提交人");
Assert.notNull(request.getBusinessKey(), "请输入业务id");
Assert.notNull(request.getBusinessType(), "请输入业务类型");
Assert.notNull(request.getBusinessCode(), "请输入业务类型");
Assert.notNull(request.getProcessDefinitionId(), "请输入流程定义ID");
ProcessInstanceBuilder processInstanceBuilder = runtimeService.createProcessInstanceBuilder();
if(StrUtil.isNotBlank(request.getProcessDefinitionId())){
......@@ -114,10 +116,25 @@ public class FlowInstanceServiceImpl implements FlowInstanceService {
processInstanceBuilder.name(request.getBusinessName());
}
processInstanceBuilder.variables(request.getVariables());
Authentication.setAuthenticatedUserId(SecurityUtil.getUserId());
Authentication.setAuthenticatedUserId(request.getSubmitter());
ProcessInstance processInstance = processInstanceBuilder.start();
Authentication.setAuthenticatedUserId(null);
log.info("发起流程成功,流程ID:{}", processInstance.getId());
this.completeFirstTask(request.getSubmitter(), processInstance.getProcessInstanceId());
FlowInstanceVo flowInstanceVo = new FlowInstanceVo();
BeanUtil.copyProperties(processInstance, flowInstanceVo);
return flowInstanceVo;
}
private void completeFirstTask(String submitter, String processInstanceId){
Task task = taskService.createTaskQuery().taskAssignee(submitter).processInstanceId(processInstanceId).active().singleResult();
if (task != null) {
log.info("自动完成第一个任务,任务ID:{}", task.getId());
Comment comment = taskService.addComment(task.getId(), processInstanceId, "任务提交");
comment.setUserId(submitter);
taskService.saveComment(comment);
taskService.complete(task.getId());
}
}
@Override
......@@ -175,11 +192,11 @@ public class FlowInstanceServiceImpl implements FlowInstanceService {
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessKey())){
historicProcessInstanceQuery.processInstanceBusinessKey(flowInstanceQuery.getBusinessKey());
}
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessType())){
historicProcessInstanceQuery.variableValueEquals(VariablesEnum.businessType.toString(), flowInstanceQuery.getBusinessType());
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessCode())){
historicProcessInstanceQuery.variableValueEquals(VariablesEnum.businessCode.toString(), flowInstanceQuery.getBusinessCode());
}
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessName())){
historicProcessInstanceQuery.variableValueEquals(VariablesEnum.businessName.toString(), flowInstanceQuery.getBusinessName());
historicProcessInstanceQuery.variableValueLike(VariablesEnum.businessName.toString(), flowInstanceQuery.getBusinessName());
}
List<HistoricProcessInstance> historicProcessInstanceList = historicProcessInstanceQuery.includeProcessVariables()
.orderByProcessInstanceStartTime().desc()
......@@ -197,11 +214,11 @@ public class FlowInstanceServiceImpl implements FlowInstanceService {
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessKey())){
historicProcessInstanceQuery.processInstanceBusinessKey(flowInstanceQuery.getBusinessKey());
}
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessType())){
historicProcessInstanceQuery.variableValueEquals(VariablesEnum.businessType.toString(), flowInstanceQuery.getBusinessType());
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessCode())){
historicProcessInstanceQuery.variableValueEquals(VariablesEnum.businessCode.toString(), flowInstanceQuery.getBusinessCode());
}
if(StrUtil.isNotBlank(flowInstanceQuery.getBusinessName())){
historicProcessInstanceQuery.variableValueEquals(VariablesEnum.businessName.toString(), flowInstanceQuery.getBusinessName());
historicProcessInstanceQuery.variableValueLike(VariablesEnum.businessName.toString(), flowInstanceQuery.getBusinessName());
}
List<HistoricProcessInstance> historicProcessInstanceList = historicProcessInstanceQuery.includeProcessVariables()
.orderByProcessInstanceStartTime().desc()
......
......@@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.HistoryService;
import org.flowable.engine.TaskService;
import org.flowable.engine.task.Comment;
import org.flowable.task.api.DelegationState;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.flowable.task.api.history.HistoricTaskInstance;
......@@ -45,8 +46,8 @@ public class FlowTaskServiceImpl implements FlowTaskService {
if(StrUtil.isNotBlank(flowTaskQuery.getBusinessKey())){
taskQuery.processInstanceBusinessKey(flowTaskQuery.getBusinessKey());
}
if(StrUtil.isNotBlank(flowTaskQuery.getBusinessType())){
taskQuery.processVariableValueEquals(VariablesEnum.businessType.toString(), flowTaskQuery.getBusinessType());
if(StrUtil.isNotBlank(flowTaskQuery.getBusinessCode())){
taskQuery.processVariableValueEquals(VariablesEnum.businessCode.toString(), flowTaskQuery.getBusinessCode());
}
if(StrUtil.isNotBlank(flowTaskQuery.getBusinessName())){
taskQuery.processVariableValueLike(VariablesEnum.businessName.toString(), flowTaskQuery.getBusinessName());
......@@ -61,6 +62,8 @@ public class FlowTaskServiceImpl implements FlowTaskService {
BeanUtil.copyProperties(task, flowTaskVo, "variables");
//放入流程参数
flowTaskVo.setVariables(task.getProcessVariables());
//是否委派任务
flowTaskVo.setIsDelegation(DelegationState.PENDING.equals(task.getDelegationState()));
list.add(flowTaskVo);
});
long count = taskQuery.count();
......@@ -77,11 +80,11 @@ public class FlowTaskServiceImpl implements FlowTaskService {
if (StrUtil.isNotBlank(flowTaskQuery.getBusinessKey())) {
historicTaskInstanceQuery.processInstanceBusinessKey(flowTaskQuery.getBusinessKey());
}
if (StrUtil.isNotBlank(flowTaskQuery.getBusinessName())) {
historicTaskInstanceQuery.processVariableValueEquals(VariablesEnum.businessType.toString(), flowTaskQuery.getBusinessName());
if (StrUtil.isNotBlank(flowTaskQuery.getBusinessCode())) {
historicTaskInstanceQuery.processVariableValueEquals(VariablesEnum.businessCode.toString(), flowTaskQuery.getBusinessCode());
}
if (StrUtil.isNotBlank(flowTaskQuery.getBusinessType())) {
historicTaskInstanceQuery.processVariableValueLike(VariablesEnum.businessName.toString(), flowTaskQuery.getBusinessType());
if (StrUtil.isNotBlank(flowTaskQuery.getBusinessName())) {
historicTaskInstanceQuery.processVariableValueLike(VariablesEnum.businessName.toString(), flowTaskQuery.getBusinessName());
}
List<HistoricTaskInstance> historicTaskInstanceList = historicTaskInstanceQuery.finished()
.includeProcessVariables().orderByHistoricTaskInstanceEndTime().desc()
......
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