/// <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); }
/// <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); }