⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 documentflow.cs

📁 OA源代码,是一个不可多得的OA源代码.
💻 CS
📖 第 1 页 / 共 5 页
字号:
				mySQL = null;
			}

			return iReturn;
		}

		#endregion

		#region 得到步骤基本信息
		/// <summary>
		/// 得到步骤基本信息
		/// </summary>
		/// <param name="FlowID">流程ID</param>
		/// <param name="StepID">步骤ID</param>
		/// <param name="dt">返回表格</param>
		public int GetStep(long FlowID,long StepID,out DataTable dt)
		{
			int iReturn=-1;
			SqlDataReader dr;
						
			UDS.Components.Database mySQL = new UDS.Components.Database();

			SqlParameter[] parameters = {
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID)
										};
			try
			{
				mySQL.RunProc("sp_Flow_GetStep",parameters,out dr);		
				iReturn = 0;
				dt = Tools.ConvertDataReaderToDataTable(dr);
			}
			catch(Exception e)
			{
				Error.Log(e.ToString());
				dt = null;
			}
			finally
			{
				mySQL.Close();
				mySQL = null;	
			}
			return iReturn;
		}

		#endregion

		#region 得到流程的最大步骤
		/// <summary>
		/// 得到流程的最大步骤
		/// </summary>
		/// <param name="FlowID">流程ID</param>
		/// <returns>最大步骤</returns>
		public int GetMaxStep(long FlowID)
		{
			int iReturn=-1;
						
			UDS.Components.Database mySQL = new UDS.Components.Database();

			SqlParameter[] parameters = {
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID)											
										};
			try
			{
				iReturn = mySQL.RunProc("sp_Flow_GetMaxStep",parameters);		
			}
			catch(Exception e)
			{
				Error.Log(e.ToString());				
			}
			finally
			{
				mySQL.Close();
				mySQL = null;	
			}
			return iReturn;
		}

		#endregion

		#region 得到步骤名
		/// <summary>
		/// 得到步骤名
		/// </summary>
		/// <param name="FlowID">流程ID</param>		
		public string GetStepTitle(long FlowID,long StepID)
		{			
			string strReturn="";
			SqlDataReader dr;
						
			UDS.Components.Database mySQL = new UDS.Components.Database();

			SqlParameter[] parameters = {
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID)
										};
			try
			{
				mySQL.RunProc("sp_Flow_GetStep",parameters,out dr);								
				if(dr.Read())
				{
					strReturn = "<a href='#' title='" + dr["Step_Remark"].ToString() + "'>" + dr["Step_Name"].ToString() + "</a>";
				}
				dr.Close();
			}
			catch(Exception e)
			{
				Error.Log(e.ToString());				
			}
			finally
			{
				mySQL.Close();
				mySQL = null;	
			}
			return strReturn;
		}

		#endregion

		//////////////////////////////////////////////
		///				流程跳转管理相关
		//////////////////////////////////////////////		
				

		#region 添加跳转
		/// <summary>
		/// 添加跳转
		/// </summary>
		/// <param name="FlowID">流程ID</param>
		/// <param name="StepID">步骤ID</param>
		/// <param name="FieldName">字段名</param>
		/// <param name="Compare">比较符号</param>
		/// <param name="CompareValue">比较值</param>
		/// <returns></returns>
		public int AddJump(long FlowID,long StepID,string FieldName,string Compare,double CompareValue,long ToStepID,int FlowRule)
		{
			int iReturn=-1;
			UDS.Components.Database mySQL = new UDS.Components.Database();

			SqlParameter[] parameters = {
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
											mySQL.MakeInParam("@FieldName",SqlDbType.VarChar  ,50,FieldName),
											mySQL.MakeInParam("@Compare",SqlDbType.VarChar,50,Compare),
											mySQL.MakeInParam("@CompareValue",SqlDbType.Float ,8,CompareValue),
											mySQL.MakeInParam("@ToStepID",SqlDbType.Float ,8,ToStepID),
											mySQL.MakeInParam("@FlowRule",SqlDbType.Int ,4,FlowRule)
										};
			try
			{				
				iReturn = mySQL.RunProc("sp_Flow_AddJump",parameters);		
			}
			catch (Exception ex)
			{
				UDS.Components.Error.Log(ex.ToString());							
			}
			finally
			{
				mySQL.Close();
				mySQL = null;
			}

			return iReturn;
		}

		#endregion

		#region 删除跳转
		/// <summary>
		/// 删除步骤
		/// </summary>
		/// <param name="FlowID">被删除的跳转的流程ID</param>
		/// <param name="StepID">被删除的跳转的步骤ID</param>
		/// <param name="Priority">被删除的跳转的优先等级</param>
		public int DeleteJump(long FlowID,long StepID,long Priority)
		{
			int iReturn=-1;
			UDS.Components.Database mySQL = new UDS.Components.Database();
			SqlParameter[] parameters = {
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
											mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority)
										};
			try
			{
				iReturn = mySQL.RunProc("sp_Flow_DeleteJump",parameters);		
			}
			catch(Exception e)
			{
				Error.Log(e.ToString());
			}
			finally
			{
				mySQL.Close();
				mySQL = null;	
			}
			return iReturn;

		}	
		#endregion
		
		#region 修改跳转
		/// <summary>
		/// 修改跳转
		/// </summary>
		/// <param name="FlowID">流程ID</param>
		/// <param name="StepID">步骤ID</param>
		/// <param name="Priority">优先级</param>
		/// <param name="FieldName">字段名</param>
		/// <param name="Compare">比较符号</param>
		/// <param name="CompareValue">比较值</param>
		/// <returns></returns>
		public int UpdateJump(long FlowID,long StepID,long Priority,string FieldName,string Compare,double CompareValue,long ToStepID)
		{
			int iReturn=-1;
			UDS.Components.Database mySQL = new UDS.Components.Database();

			SqlParameter[] parameters = {
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
											mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority),	
											mySQL.MakeInParam("@FieldName",SqlDbType.VarChar  ,50,FieldName),
											mySQL.MakeInParam("@Compare",SqlDbType.VarChar,50,Compare),
											mySQL.MakeInParam("@CompareValue",SqlDbType.Float ,8,CompareValue),
											mySQL.MakeInParam("@ToStepID",SqlDbType.Float ,8,ToStepID)								
										};
			try
			{				
				iReturn = mySQL.RunProc("sp_Flow_UpdateJump",parameters);		
			}
			catch (Exception ex)
			{
				UDS.Components.Error.Log(ex.ToString());							
			}
			finally
			{
				mySQL.Close();
				mySQL = null;
			}

			return iReturn;
		}

		#endregion

		#region 上移跳转
		/// <summary>
		/// 上移跳转
		/// </summary>
		/// <param name="FlowID">流程ID</param>
		/// <param name="StepID">步骤ID</param>
		/// <param name="Priority">优先级</param>
		public int MoveUpJump(long FlowID,long StepID,long Priority)
		{
			int iReturn=-1;
			UDS.Components.Database mySQL = new UDS.Components.Database();

			SqlParameter[] parameters = {
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
											mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority)
										};
			try
			{				
				iReturn = mySQL.RunProc("sp_Flow_MoveUpJump",parameters);		
			}
			catch (Exception ex)
			{
				UDS.Components.Error.Log(ex.ToString());							
			}
			finally
			{
				mySQL.Close();
				mySQL = null;
			}

			return iReturn;
		}

		#endregion

		#region 得到跳转基本信息
		/// <summary>
		/// 得到步骤基本信息
		/// </summary>
		/// <param name="FlowID">流程ID</param>
		/// <param name="StepID">步骤ID</param>
		/// <param name="Priority">优先级</param>
		/// <param name="dt">返回表格</param>
		public int GetJump(long FlowID,long StepID,long Priority,out DataTable dt)
		{
			int iReturn=-1;
			SqlDataReader dr;
						
			UDS.Components.Database mySQL = new UDS.Components.Database();

			SqlParameter[] parameters = {
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID),
											mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority)
										};
			try
			{
				mySQL.RunProc("sp_Flow_GetJump",parameters,out dr);		
				iReturn = 0;
				dt = Tools.ConvertDataReaderToDataTable(dr);
			}
			catch(Exception e)
			{
				Error.Log(e.ToString());
				dt = null;
			}
			finally
			{
				mySQL.Close();
				mySQL = null;	
			}
			return iReturn;
		}

		#endregion

		//////////////////////////////////////////////
		///				  其他杂项
		//////////////////////////////////////////////

		#region 处理消息
		/// <summary>
		/// 获得流程的表格样式描述
		/// </summary>
		/// <param name="ErrorNum">错误消息</param>		
		/// <param name="DocID">文档ID</param>		
		public string DoMessage(int ErrorNum,long DocID,bool DefaultOperation)
		{
			string ErrorMessage="";

			switch(ErrorNum)
			{
				case 0:
					ErrorMessage="成功";
					break;
				case -1:
					ErrorMessage="流程结束!";
					break;
				case -2:
					if(DefaultOperation==true)
					{
						if(this.IsNewDocument(DocID)>0)
							this.DeleteDocument(DocID);
						else
							this.CancelPostil(DocID);
					}
					ErrorMessage="没有职位上级";
					break;
				case -3:
					if(DefaultOperation==true)
					{
						if(this.IsNewDocument(DocID)>0)
							this.DeleteDocument(DocID);
						else
							this.CancelPostil(DocID);
					}
					ErrorMessage="没有项目上级";
					break;
				case -4:
					ErrorMessage="需要全体通过";
					break;
				case -5:
					ErrorMessage="通过人数不够";
					break;
				case -6:
					if(DefaultOperation==true)
					{
						if(this.IsNewDocument(DocID)>0)
							this.DeleteDocument(DocID);
						else
							this.CancelPostil(DocID);
					}
					ErrorMessage="该流程无你所在的环节";
					break;
				case -7:
					ErrorMessage="下一步骤没有成员";
					break;
				default:
					break;
			}
			return ErrorMessage;
		}
		#endregion

		#region 获得文档的存在状态
		/// <summary>
		/// 获得文档的存在状态
		/// </summary>
		/// <param name="DocID">被检查的文档ID</param>
		public int GetDocumentStatus(long DocID)
		{
			int iReturn=-1;
			UDS.Components.Database mySQL = new UDS.Components.Database();
			SqlParameter[] parameters = {
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
										};
			try
			{
				iReturn = mySQL.RunProc("sp_Flow_GetDocumentStatus",parameters);		
			}
			catch(Exception e)
			{
				Error.Log(e.ToString());
			}
			finally
			{
				mySQL.Close();
				mySQL = null;	
			}
			return iReturn;
		}
		#endregion

		#region 获得文档的操作状态
		/// <summary>
		/// 获得文档的操作状态
		/// </summary>
		/// <param name="DocID">被检查的文档ID</param>
		public int GetDocumentStatus(long DocID,string UserName)
		{
			int iReturn=-1;
			UDS.Components.Database mySQL = new UDS.Components.Database();
			SqlParameter[] parameters = {
											mySQL.MakeInParam("@StaffName",SqlDbType.VarChar ,300,UserName),
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
										};
			try
			{
				iReturn = mySQL.RunProc("sp_Flow_GetDocumentStatusByStaff",parameters);		
			}
			catch(Exception e)
			{
				Error.Log(e.ToString());
			}
			finally
			{
				mySQL.Close();
				mySQL = null;	
			}
			return iReturn;
		}
		#endregion

		#region 权限判断
		/// <summary>
		/// 权限判断
		/// </summary>
		/// <param name="classID">对象接点ID</param>
		/// <param name="UserName">用户名</param>
		/// <param name="actID">权利代号</param>
		/// <returns>是否有权利 1有 0无</returns>
		public bool GetAccessPermission(int classID,string UserName,int actID)
		{
			int flag = 0;
			// 定义数据库操作类及DataReader
			Database data = new Database();
				
			// 执行存储过程,并返回SqlDataReader对象
			SqlParameter[] prams = {
									   data.MakeInParam("@Class_ID" , SqlDbType.Int, 20, classID),
									   data.MakeInParam("@UserName" , SqlDbType.NVarChar, 20, UserName),
									   data.MakeInParam("@Act_ID" , SqlDbType.Int, 20, actID),
									   // data.MakeInParam("@Inheit" , SqlDbType.Bit, 1, 1),	
									   data.MakeOutParam("@ReturnValue",SqlDbType.Int,20)
								   };
			
			try 
			{
				data.RunProc("sp_GetAccessPermission",prams);
				flag = Int32.Parse(prams[3].Value.ToString());
				return (flag==1)?true:false;
			}
			catch(Exception ex)
			{
				Error.Log(ex.ToString());
				throw new Exception("获取访问权出错",ex);
			}
			finally
			{
				data	   = null;
			}
			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -