|
@@ -33,6 +33,7 @@ import org.dromara.warm.flow.core.service.*;
|
|
|
import org.dromara.warm.flow.orm.entity.*;
|
|
|
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
|
|
|
import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
|
|
|
+import org.dromara.warm.flow.orm.mapper.FlowNodeMapper;
|
|
|
import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
|
|
|
import org.dromara.workflow.common.ConditionalOnEnable;
|
|
|
import org.dromara.workflow.common.enums.TaskAssigneeType;
|
|
@@ -79,6 +80,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|
|
private final UserService userService;
|
|
|
private final FlwTaskMapper flwTaskMapper;
|
|
|
private final FlwCategoryMapper flwCategoryMapper;
|
|
|
+ private final FlowNodeMapper flowNodeMapper;
|
|
|
|
|
|
/**
|
|
|
* 启动任务
|
|
@@ -488,11 +490,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|
|
flowTaskVo.setFlowName(definition.getFlowName());
|
|
|
flowTaskVo.setBusinessId(instance.getBusinessId());
|
|
|
//设置按钮权限
|
|
|
- List<Node> nodeList = nodeService.getByNodeCodes(Collections.singletonList(flowTaskVo.getNodeCode()), instance.getDefinitionId());
|
|
|
- if (CollUtil.isNotEmpty(nodeList)) {
|
|
|
- Node node = nodeList.get(0);
|
|
|
- flowTaskVo.setButtonList(flowTaskVo.getButtonList(node.getExt()));
|
|
|
- flowTaskVo.setNodeRatio(node.getNodeRatio());
|
|
|
+ FlowNode flowNode = getByNodeCode(flowTaskVo.getNodeCode(), instance.getDefinitionId());
|
|
|
+ if (ObjectUtil.isNotNull(flowNode)) {
|
|
|
+ flowTaskVo.setButtonList(flowTaskVo.getButtonList(flowNode.getExt()));
|
|
|
+ flowTaskVo.setNodeRatio(flowNode.getNodeRatio());
|
|
|
}
|
|
|
return flowTaskVo;
|
|
|
}
|
|
@@ -686,4 +687,17 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|
|
}
|
|
|
return userService.selectListByIds(StreamUtils.toList(userList, e -> Long.valueOf(e.getProcessedBy())));
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 按照节点编码查询节点
|
|
|
+ *
|
|
|
+ * @param nodeCode 节点编码
|
|
|
+ * @param definitionId 流程定义id
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public FlowNode getByNodeCode(String nodeCode, Long definitionId) {
|
|
|
+ return flowNodeMapper.selectOne(new LambdaQueryWrapper<FlowNode>()
|
|
|
+ .eq(FlowNode::getNodeCode, nodeCode)
|
|
|
+ .eq(FlowNode::getDefinitionId, definitionId));
|
|
|
+ }
|
|
|
}
|