add 添加转办任务

This commit is contained in:
gssong 2023-06-11 17:04:26 +08:00
parent f494d0f3f0
commit 91c10d31a4
4 changed files with 84 additions and 0 deletions

View File

@ -136,4 +136,15 @@ public class ActTaskController extends BaseController {
return toAjax(iActTaskService.terminationTask(terminationBo)); return toAjax(iActTaskService.terminationTask(terminationBo));
} }
/**
* 转办任务
*
* @param transmitBo 参数
*/
@Log(title = "任务管理", businessType = BusinessType.INSERT)
@PostMapping("/transferTask")
public R<Void> transferTask(@Validated({AddGroup.class}) @RequestBody TransmitBo transmitBo) {
return toAjax(iActTaskService.transferTask(transmitBo));
}
} }

View File

@ -0,0 +1,37 @@
package org.dromara.workflow.domain.bo;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.dromara.common.core.validate.AddGroup;
import java.io.Serial;
import java.io.Serializable;
/**
* 终转办务请求对象
*
* @author may
*/
@Data
public class TransmitBo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 任务id
*/
@NotBlank(message = "任务id为空", groups = AddGroup.class)
private String taskId;
/**
* 转办人id
*/
@NotBlank(message = "转办人不能为空", groups = AddGroup.class)
private String userId;
/**
* 审批意见
*/
private String comment;
}

View File

@ -60,4 +60,12 @@ public interface IActTaskService {
* @return 结果 * @return 结果
*/ */
boolean terminationTask(TerminationBo terminationBo); boolean terminationTask(TerminationBo terminationBo);
/**
* 转办任务
*
* @param transmitBo 参数
* @return 结果
*/
boolean transferTask(TransmitBo transmitBo);
} }

View File

@ -243,4 +243,32 @@ public class ActTaskServiceImpl implements IActTaskService {
throw new ServiceException(e.getMessage()); throw new ServiceException(e.getMessage());
} }
} }
/**
* 转办任务
*
* @param transmitBo 参数
*/
@Override
public boolean transferTask(TransmitBo transmitBo) {
Task task = taskService.createTaskQuery().taskId(transmitBo.getTaskId()).taskTenantId(TenantHelper.getTenantId())
.taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult();
if (ObjectUtil.isEmpty(task)) {
throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL);
}
if (task.isSuspended()) {
throw new ServiceException(FlowConstant.MESSAGE_SUSPENDED);
}
try {
TaskEntity newTask = WorkflowUtils.createNewTask(task);
taskService.addComment(newTask.getId(), task.getProcessInstanceId(),
StringUtils.isNotBlank(transmitBo.getComment()) ? transmitBo.getComment() : LoginHelper.getUsername() + "转办了任务");
taskService.complete(newTask.getId());
taskService.setAssignee(task.getId(), transmitBo.getUserId());
return true;
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException(e.getMessage());
}
}
} }