update 优化 发起流程api返回值使用对象封装

This commit is contained in:
疯狂的狮子Li 2025-01-20 12:52:55 +08:00
parent 27b4992f6e
commit 37b2d648b1
6 changed files with 50 additions and 10 deletions

View File

@ -0,0 +1,30 @@
package org.dromara.common.core.domain.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 启动流程返回对象
*
* @author Lion Li
*/
@Data
public class StartProcessReturnDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 流程实例id
*/
private Long processInstanceId;
/**
* 任务id
*/
private Long taskId;
}

View File

@ -2,6 +2,7 @@ package org.dromara.common.core.service;
import org.dromara.common.core.domain.dto.CompleteTaskDTO; import org.dromara.common.core.domain.dto.CompleteTaskDTO;
import org.dromara.common.core.domain.dto.StartProcessDTO; import org.dromara.common.core.domain.dto.StartProcessDTO;
import org.dromara.common.core.domain.dto.StartProcessReturnDTO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -66,7 +67,7 @@ public interface WorkflowService {
* @param startProcess 参数 * @param startProcess 参数
* @return 结果 * @return 结果
*/ */
Map<String, Object> startWorkFlow(StartProcessDTO startProcess); StartProcessReturnDTO startWorkFlow(StartProcessDTO startProcess);
/** /**
* 办理任务 * 办理任务

View File

@ -2,6 +2,7 @@ package org.dromara.workflow.controller;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.dto.StartProcessReturnDTO;
import org.dromara.common.core.domain.dto.UserDTO; import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.idempotent.annotation.RepeatSubmit;
@ -20,7 +21,6 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 任务管理 控制层 * 任务管理 控制层
@ -44,9 +44,9 @@ public class FlwTaskController extends BaseController {
@Log(title = "任务管理", businessType = BusinessType.INSERT) @Log(title = "任务管理", businessType = BusinessType.INSERT)
@RepeatSubmit() @RepeatSubmit()
@PostMapping("/startWorkFlow") @PostMapping("/startWorkFlow")
public R<Map<String, Object>> startWorkFlow(@Validated(AddGroup.class) @RequestBody StartProcessBo startProcessBo) { public R<StartProcessReturnDTO> startWorkFlow(@Validated(AddGroup.class) @RequestBody StartProcessBo startProcessBo) {
Map<String, Object> map = flwTaskService.startWorkFlow(startProcessBo); StartProcessReturnDTO startProcessReturn = flwTaskService.startWorkFlow(startProcessBo);
return R.ok("提交成功", map); return R.ok("提交成功", startProcessReturn);
} }
/** /**

View File

@ -1,5 +1,6 @@
package org.dromara.workflow.service; package org.dromara.workflow.service;
import org.dromara.common.core.domain.dto.StartProcessReturnDTO;
import org.dromara.common.core.domain.dto.UserDTO; import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -26,7 +27,7 @@ public interface IFlwTaskService {
* @param startProcessBo 启动流程参数 * @param startProcessBo 启动流程参数
* @return 结果 * @return 结果
*/ */
Map<String, Object> startWorkFlow(StartProcessBo startProcessBo); StartProcessReturnDTO startWorkFlow(StartProcessBo startProcessBo);
/** /**
* 办理任务 * 办理任务

View File

@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.dto.StartProcessReturnDTO;
import org.dromara.common.core.domain.dto.UserDTO; import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
@ -86,7 +87,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Map<String, Object> startWorkFlow(StartProcessBo startProcessBo) { public StartProcessReturnDTO startWorkFlow(StartProcessBo startProcessBo) {
String businessId = startProcessBo.getBusinessId(); String businessId = startProcessBo.getBusinessId();
if (StringUtils.isBlank(businessId)) { if (StringUtils.isBlank(businessId)) {
throw new ServiceException("启动工作流时必须包含业务ID"); throw new ServiceException("启动工作流时必须包含业务ID");
@ -102,7 +103,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
if (ObjectUtil.isNotNull(flowInstance)) { if (ObjectUtil.isNotNull(flowInstance)) {
BusinessStatusEnum.checkStartStatus(flowInstance.getFlowStatus()); BusinessStatusEnum.checkStartStatus(flowInstance.getFlowStatus());
List<Task> taskList = taskService.list(new FlowTask().setInstanceId(flowInstance.getId())); List<Task> taskList = taskService.list(new FlowTask().setInstanceId(flowInstance.getId()));
return Map.of(PROCESS_INSTANCE_ID, taskList.get(0).getInstanceId(), TASK_ID, taskList.get(0).getId()); StartProcessReturnDTO dto = new StartProcessReturnDTO();
dto.setProcessInstanceId(taskList.get(0).getInstanceId());
dto.setTaskId(taskList.get(0).getId());
return dto;
} }
FlowParams flowParams = new FlowParams(); FlowParams flowParams = new FlowParams();
flowParams.flowCode(startProcessBo.getFlowCode()); flowParams.flowCode(startProcessBo.getFlowCode());
@ -119,7 +123,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
if (taskList.size() > 1) { if (taskList.size() > 1) {
throw new ServiceException("请检查流程第一个环节是否为申请人!"); throw new ServiceException("请检查流程第一个环节是否为申请人!");
} }
return Map.of(PROCESS_INSTANCE_ID, instance.getId(), TASK_ID, taskList.get(0).getId()); StartProcessReturnDTO dto = new StartProcessReturnDTO();
dto.setProcessInstanceId(instance.getId());
dto.setTaskId(taskList.get(0).getId());
return dto;
} }
/** /**

View File

@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.dto.CompleteTaskDTO; import org.dromara.common.core.domain.dto.CompleteTaskDTO;
import org.dromara.common.core.domain.dto.StartProcessDTO; import org.dromara.common.core.domain.dto.StartProcessDTO;
import org.dromara.common.core.domain.dto.StartProcessReturnDTO;
import org.dromara.common.core.service.WorkflowService; import org.dromara.common.core.service.WorkflowService;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.warm.flow.orm.entity.FlowInstance; import org.dromara.warm.flow.orm.entity.FlowInstance;
@ -105,7 +106,7 @@ public class WorkflowServiceImpl implements WorkflowService {
* @param startProcess 参数 * @param startProcess 参数
*/ */
@Override @Override
public Map<String, Object> startWorkFlow(StartProcessDTO startProcess) { public StartProcessReturnDTO startWorkFlow(StartProcessDTO startProcess) {
return flwTaskService.startWorkFlow(BeanUtil.toBean(startProcess, StartProcessBo.class)); return flwTaskService.startWorkFlow(BeanUtil.toBean(startProcess, StartProcessBo.class));
} }