update 调整任务,实例查询
This commit is contained in:
parent
b60e3fba27
commit
e3825e928f
@ -131,15 +131,7 @@ public class FlwTaskController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/getTaskById/{taskId}")
|
@GetMapping("/getTaskById/{taskId}")
|
||||||
public R<FlowTaskVo> getTaskById(@PathVariable Long taskId) {
|
public R<FlowTaskVo> getTaskById(@PathVariable Long taskId) {
|
||||||
Task task = taskService.getById(taskId);
|
return R.ok(flwTaskService.selectById(taskId));
|
||||||
if (ObjectUtil.isNotNull(task)) {
|
|
||||||
FlowTaskVo flowTaskVo = BeanUtil.toBean(task, FlowTaskVo.class);
|
|
||||||
Instance instance = insService.getById(task.getInstanceId());
|
|
||||||
flowTaskVo.setFlowStatus(instance.getFlowStatus());
|
|
||||||
flowTaskVo.setFlowStatusName(BusinessStatusEnum.findByStatus(instance.getFlowStatus()));
|
|
||||||
return R.ok(flowTaskVo);
|
|
||||||
}
|
|
||||||
return R.fail();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -116,6 +116,7 @@ public class FlowTaskVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 流程状态
|
* 流程状态
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "flowStatus",other = "wf_business_status")
|
||||||
private String flowStatusName;
|
private String flowStatusName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -42,7 +42,7 @@ public interface IFlwInstanceService {
|
|||||||
* @param businessId 业务id
|
* @param businessId 业务id
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
FlowInstance instanceByBusinessId(String businessId);
|
FlowInstance selectInstByBusinessId(String businessId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按照实例id查询流程实例
|
* 按照实例id查询流程实例
|
||||||
@ -50,7 +50,7 @@ public interface IFlwInstanceService {
|
|||||||
* @param instanceId 实例id
|
* @param instanceId 实例id
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
FlowInstance instanceById(Long instanceId);
|
FlowInstance selectInstById(Long instanceId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按照实例id查询流程实例
|
* 按照实例id查询流程实例
|
||||||
@ -58,7 +58,7 @@ public interface IFlwInstanceService {
|
|||||||
* @param instanceIds 实例id
|
* @param instanceIds 实例id
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
List<FlowInstance> instanceByIdList(List<Long> instanceIds);
|
List<FlowInstance> selectInstListByIdList(List<Long> instanceIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按照业务id删除流程实例
|
* 按照业务id删除流程实例
|
||||||
@ -124,4 +124,20 @@ public interface IFlwInstanceService {
|
|||||||
* @param variable 流程变量
|
* @param variable 流程变量
|
||||||
*/
|
*/
|
||||||
void setVariable(Long instanceId, Map<String, Object> variable);
|
void setVariable(Long instanceId, Map<String, Object> variable);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按任务id查询实例
|
||||||
|
*
|
||||||
|
* @param taskId 任务id
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
FlowInstance selectByTaskId(Long taskId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按任务id查询实例
|
||||||
|
*
|
||||||
|
* @param taskIdList 任务id
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
List<FlowInstance> selectByTaskIdList(List<Long> taskIdList);
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,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.warm.flow.core.entity.HisTask;
|
import org.dromara.warm.flow.core.entity.HisTask;
|
||||||
import org.dromara.warm.flow.orm.entity.FlowHisTask;
|
import org.dromara.warm.flow.orm.entity.FlowHisTask;
|
||||||
import org.dromara.warm.flow.orm.entity.FlowInstance;
|
|
||||||
import org.dromara.warm.flow.orm.entity.FlowTask;
|
import org.dromara.warm.flow.orm.entity.FlowTask;
|
||||||
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;
|
||||||
@ -129,7 +128,7 @@ public interface IFlwTaskService {
|
|||||||
* @param taskId 任务id
|
* @param taskId 任务id
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
FlowTask selectByIdList(Long taskId);
|
FlowTaskVo selectById(Long taskId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按照任务id查询任务
|
* 按照任务id查询任务
|
||||||
@ -171,20 +170,4 @@ public interface IFlwTaskService {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
boolean taskOperation(TaskOperationBo bo, String taskOperation);
|
boolean taskOperation(TaskOperationBo bo, String taskOperation);
|
||||||
|
|
||||||
/**
|
|
||||||
* 按任务id查询实例
|
|
||||||
*
|
|
||||||
* @param taskId 任务id
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
FlowInstance selectByTaskId(Long taskId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 按任务id查询实例
|
|
||||||
*
|
|
||||||
* @param taskIdList 任务id
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
List<FlowInstance> selectByTaskIdList(List<Long> taskIdList);
|
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
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;
|
||||||
import org.dromara.common.core.utils.DateUtils;
|
|
||||||
import org.dromara.common.core.utils.StreamUtils;
|
import org.dromara.common.core.utils.StreamUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
@ -24,7 +23,6 @@ import org.dromara.warm.flow.core.entity.Definition;
|
|||||||
import org.dromara.warm.flow.core.entity.Instance;
|
import org.dromara.warm.flow.core.entity.Instance;
|
||||||
import org.dromara.warm.flow.core.entity.Node;
|
import org.dromara.warm.flow.core.entity.Node;
|
||||||
import org.dromara.warm.flow.core.entity.Task;
|
import org.dromara.warm.flow.core.entity.Task;
|
||||||
import org.dromara.warm.flow.core.enums.CooperateType;
|
|
||||||
import org.dromara.warm.flow.core.enums.FlowStatus;
|
import org.dromara.warm.flow.core.enums.FlowStatus;
|
||||||
import org.dromara.warm.flow.core.enums.NodeType;
|
import org.dromara.warm.flow.core.enums.NodeType;
|
||||||
import org.dromara.warm.flow.core.enums.SkipType;
|
import org.dromara.warm.flow.core.enums.SkipType;
|
||||||
@ -33,10 +31,7 @@ import org.dromara.warm.flow.core.service.InsService;
|
|||||||
import org.dromara.warm.flow.core.service.NodeService;
|
import org.dromara.warm.flow.core.service.NodeService;
|
||||||
import org.dromara.warm.flow.core.service.TaskService;
|
import org.dromara.warm.flow.core.service.TaskService;
|
||||||
import org.dromara.warm.flow.core.utils.AssertUtil;
|
import org.dromara.warm.flow.core.utils.AssertUtil;
|
||||||
import org.dromara.warm.flow.orm.entity.FlowDefinition;
|
import org.dromara.warm.flow.orm.entity.*;
|
||||||
import org.dromara.warm.flow.orm.entity.FlowHisTask;
|
|
||||||
import org.dromara.warm.flow.orm.entity.FlowInstance;
|
|
||||||
import org.dromara.warm.flow.orm.entity.FlowNode;
|
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowDefinitionMapper;
|
import org.dromara.warm.flow.orm.mapper.FlowDefinitionMapper;
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
|
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
|
import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
|
||||||
@ -49,14 +44,12 @@ import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
|||||||
import org.dromara.workflow.domain.vo.VariableVo;
|
import org.dromara.workflow.domain.vo.VariableVo;
|
||||||
import org.dromara.workflow.mapper.FlwInstanceMapper;
|
import org.dromara.workflow.mapper.FlwInstanceMapper;
|
||||||
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 org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程实例 服务层实现
|
* 流程实例 服务层实现
|
||||||
@ -77,6 +70,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
private final TaskService taskService;
|
private final TaskService taskService;
|
||||||
private final FlowNodeMapper flowNodeMapper;
|
private final FlowNodeMapper flowNodeMapper;
|
||||||
private final NodeService nodeService;
|
private final NodeService nodeService;
|
||||||
|
private final IFlwTaskService flwTaskService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询正在运行的流程实例
|
* 分页查询正在运行的流程实例
|
||||||
@ -118,7 +112,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
* @param businessId 业务id
|
* @param businessId 业务id
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public FlowInstance instanceByBusinessId(String businessId) {
|
public FlowInstance selectInstByBusinessId(String businessId) {
|
||||||
return flowInstanceMapper.selectOne(new LambdaQueryWrapper<FlowInstance>().eq(FlowInstance::getBusinessId, businessId));
|
return flowInstanceMapper.selectOne(new LambdaQueryWrapper<FlowInstance>().eq(FlowInstance::getBusinessId, businessId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -128,7 +122,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
* @param instanceId 实例id
|
* @param instanceId 实例id
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public FlowInstance instanceById(Long instanceId) {
|
public FlowInstance selectInstById(Long instanceId) {
|
||||||
return flowInstanceMapper.selectById(instanceId);
|
return flowInstanceMapper.selectById(instanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,7 +132,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
* @param instanceIds 实例id
|
* @param instanceIds 实例id
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<FlowInstance> instanceByIdList(List<Long> instanceIds) {
|
public List<FlowInstance> selectInstListByIdList(List<Long> instanceIds) {
|
||||||
return flowInstanceMapper.selectByIds(instanceIds);
|
return flowInstanceMapper.selectByIds(instanceIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,7 +171,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean cancelProcessApply(FlowCancelBo bo) {
|
public boolean cancelProcessApply(FlowCancelBo bo) {
|
||||||
try {
|
try {
|
||||||
Instance instance = instanceByBusinessId(bo.getBusinessId());
|
Instance instance = selectInstByBusinessId(bo.getBusinessId());
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE);
|
throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE);
|
||||||
}
|
}
|
||||||
@ -254,7 +248,10 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getFlowImage(String businessId) {
|
public Map<String, Object> getFlowImage(String businessId) {
|
||||||
Map<String, Object> map = new HashMap<>(16);
|
Map<String, Object> map = new HashMap<>(16);
|
||||||
FlowInstance flowInstance = instanceByBusinessId(businessId);
|
FlowInstance flowInstance = selectInstByBusinessId(businessId);
|
||||||
|
if (flowInstance == null) {
|
||||||
|
throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE);
|
||||||
|
}
|
||||||
LambdaQueryWrapper<FlowHisTask> wrapper = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<FlowHisTask> wrapper = Wrappers.lambdaQuery();
|
||||||
wrapper.eq(FlowHisTask::getInstanceId, flowInstance.getId());
|
wrapper.eq(FlowHisTask::getInstanceId, flowInstance.getId());
|
||||||
wrapper.eq(FlowHisTask::getNodeType, NodeType.BETWEEN.getKey());
|
wrapper.eq(FlowHisTask::getNodeType, NodeType.BETWEEN.getKey());
|
||||||
@ -322,4 +319,48 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
taskService.mergeVariable(instance, variable);
|
taskService.mergeVariable(instance, variable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按任务id查询实例
|
||||||
|
*
|
||||||
|
* @param taskId 任务id
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public FlowInstance selectByTaskId(Long taskId) {
|
||||||
|
Task task = taskService.getById(taskId);
|
||||||
|
if (task == null) {
|
||||||
|
FlowHisTask flowHisTask = flwTaskService.selectHisTaskById(taskId);
|
||||||
|
if (flowHisTask != null) {
|
||||||
|
return selectInstById(flowHisTask.getInstanceId());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return selectInstById(task.getInstanceId());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按任务id查询实例
|
||||||
|
*
|
||||||
|
* @param taskIdList 任务id
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<FlowInstance> selectByTaskIdList(List<Long> taskIdList) {
|
||||||
|
if (CollUtil.isEmpty(taskIdList)) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
Set<Long> instanceIds = new HashSet<>();
|
||||||
|
List<FlowTask> flowTaskList = flwTaskService.selectByIdList(taskIdList);
|
||||||
|
for (FlowTask flowTask : flowTaskList) {
|
||||||
|
instanceIds.add(flowTask.getInstanceId());
|
||||||
|
}
|
||||||
|
List<FlowHisTask> flowHisTaskList = flwTaskService.selectHisTaskByIdList(taskIdList);
|
||||||
|
for (FlowHisTask flowHisTask : flowHisTaskList) {
|
||||||
|
instanceIds.add(flowHisTask.getInstanceId());
|
||||||
|
}
|
||||||
|
if (!instanceIds.isEmpty()) {
|
||||||
|
return selectInstListByIdList(new ArrayList<>(instanceIds));
|
||||||
|
}
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.workflow.service.impl;
|
package org.dromara.workflow.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@ -29,6 +30,7 @@ import org.dromara.warm.flow.core.enums.UserType;
|
|||||||
import org.dromara.warm.flow.core.service.*;
|
import org.dromara.warm.flow.core.service.*;
|
||||||
import org.dromara.warm.flow.orm.entity.*;
|
import org.dromara.warm.flow.orm.entity.*;
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
|
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
|
||||||
|
import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowSkipMapper;
|
import org.dromara.warm.flow.orm.mapper.FlowSkipMapper;
|
||||||
import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
|
import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
|
||||||
import org.dromara.workflow.common.enums.TaskAssigneeType;
|
import org.dromara.workflow.common.enums.TaskAssigneeType;
|
||||||
@ -41,7 +43,6 @@ import org.dromara.workflow.domain.vo.WfDefinitionConfigVo;
|
|||||||
import org.dromara.workflow.handler.FlowProcessEventHandler;
|
import org.dromara.workflow.handler.FlowProcessEventHandler;
|
||||||
import org.dromara.workflow.handler.WorkflowPermissionHandler;
|
import org.dromara.workflow.handler.WorkflowPermissionHandler;
|
||||||
import org.dromara.workflow.mapper.FlwTaskMapper;
|
import org.dromara.workflow.mapper.FlwTaskMapper;
|
||||||
import org.dromara.workflow.service.IFlwInstanceService;
|
|
||||||
import org.dromara.workflow.service.IFlwTaskService;
|
import org.dromara.workflow.service.IFlwTaskService;
|
||||||
import org.dromara.workflow.service.IWfDefinitionConfigService;
|
import org.dromara.workflow.service.IWfDefinitionConfigService;
|
||||||
import org.dromara.workflow.utils.WorkflowUtils;
|
import org.dromara.workflow.utils.WorkflowUtils;
|
||||||
@ -65,10 +66,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
|||||||
|
|
||||||
private final TaskService taskService;
|
private final TaskService taskService;
|
||||||
private final InsService insService;
|
private final InsService insService;
|
||||||
|
private final FlowInstanceMapper flowInstanceMapper;
|
||||||
private final FlwTaskMapper flwTaskMapper;
|
private final FlwTaskMapper flwTaskMapper;
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
private final IWfDefinitionConfigService wfDefinitionConfigService;
|
private final IWfDefinitionConfigService wfDefinitionConfigService;
|
||||||
private final IFlwInstanceService iFlwInstanceService;
|
|
||||||
private final FlowTaskMapper flowTaskMapper;
|
private final FlowTaskMapper flowTaskMapper;
|
||||||
private final FlowHisTaskMapper flowHisTaskMapper;
|
private final FlowHisTaskMapper flowHisTaskMapper;
|
||||||
private final FlowSkipMapper flowSkipMapper;
|
private final FlowSkipMapper flowSkipMapper;
|
||||||
@ -105,7 +106,8 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
|||||||
log.error("流程定义ID【{}】不存在!", definitionId);
|
log.error("流程定义ID【{}】不存在!", definitionId);
|
||||||
throw new ServiceException("请到流程定义ID【" + definitionId + "】不存在!");
|
throw new ServiceException("请到流程定义ID【" + definitionId + "】不存在!");
|
||||||
}
|
}
|
||||||
FlowInstance flowInstance = iFlwInstanceService.instanceByBusinessId(businessKey);
|
FlowInstance flowInstance = flowInstanceMapper.selectOne(new LambdaQueryWrapper<>(FlowInstance.class)
|
||||||
|
.eq(FlowInstance::getBusinessId, businessKey));
|
||||||
if (flowInstance != null) {
|
if (flowInstance != null) {
|
||||||
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());
|
return Map.of(PROCESS_INSTANCE_ID, taskList.get(0).getInstanceId(), TASK_ID, taskList.get(0).getId());
|
||||||
@ -163,8 +165,6 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
|||||||
flowParams.flowStatus(BusinessStatusEnum.WAITING.getStatus()).hisStatus(TaskStatusEnum.PASS.getStatus());
|
flowParams.flowStatus(BusinessStatusEnum.WAITING.getStatus()).hisStatus(TaskStatusEnum.PASS.getStatus());
|
||||||
// 执行任务跳转,并根据返回的处理人设置下一步处理人
|
// 执行任务跳转,并根据返回的处理人设置下一步处理人
|
||||||
setHandler(taskService.skip(taskId, flowParams), flowTask, wfCopyList);
|
setHandler(taskService.skip(taskId, flowParams), flowTask, wfCopyList);
|
||||||
// 更新实例状态为待审核状态
|
|
||||||
iFlwInstanceService.updateStatus(ins.getId(), BusinessStatusEnum.WAITING.getStatus());
|
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
@ -464,9 +464,15 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
|||||||
* @param taskId 任务id
|
* @param taskId 任务id
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public FlowTask selectByIdList(Long taskId) {
|
public FlowTaskVo selectById(Long taskId) {
|
||||||
return flowTaskMapper.selectOne(new LambdaQueryWrapper<>(FlowTask.class)
|
Task task = taskService.getById(taskId);
|
||||||
.eq(FlowTask::getId, taskId));
|
if (task == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
FlowTaskVo flowTaskVo = BeanUtil.toBean(task, FlowTaskVo.class);
|
||||||
|
Instance instance = insService.getById(task.getInstanceId());
|
||||||
|
flowTaskVo.setFlowStatus(instance.getFlowStatus());
|
||||||
|
return flowTaskVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -609,46 +615,4 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 按任务id查询实例
|
|
||||||
*
|
|
||||||
* @param taskId 任务id
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public FlowInstance selectByTaskId(Long taskId) {
|
|
||||||
FlowTask flowTask = selectByIdList(taskId);
|
|
||||||
if (flowTask == null) {
|
|
||||||
FlowHisTask flowHisTask = selectHisTaskById(taskId);
|
|
||||||
if (flowHisTask != null) {
|
|
||||||
return iFlwInstanceService.instanceById(flowHisTask.getInstanceId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 按任务id查询实例
|
|
||||||
*
|
|
||||||
* @param taskIdList 任务id
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<FlowInstance> selectByTaskIdList(List<Long> taskIdList) {
|
|
||||||
if (CollUtil.isEmpty(taskIdList)) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
Set<Long> instanceIds = new HashSet<>();
|
|
||||||
List<FlowTask> flowTaskList = selectByIdList(taskIdList);
|
|
||||||
for (FlowTask flowTask : flowTaskList) {
|
|
||||||
instanceIds.add(flowTask.getInstanceId());
|
|
||||||
}
|
|
||||||
List<FlowHisTask> flowHisTaskList = selectHisTaskByIdList(taskIdList);
|
|
||||||
for (FlowHisTask flowHisTask : flowHisTaskList) {
|
|
||||||
instanceIds.add(flowHisTask.getInstanceId());
|
|
||||||
}
|
|
||||||
if (!instanceIds.isEmpty()) {
|
|
||||||
return iFlwInstanceService.instanceByIdList(new ArrayList<>(instanceIds));
|
|
||||||
}
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import lombok.RequiredArgsConstructor;
|
|||||||
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.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;
|
||||||
@ -21,7 +20,6 @@ import java.util.Map;
|
|||||||
public class WorkflowServiceImpl implements WorkflowService {
|
public class WorkflowServiceImpl implements WorkflowService {
|
||||||
|
|
||||||
private final IFlwInstanceService flwInstanceService;
|
private final IFlwInstanceService flwInstanceService;
|
||||||
private final IFlwTaskService flwTaskService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除流程实例
|
* 删除流程实例
|
||||||
@ -41,7 +39,7 @@ public class WorkflowServiceImpl implements WorkflowService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getBusinessStatusByTaskId(Long taskId) {
|
public String getBusinessStatusByTaskId(Long taskId) {
|
||||||
return ObjectUtil.isNotNull(flwTaskService.selectByTaskId(taskId)) ? flwTaskService.selectByTaskId(taskId).getFlowStatus() : StringUtils.EMPTY;
|
return ObjectUtil.isNotNull(flwInstanceService.selectByTaskId(taskId)) ? flwInstanceService.selectByTaskId(taskId).getFlowStatus() : StringUtils.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,7 +49,7 @@ public class WorkflowServiceImpl implements WorkflowService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getBusinessStatus(String businessKey) {
|
public String getBusinessStatus(String businessKey) {
|
||||||
return ObjectUtil.isNotNull(flwInstanceService.instanceByBusinessId(businessKey)) ? flwInstanceService.instanceByBusinessId(businessKey).getFlowStatus() : StringUtils.EMPTY;
|
return ObjectUtil.isNotNull(flwInstanceService.selectInstByBusinessId(businessKey)) ? flwInstanceService.selectInstByBusinessId(businessKey).getFlowStatus() : StringUtils.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -73,6 +71,6 @@ public class WorkflowServiceImpl implements WorkflowService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Long getInstanceIdByBusinessKey(String businessKey) {
|
public Long getInstanceIdByBusinessKey(String businessKey) {
|
||||||
return ObjectUtil.isNotNull(flwInstanceService.instanceByBusinessId(businessKey)) ? flwInstanceService.instanceByBusinessId(businessKey).getId() : null;
|
return ObjectUtil.isNotNull(flwInstanceService.selectInstByBusinessId(businessKey)) ? flwInstanceService.selectInstByBusinessId(businessKey).getId() : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user