예제 #1
0
        public AjaxResult AddNodeInfo(string NoeInfo)
        {
            JObject NodeObj        = (JObject)JsonConvert.DeserializeObject(NoeInfo);
            string  FlowCode       = Convert.ToString(NodeObj["FlowCode"]);
            int     FlowNodeCode   = Convert.ToInt32(NodeObj["ID"]);
            string  NodeName       = Convert.ToString(NodeObj["Name"]);
            int     ActiveId       = Convert.ToInt32(NodeObj["CurrentNode"]);
            int     AllApproval    = Convert.ToInt32(NodeObj["AllApproval"]);
            int     FreeCandidates = Convert.ToInt32(NodeObj["FreeCandidates"]);
            int     BlankNode      = Convert.ToInt32(NodeObj["BlankNode"]);
            string  NodeLeft       = Convert.ToString(NodeObj["NodeLeft"]);
            string  NodeTop        = Convert.ToString(NodeObj["NodeTop"]);
            string  FlowNodeEvent  = Convert.ToString(NodeObj["FlowNodeEvent"]);
            JArray  array          = (JArray)NodeObj["SPLIST"];
            int     result         = 0;
            DbTrans trans          = null;

            try
            {
                using (trans = Db.Context.BeginTransaction())
                {
                    #region 添加节点

                    List <TbFlowNode> list = dao.GetAllByFlowCode(FlowCode);
                    for (int i = 0; i < list.Count; i++)
                    {
                        int count = list.Where(f => f.FlowNodeCode == Convert.ToString(FlowNodeCode)).Count();
                        if (count > 0)
                        {
                            FlowNodeCode = FlowNodeCode + 10;
                        }
                        else
                        {
                            break;
                        }
                    }
                    //添加节点
                    result = dao.AddNode(FlowCode, NodeName, ActiveId, FlowNodeCode, AllApproval, FreeCandidates, BlankNode, NodeLeft, NodeTop, FlowNodeEvent);
                    if (result > 0 && array.Count > 0 && Convert.ToString(array[0]) != "[]")
                    {
                        result = 0;
                        List <TbFlowNodePersonnel> plist = new List <TbFlowNodePersonnel>();
                        for (int i = 0; i < array.Count; i++)
                        {
                            TbFlowNodePersonnel model = new TbFlowNodePersonnel();
                            model.FlowCode     = FlowCode;
                            model.FlowNodeCode = FlowNodeCode.ToString();
                            int ActionType = 0;
                            switch (Convert.ToString(array[i]["ActionType"]))
                            {
                            case "审批":
                                ActionType = 0;
                                break;

                            case "抄送":
                                ActionType = -1;
                                break;
                            }
                            model.ActionType = ActionType;
                            string source = string.Empty;
                            switch (Convert.ToString(array[i]["TypeName"]))
                            {
                            case "部门":
                                source = "Department";
                                break;

                            case "角色":
                                source = "Role";
                                break;

                            case "人员":
                                source = "Personnel";
                                break;
                            }
                            model.PersonnelSource = source;
                            model.PersonnelCode   = Convert.ToString(array[i]["UserTypeId"]);
                            model.DeptId          = Convert.ToString(array[i]["DeptId"]);
                            model.RoleId          = Convert.ToString(array[i]["RoleId"]);
                            model.ProjectId       = Convert.ToString(array[i]["ProjectId"]);
                            model.OrgId           = Convert.ToString(array[i]["OrgId"]);
                            model.OrgType         = Convert.ToString(array[i]["OrgType"]);
                            plist.Add(model);
                        }
                        //添加节点人员
                        result = Repository <TbFlowNodePersonnel> .Insert(plist);
                    }

                    #endregion
                    if (result > 0)
                    {
                        return(AjaxResult.Success());
                    }
                    else
                    {
                        return(AjaxResult.Error());
                    }
                }
            }
            catch (Exception ex)
            {
                return(AjaxResult.Error(ex.ToString()));
            }
        }
예제 #2
0
        public AjaxResult UpdateNode(string NodeInfo)
        {
            JObject NodeObj                  = (JObject)JsonConvert.DeserializeObject(NodeInfo);
            string  FlowCode                 = Convert.ToString(NodeObj["FlowCode"]);
            int     FlowNodeCode             = Convert.ToInt32(NodeObj["ID"]);
            string  NodeName                 = Convert.ToString(NodeObj["Name"]);
            int     ActiveId                 = Convert.ToInt32(NodeObj["CurrentNode"]);
            int     AllApproval              = Convert.ToInt32(NodeObj["AllApproval"]);
            int     FreeCandidates           = Convert.ToInt32(NodeObj["FreeCandidates"]);
            int     BlankNode                = Convert.ToInt32(NodeObj["BlankNode"]);
            string  NodeLeft                 = Convert.ToString(NodeObj["NodeLeft"]);
            string  NodeTop                  = Convert.ToString(NodeObj["NodeTop"]);
            string  FlowNodeEvent            = Convert.ToString(NodeObj["FlowNodeEvent"]);
            JArray  array                    = (JArray)NodeObj["SPLIST"];
            int     result                   = 0;
            List <TbFlowNodePersonnel> plist = new List <TbFlowNodePersonnel>();

            try
            {
                if (array.Count > 0)
                {
                    for (int i = 0; i < array.Count; i++)
                    {
                        TbFlowNodePersonnel model = new TbFlowNodePersonnel();
                        model.FlowCode     = FlowCode;
                        model.FlowNodeCode = FlowNodeCode.ToString();
                        int ActionType = 0;
                        switch (Convert.ToString(array[i]["ActionType"]))
                        {
                        case "审批":
                            ActionType = 0;
                            break;

                        case "抄送":
                            ActionType = -1;
                            break;
                        }
                        model.ActionType = ActionType;
                        string source = string.Empty;
                        switch (Convert.ToString(array[i]["TypeName"]))
                        {
                        case "部门":
                            source = "Department";
                            break;

                        case "角色":
                            source = "Role";
                            break;

                        case "人员":
                            source = "Personnel";
                            break;
                        }
                        model.PersonnelSource = source;
                        model.PersonnelCode   = Convert.ToString(array[i]["UserTypeId"]);
                        model.DeptId          = Convert.ToString(array[i]["DeptId"]);
                        model.RoleId          = Convert.ToString(array[i]["RoleId"]);
                        model.ProjectId       = Convert.ToString(array[i]["ProjectId"]);
                        model.OrgId           = Convert.ToString(array[i]["OrgId"]);
                        model.OrgType         = Convert.ToString(array[i]["OrgType"]);
                        plist.Add(model);
                    }
                }
                result = dao.UpdateNode(FlowCode, NodeName, FlowNodeCode, AllApproval, FreeCandidates, BlankNode, FlowNodeEvent, plist);
                if (result > 0)
                {
                    return(AjaxResult.Success());
                }
                else
                {
                    return(AjaxResult.Error());
                }
            }
            catch (Exception ex)
            {
                return(AjaxResult.Error(ex.ToString()));
            }
        }