add 增加流程启动,办理接口

This commit is contained in:
gssong 2025-01-11 14:39:04 +08:00
parent 57a46ea7b3
commit 54e4a8c023
10 changed files with 62 additions and 13 deletions

View File

@ -1,9 +1,8 @@
package org.dromara.workflow.domain.bo; package org.dromara.common.core.domain.bo;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.workflow.domain.vo.FlowCopy;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;

View File

@ -1,4 +1,4 @@
package org.dromara.workflow.domain.vo; package org.dromara.common.core.domain.bo;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package org.dromara.workflow.domain.bo; package org.dromara.common.core.domain.bo;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@ -1,5 +1,8 @@
package org.dromara.common.core.service; package org.dromara.common.core.service;
import org.dromara.common.core.domain.bo.CompleteTaskBo;
import org.dromara.common.core.domain.bo.StartProcessBo;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -22,6 +25,7 @@ public interface WorkflowService {
* 获取当前流程状态 * 获取当前流程状态
* *
* @param taskId 任务id * @param taskId 任务id
* @return 状态
*/ */
String getBusinessStatusByTaskId(Long taskId); String getBusinessStatusByTaskId(Long taskId);
@ -29,6 +33,7 @@ public interface WorkflowService {
* 获取当前流程状态 * 获取当前流程状态
* *
* @param businessId 业务id * @param businessId 业务id
* @return 状态
*/ */
String getBusinessStatus(String businessId); String getBusinessStatus(String businessId);
@ -54,4 +59,20 @@ public interface WorkflowService {
* @param tenantId 租户id * @param tenantId 租户id
*/ */
void syncDef(String tenantId); void syncDef(String tenantId);
/**
* 启动流程
*
* @param startProcessBo 参数
* @return 结果
*/
Map<String, Object> startWorkFlow(StartProcessBo startProcessBo);
/**
* 办理任务
*
* @param completeTaskBo 参数
* @return 结果
*/
boolean completeTask(CompleteTaskBo completeTaskBo);
} }

View File

@ -2,6 +2,8 @@ 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.bo.CompleteTaskBo;
import org.dromara.common.core.domain.bo.StartProcessBo;
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;
@ -11,7 +13,6 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController; import org.dromara.common.web.core.BaseController;
import org.dromara.warm.flow.core.entity.Node; import org.dromara.warm.flow.core.entity.Node;
import org.dromara.warm.flow.orm.entity.FlowHisTask;
import org.dromara.workflow.domain.bo.*; import org.dromara.workflow.domain.bo.*;
import org.dromara.workflow.domain.vo.FlowHisTaskVo; import org.dromara.workflow.domain.vo.FlowHisTaskVo;
import org.dromara.workflow.domain.vo.FlowTaskVo; import org.dromara.workflow.domain.vo.FlowTaskVo;

View File

@ -11,7 +11,7 @@ import java.io.Serializable;
* @author may * @author may
*/ */
@Data @Data
public class VariableVo implements Serializable { public class FlowVariableVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -1,5 +1,7 @@
package org.dromara.workflow.service; package org.dromara.workflow.service;
import org.dromara.common.core.domain.bo.CompleteTaskBo;
import org.dromara.common.core.domain.bo.StartProcessBo;
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;

View File

@ -40,7 +40,7 @@ import org.dromara.workflow.domain.bo.FlowInstanceBo;
import org.dromara.workflow.domain.bo.FlowInvalidBo; import org.dromara.workflow.domain.bo.FlowInvalidBo;
import org.dromara.workflow.domain.vo.FlowHisTaskVo; import org.dromara.workflow.domain.vo.FlowHisTaskVo;
import org.dromara.workflow.domain.vo.FlowInstanceVo; import org.dromara.workflow.domain.vo.FlowInstanceVo;
import org.dromara.workflow.domain.vo.VariableVo; import org.dromara.workflow.domain.vo.FlowVariableVo;
import org.dromara.workflow.handler.FlowProcessEventHandler; import org.dromara.workflow.handler.FlowProcessEventHandler;
import org.dromara.workflow.mapper.FlwCategoryMapper; import org.dromara.workflow.mapper.FlwCategoryMapper;
import org.dromara.workflow.mapper.FlwInstanceMapper; import org.dromara.workflow.mapper.FlwInstanceMapper;
@ -352,13 +352,13 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
FlowInstance flowInstance = flowInstanceMapper.selectById(instanceId); FlowInstance flowInstance = flowInstanceMapper.selectById(instanceId);
Map<String, Object> variableMap = flowInstance.getVariableMap(); Map<String, Object> variableMap = flowInstance.getVariableMap();
List<VariableVo> list = new ArrayList<>(); List<FlowVariableVo> list = new ArrayList<>();
if (CollUtil.isNotEmpty(variableMap)) { if (CollUtil.isNotEmpty(variableMap)) {
for (Map.Entry<String, Object> entry : variableMap.entrySet()) { for (Map.Entry<String, Object> entry : variableMap.entrySet()) {
VariableVo variableVo = new VariableVo(); FlowVariableVo flowVariableVo = new FlowVariableVo();
variableVo.setKey(entry.getKey()); flowVariableVo.setKey(entry.getKey());
variableVo.setValue(entry.getValue().toString()); flowVariableVo.setValue(entry.getValue().toString());
list.add(variableVo); list.add(flowVariableVo);
} }
} }
map.put("variableList", list); map.put("variableList", list);

View File

@ -11,6 +11,8 @@ 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.bo.CompleteTaskBo;
import org.dromara.common.core.domain.bo.StartProcessBo;
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;
@ -37,7 +39,7 @@ import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
import org.dromara.workflow.common.enums.TaskAssigneeType; import org.dromara.workflow.common.enums.TaskAssigneeType;
import org.dromara.workflow.common.enums.TaskStatusEnum; import org.dromara.workflow.common.enums.TaskStatusEnum;
import org.dromara.workflow.domain.bo.*; import org.dromara.workflow.domain.bo.*;
import org.dromara.workflow.domain.vo.FlowCopy; import org.dromara.common.core.domain.bo.FlowCopy;
import org.dromara.workflow.domain.vo.FlowHisTaskVo; import org.dromara.workflow.domain.vo.FlowHisTaskVo;
import org.dromara.workflow.domain.vo.FlowTaskVo; import org.dromara.workflow.domain.vo.FlowTaskVo;
import org.dromara.workflow.handler.FlowProcessEventHandler; import org.dromara.workflow.handler.FlowProcessEventHandler;

View File

@ -2,11 +2,14 @@ package org.dromara.workflow.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.bo.CompleteTaskBo;
import org.dromara.common.core.domain.bo.StartProcessBo;
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;
import org.dromara.workflow.service.IFlwDefinitionService; import org.dromara.workflow.service.IFlwDefinitionService;
import org.dromara.workflow.service.IFlwInstanceService; import org.dromara.workflow.service.IFlwInstanceService;
import org.dromara.workflow.service.IFlwTaskService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -23,6 +26,7 @@ public class WorkflowServiceImpl implements WorkflowService {
private final IFlwInstanceService flwInstanceService; private final IFlwInstanceService flwInstanceService;
private final IFlwDefinitionService flwDefinitionService; private final IFlwDefinitionService flwDefinitionService;
private final IFlwTaskService iFlwTaskService;
/** /**
* 删除流程实例 * 删除流程实例
@ -89,4 +93,24 @@ public class WorkflowServiceImpl implements WorkflowService {
public void syncDef(String tenantId) { public void syncDef(String tenantId) {
flwDefinitionService.syncDef(tenantId); flwDefinitionService.syncDef(tenantId);
} }
/**
* 启动流程
*
* @param startProcessBo 参数
*/
@Override
public Map<String, Object> startWorkFlow(StartProcessBo startProcessBo) {
return iFlwTaskService.startWorkFlow(startProcessBo);
}
/**
* 办理任务
*
* @param completeTaskBo 参数
*/
@Override
public boolean completeTask(CompleteTaskBo completeTaskBo) {
return iFlwTaskService.completeTask(completeTaskBo);
}
} }