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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。