Cat.WorkFlow/WorkFlowContext.cs
(开头部分) 14KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Cat.Entity.OrganizationManage;
using Cat.Service.OrganizationManage;
using Cat.Service.WorkFLowManage;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
namespace Cat.WorkFlow
{
/// <summary>
/// 流程详细信息
/// </summary>
public class WorkFlowContext
{
WfWorkFLowService workFLowService = new WfWorkFLowService();
public WorkFlow WorkFlow { get; set; }
public WorkFlowContext(WorkFlow workFlow)
{
this.WorkFlow = workFlow;
//反序列化流程信息
dynamic jsonobj = JsonConvert.DeserializeObject(workFlow.FlowJSON);
this.WorkFlow.Nodes = GetNodes(jsonobj.nodes);
this.WorkFlow.Lines = this.GetLines(jsonobj.lines);
this.WorkFlow.CurrentNodeId = workFlow.CurrentNodeId == 0 ? this.WorkFlow.StartNodeId : workFlow.CurrentNodeId;
this.WorkFlow.CurrentNode = this.WorkFlow.Nodes[this.WorkFlow.CurrentNodeId];
this.WorkFlow.CurrentNodeType = this.WorkFlow.CurrentNode.NodeType();
if (this.WorkFlow.CurrentNode.NodeType() == WorkFlowInstanceNodeType.EndRound) //当前节点是结束节点,则没有下一节点
{
this.WorkFlow.NextNodeId = 0;//未找到节点
this.WorkFlow.NextNodeType = WorkFlowInstanceNodeType.NotRun;
}
else
{
//获取当前节点的所有下一个节点,忽略通知节点
var nextNodes =GetNextNodes(this.WorkFlow.CurrentNodeId, WorkFlowInstanceNodeType.ViewNode, true).Result;
if (nextNodes.Count == 1)
{
this.WorkFlow.NextNodeId = nextNodes[0].Id;
this.WorkFlow.NextNode = nextNodes[0];
this.WorkFlow.NextNodeType = nextNodes[0].NodeType();
}
else
{
throw new Exception("没有找到Next节点或者找到多个Next节点");
}
}
//通知节点全部放一起
}
/// <summary>
/// 获取所有节点
/// </summary>
/// <param name="nodesObj"></param>
/// <returns></returns>
后面还有 282 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。