mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-29 22:56:40 +08:00
add 添加任务完成状态
This commit is contained in:
parent
cbbd81f2b9
commit
4554178f1b
@ -0,0 +1,89 @@
|
||||
package org.dromara.workflow.common.enums;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
* 任务状态枚举
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum TaskStatusEnum {
|
||||
/**
|
||||
* 撤销
|
||||
*/
|
||||
CANCEL("cancel", "撤销"),
|
||||
/**
|
||||
* 通过
|
||||
*/
|
||||
PASS("pass", "通过"),
|
||||
/**
|
||||
* 待审核
|
||||
*/
|
||||
WAITING("waiting", "待审核"),
|
||||
/**
|
||||
* 作废
|
||||
*/
|
||||
INVALID("invalid", "作废"),
|
||||
/**
|
||||
* 退回
|
||||
*/
|
||||
BACK("back", "退回"),
|
||||
/**
|
||||
* 终止
|
||||
*/
|
||||
TERMINATION("termination", "终止"),
|
||||
/**
|
||||
* 转办
|
||||
*/
|
||||
TRANSFER("transfer", "转办"),
|
||||
/**
|
||||
* 委托
|
||||
*/
|
||||
PENDING("pending", "委托"),
|
||||
/**
|
||||
* 抄送
|
||||
*/
|
||||
COPY("copy", "抄送"),
|
||||
/**
|
||||
* 加签
|
||||
*/
|
||||
SIGN("sign", "加签"),
|
||||
/**
|
||||
* 减签
|
||||
*/
|
||||
SIGN_OFF("sign_off", "减签");
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private final String status;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String desc;
|
||||
|
||||
/**
|
||||
* 任务业务状态
|
||||
*
|
||||
* @param status 状态
|
||||
*/
|
||||
public static String getEnumsByStatus(String status) {
|
||||
if (StringUtils.isBlank(status)) {
|
||||
return StrUtil.EMPTY;
|
||||
}
|
||||
|
||||
for (TaskStatusEnum statusEnum : TaskStatusEnum.values()) {
|
||||
if (statusEnum.getStatus().equals(status)) {
|
||||
return statusEnum.getDesc();
|
||||
}
|
||||
}
|
||||
return StrUtil.EMPTY;
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +50,10 @@ public class ActHistoryInfoVo implements Serializable {
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String statusName;
|
||||
/**
|
||||
* 办理人id
|
||||
*/
|
||||
|
@ -15,6 +15,7 @@ import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.tenant.helper.TenantHelper;
|
||||
import org.dromara.workflow.common.constant.FlowConstant;
|
||||
import org.dromara.workflow.common.enums.BusinessStatusEnum;
|
||||
import org.dromara.workflow.common.enums.TaskStatusEnum;
|
||||
import org.dromara.workflow.domain.bo.ProcessInstanceBo;
|
||||
import org.dromara.workflow.domain.bo.ProcessInvalidBo;
|
||||
import org.dromara.workflow.domain.vo.ActHistoryInfoVo;
|
||||
@ -239,17 +240,22 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
.processInstanceId(processInstanceId).taskTenantId(TenantHelper.getTenantId()).orderByHistoricTaskInstanceEndTime().desc().list();
|
||||
list = StreamUtils.sorted(list, Comparator.comparing(HistoricTaskInstance::getEndTime, Comparator.nullsFirst(Date::compareTo)).reversed());
|
||||
List<ActHistoryInfoVo> actHistoryInfoVoList = new ArrayList<>();
|
||||
List<Comment> processInstanceComments = taskService.getProcessInstanceComments(processInstanceId);
|
||||
for (HistoricTaskInstance historicTaskInstance : list) {
|
||||
ActHistoryInfoVo actHistoryInfoVo = new ActHistoryInfoVo();
|
||||
BeanUtils.copyProperties(historicTaskInstance, actHistoryInfoVo);
|
||||
actHistoryInfoVo.setStatus(actHistoryInfoVo.getEndTime() == null ? "待处理" : "已处理");
|
||||
List<Comment> taskComments = taskService.getTaskComments(historicTaskInstance.getId());
|
||||
if (CollUtil.isNotEmpty(taskComments)) {
|
||||
actHistoryInfoVo.setCommentId(taskComments.get(0).getId());
|
||||
String message = taskComments.stream().map(Comment::getFullMessage).collect(Collectors.joining("。"));
|
||||
if (StringUtils.isNotBlank(message)) {
|
||||
actHistoryInfoVo.setComment(message);
|
||||
if (actHistoryInfoVo.getEndTime() == null) {
|
||||
actHistoryInfoVo.setStatus(TaskStatusEnum.WAITING.getStatus());
|
||||
actHistoryInfoVo.setStatusName(TaskStatusEnum.WAITING.getDesc());
|
||||
}
|
||||
if (CollUtil.isNotEmpty(processInstanceComments)) {
|
||||
processInstanceComments.stream().filter(e -> e.getTaskId().equals(historicTaskInstance.getId())).findFirst().ifPresent(e -> {
|
||||
if (StringUtils.isNotBlank(e.getFullMessage())) {
|
||||
actHistoryInfoVo.setComment(e.getFullMessage());
|
||||
actHistoryInfoVo.setStatus(e.getType());
|
||||
actHistoryInfoVo.setStatusName(TaskStatusEnum.getEnumsByStatus(e.getType()));
|
||||
}
|
||||
});
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(historicTaskInstance.getDurationInMillis())) {
|
||||
actHistoryInfoVo.setRunDuration(getDuration(historicTaskInstance.getDurationInMillis()));
|
||||
|
@ -15,6 +15,7 @@ import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.tenant.helper.TenantHelper;
|
||||
import org.dromara.workflow.common.constant.FlowConstant;
|
||||
import org.dromara.workflow.common.enums.BusinessStatusEnum;
|
||||
import org.dromara.workflow.common.enums.TaskStatusEnum;
|
||||
import org.dromara.workflow.domain.bo.*;
|
||||
import org.dromara.workflow.domain.vo.MultiInstanceVo;
|
||||
import org.dromara.workflow.domain.vo.TaskVo;
|
||||
@ -139,7 +140,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
}
|
||||
runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.WAITING.getStatus());
|
||||
//办理意见
|
||||
taskService.addComment(completeTaskBo.getTaskId(), task.getProcessInstanceId(), StringUtils.isBlank(completeTaskBo.getMessage()) ? "同意" : completeTaskBo.getMessage());
|
||||
taskService.addComment(completeTaskBo.getTaskId(), task.getProcessInstanceId(), TaskStatusEnum.PASS.getStatus(), StringUtils.isBlank(completeTaskBo.getMessage()) ? "同意" : completeTaskBo.getMessage());
|
||||
//办理任务
|
||||
taskService.complete(completeTaskBo.getTaskId(), completeTaskBo.getVariables());
|
||||
List<Task> list = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).processInstanceId(task.getProcessInstanceId()).list();
|
||||
@ -348,7 +349,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
}
|
||||
try {
|
||||
TaskEntity newTask = WorkflowUtils.createNewTask(task);
|
||||
taskService.addComment(newTask.getId(), task.getProcessInstanceId(), "【" + LoginHelper.getUsername() + "】委派给【" + delegateBo.getNickName() + "】");
|
||||
taskService.addComment(newTask.getId(), task.getProcessInstanceId(), TaskStatusEnum.PENDING.getStatus(), "【" + LoginHelper.getUsername() + "】委派给【" + delegateBo.getNickName() + "】");
|
||||
//委托任务
|
||||
taskService.delegateTask(delegateBo.getTaskId(), delegateBo.getUserId());
|
||||
//办理生成的任务记录
|
||||
@ -388,7 +389,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
} else {
|
||||
terminationBo.setComment(LoginHelper.getUsername() + "终止了申请:" + terminationBo.getComment());
|
||||
}
|
||||
taskService.addComment(task.getId(), task.getProcessInstanceId(), terminationBo.getComment());
|
||||
taskService.addComment(task.getId(), task.getProcessInstanceId(), TaskStatusEnum.TERMINATION.getStatus(), terminationBo.getComment());
|
||||
List<Task> list = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId())
|
||||
.processInstanceId(task.getProcessInstanceId()).list();
|
||||
if (CollectionUtil.isNotEmpty(list)) {
|
||||
@ -422,7 +423,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
}
|
||||
try {
|
||||
TaskEntity newTask = WorkflowUtils.createNewTask(task);
|
||||
taskService.addComment(newTask.getId(), task.getProcessInstanceId(),
|
||||
taskService.addComment(newTask.getId(), task.getProcessInstanceId(), TaskStatusEnum.TRANSFER.getStatus(),
|
||||
StringUtils.isNotBlank(transmitBo.getComment()) ? transmitBo.getComment() : LoginHelper.getUsername() + "转办了任务");
|
||||
taskService.complete(newTask.getId());
|
||||
taskService.setAssignee(task.getId(), transmitBo.getUserId());
|
||||
@ -468,7 +469,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
List<String> assigneeNames = addMultiBo.getAssigneeNames();
|
||||
String username = LoginHelper.getUsername();
|
||||
TaskEntity newTask = WorkflowUtils.createNewTask(task);
|
||||
taskService.addComment(newTask.getId(), processInstanceId, username + "加签【" + String.join(StringUtils.SEPARATOR, assigneeNames) + "】");
|
||||
taskService.addComment(newTask.getId(), processInstanceId, TaskStatusEnum.SIGN.getStatus(), username + "加签【" + String.join(StringUtils.SEPARATOR, assigneeNames) + "】");
|
||||
taskService.complete(newTask.getId());
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
@ -514,7 +515,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
List<String> assigneeNames = deleteMultiBo.getAssigneeNames();
|
||||
String username = LoginHelper.getUsername();
|
||||
TaskEntity newTask = WorkflowUtils.createNewTask(task);
|
||||
taskService.addComment(newTask.getId(), processInstanceId, username + "减签【" + String.join(StringUtils.SEPARATOR, assigneeNames) + "】");
|
||||
taskService.addComment(newTask.getId(), processInstanceId, TaskStatusEnum.SIGN_OFF.getStatus(), username + "减签【" + String.join(StringUtils.SEPARATOR, assigneeNames) + "】");
|
||||
taskService.complete(newTask.getId());
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
@ -549,7 +550,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
//申请人节点
|
||||
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().finished().orderByHistoricTaskInstanceEndTime().asc().list().get(0);
|
||||
String backTaskDefinitionKey = historicTaskInstance.getTaskDefinitionKey();
|
||||
taskService.addComment(task.getId(), processInstanceId, StringUtils.isNotBlank(backProcessBo.getMessage()) ? backProcessBo.getMessage() : "退回");
|
||||
taskService.addComment(task.getId(), processInstanceId, TaskStatusEnum.BACK.getStatus(), StringUtils.isNotBlank(backProcessBo.getMessage()) ? backProcessBo.getMessage() : "退回");
|
||||
if (taskList.size() > 1) {
|
||||
//当前多个任务驳回到单个节点
|
||||
runtimeService.createChangeActivityStateBuilder().processInstanceId(processInstanceId)
|
||||
|
Loading…
Reference in New Issue
Block a user