📄 documentflow.cs
字号:
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 + -