Exemple #1
0
        /// <summary>
        /// 获取单个详细工作流根据流程详细编号
        /// </summary>
        /// <param name="WFID">工作流详细编号</param>
        /// <returns></returns>
        public wf_workflowdetails GetSingle(string WFDID)
        {
            Entities           db    = new Entities();
            wf_workflowdetails model = db.wf_workflowdetails.SingleOrDefault(a => a.wfdid == WFDID);

            return(model);
        }
Exemple #2
0
        /// <summary>
        /// 活动流程
        /// </summary>
        /// <param name="WFID">流程ID</param>
        /// <param name="WFSID">实例编号</param>
        /// <returns></returns>
        public WorkFlowClass ProcessIndex(string WFID, string WFDID, string WFSID, string WFSAID)
        {
            WorkFlowClass workflow = new WorkFlowClass();

            if (!string.IsNullOrEmpty(WFID))
            {
                wf_workflows wfModel = new WF_WorkFlowsDAL().GetSingle(WFID);
                if (wfModel != null)
                {
                    workflow.currentActivityName = wfModel.wfname;
                    //跳转的方法
                    workflow.FunctionName    = wfModel.tablename;
                    workflow.WFID            = WFID;
                    workflow.WFDID           = WFDID;
                    workflow.WFSID           = WFSID;
                    workflow.WFSAID          = WFSAID;
                    workflow.GetTableColumns = new WF_WorkFlowsDAL().GetTableColumns(wfModel.tablename);
                }
                else
                {
                    workflow.WorkFlowState = 1;//表示该流程不存在
                }


                IList <wf_workflowdetails> wfdList = new WF_WorkFlowDetailDAL()
                                                     .GetList().Where(a => a.wfid == WFID).ToList();//获取当前流程所有环节
                if (wfdList == null && wfdList.Count() <= 0)
                {
                    workflow.WorkFlowState = 2;
                    return(workflow);
                }
                ////获取主要内容
                //if (!string.IsNullOrEmpty(WFSID))
                //{
                //    workflow.contentPath = new WF_WorkFlowSpecificDAL().GetContentPath(WFSID);
                //}

                #region 获取下一步流程

                //下一步流程编号集合 格式为:【,流程编号,流程编号,流程编号,】
                string             nextWFDIDS = string.Empty;
                wf_workflowdetails wfdModel   = new WF_WorkFlowDetailDAL().GetSingle(WFDID);
                if (wfdModel != null)
                {
                    nextWFDIDS = wfdModel.nextid;
                }
                else
                {
                    workflow.WorkFlowState = 2;
                    return(workflow);
                }

                if (!string.IsNullOrEmpty(nextWFDIDS))
                {
                    #region  一步的所有流程
                    //下一步流程 格式为:【;流程编号,流程名称,是否有下一个流程;流程编号,流程名称,是否有下一个流程;流程编号,流程名称,是否有下一个流程;】
                    string nextWFDIDNames = "";

                    string[] nextWFDIDS_split = nextWFDIDS.Split(',');
                    foreach (string NEXTID in nextWFDIDS_split)
                    {
                        if (!string.IsNullOrEmpty(NEXTID))
                        {
                            string             temp     = "";
                            string             WFDNAME  = string.Empty;
                            wf_workflowdetails wfdMpdel = wfdList.FirstOrDefault(a => a.wfdid == NEXTID);
                            if (wfdMpdel == null || string.IsNullOrEmpty(wfdMpdel.wfdname))
                            {
                                workflow.WorkFlowState = 2;
                                return(workflow);
                            }
                            else
                            {
                                WFDNAME = wfdMpdel.wfdname;
                            }
                            //int isNextW = 0;//是否还有下步流程,如果没有则表示结束
                            //if (string.IsNullOrEmpty(wfdMpdel.nextid))
                            //    isNextW = 1;

                            temp += NEXTID;

                            if (!string.IsNullOrEmpty(nextWFDIDNames))
                            {
                                nextWFDIDNames += temp + ";";
                            }
                            else
                            {
                                nextWFDIDNames += ";" + temp + ";";
                            }
                        }
                    }

                    workflow.nextWFDIDNames = nextWFDIDNames;//下一步流程
                    #endregion

                    #region 查找下一步默认的用户 如果默认下一个步骤只有一步,并且明确制定用户,则直接将对应的用户加载出来
                    string UserIDs   = string.Empty;
                    string UserNames = string.Empty;
                    string NextWFDID = string.Empty;

                    if (!string.IsNullOrEmpty(wfdModel.nextiddefaultuser))
                    {
                        string[] nextDefaultUser = wfdModel.nextiddefaultuser.Split(',');
                        for (int i = 0; i < nextDefaultUser.Length; i++)
                        {
                            if (!string.IsNullOrEmpty(nextDefaultUser[i]))
                            {
                                UserNames += ",";
                                if (nextDefaultUser[i] == "0")
                                {
                                    UserNames += "暂无,";
                                }
                                else
                                {
                                    UserNames += UserDAL.GetUserNameByUserID(Convert.ToDecimal(nextDefaultUser[i])) + ",";
                                }
                            }
                        }

                        workflow.NextWFUSERIDS = wfdModel.nextiddefaultuser;
                        workflow.NextUserNames = UserNames;
                        workflow.NextWFDID     = wfdModel.nextiddefault;
                    }
                    if (!string.IsNullOrEmpty(wfdModel.nextiddefaultdept))
                    {
                        string[] nextDefaultDept = wfdModel.nextiddefaultdept.Split(',');
                        for (int i = 0; i < nextDefaultDept.Length; i++)
                        {
                            if (!string.IsNullOrEmpty(nextDefaultDept[i]))
                            {
                                UserNames += ",";
                                if (nextDefaultDept[i] == "0")
                                {
                                    UserNames += "暂无,";
                                }
                                else
                                {
                                    UserNames += UserDAL.GetUserNameByDeptID(Convert.ToDecimal(nextDefaultDept[i])) + ",";
                                }
                                UserNames = "";
                            }
                        }
                        workflow.NextWFUSERIDS = wfdModel.nextiddefaultuser;
                        workflow.NextUserNames = UserNames;
                        workflow.NextWFDID     = wfdModel.nextiddefault;
                    }

                    if (!string.IsNullOrEmpty(wfdModel.nextiddefaultrole))
                    {
                        string[] nextDefaultRole = wfdModel.nextiddefaultrole.Split(',');
                        for (int i = 0; i < nextDefaultRole.Length; i++)
                        {
                            if (!string.IsNullOrEmpty(nextDefaultRole[i]))
                            {
                                UserNames += ",";
                                if (nextDefaultRole[i] == "0")
                                {
                                    UserNames += "暂无,";
                                }
                                else
                                {
                                    UserNames += UserDAL.GetUserNameByRoleID(Convert.ToDecimal(nextDefaultRole[i])) + ",";
                                }
                            }
                        }
                        workflow.NextWFUSERIDS = wfdModel.nextiddefaultuser;
                        workflow.NextUserNames = UserNames;
                        workflow.NextWFDID     = wfdModel.nextiddefault;
                    }

                    #endregion
                }
                #endregion
            }
            return(workflow);
        }