www.pudn.com > UDS1.1_51aspx.rar > DocumentFlow.cs
using System;
using System.Data;
using System.Data.SqlClient;
namespace UDS.Components
{
#region 工作流的函数
///
/// DocumentFlow 的摘要说明。
///
public class DocumentFlow
{
//////////////////////////////////////////
/// 公文流转
//////////////////////////////////////////
#region 添加文档
///
/// 添加文档
///
/// 拟稿人
/// 所用流程ID
/// 样式表数据的SQL语句
public int AddDocument(string UserName,long FlowID,string SQL)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocBuilder",SqlDbType.VarChar,300,UserName),
mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
mySQL.MakeInParam("@SQL",SqlDbType.NText,4000,SQL)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_AddDocument",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 删除文档
///
/// 删除文档
///
/// 被删除的文档ID
public int DeleteDocument(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_DeleteDocument",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 修改文档
///
/// 修改文档
///
/// 更新文档语句
public int UpdateDocument(string UpdateSQL)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@SQL",SqlDbType.NText,4000,UpdateSQL)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_UpdateDocument",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 文档签收
///
/// 文档签收
///
/// 签收人
/// 要被签收的文档ID
public int SignInDocument(string UserName,long DocID)
{
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_SignINDoc",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 取消签收
///
/// 取消签收
///
/// 签收人
/// 被取消的文档ID
public int CancelSignInDocument(string UserName,long DocID)
{
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_CancelSignINDoc",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 添加批注
///
/// 添加批注
///
/// 批注人
/// 批注的文档ID
/// 批注类型,通过,拒绝,完成
public int AddPostil(string UserName,long DocID,string Postil,int PostilType,long ObjID,long ObjType)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID),
mySQL.MakeInParam("@Postiler",SqlDbType.VarChar ,300,UserName),
mySQL.MakeInParam("@PostilContent",SqlDbType.NText,3000,Postil),
mySQL.MakeInParam("@PostilType",SqlDbType.Int ,4,PostilType),
mySQL.MakeInParam("@ObjID",SqlDbType.Int ,4,ObjID),
mySQL.MakeInParam("@ObjType",SqlDbType.Int ,4,ObjType)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_AddPostil",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 否决文档
///
/// 否决文档
///
/// 被否决的文档ID
public int FaileDocument(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_FaileDocument",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 打回文档
///
/// 打回文档
///
/// 被打回的文档ID
public int BackDocument(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_BackDocument",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 通过文档
///
/// 通过文档
///
/// 审批人
/// 当前文档ID
/// 所在项目ID
public int PostDocument(string UserName,long DocID,long ProjectID)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@StaffName",SqlDbType.VarChar,300,UserName),
mySQL.MakeInParam("@DocID",SqlDbType.VarChar,300,DocID),
mySQL.MakeInParam("@ProjectID",SqlDbType.Int,4,ProjectID)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_PostDocument",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 结束文档
///
/// 结束文档
///
/// 被结束的文档ID
public int FinishDocument(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_FinishDocument",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 删除文档最近的批注
///
/// 删除文档最近的批注
///
/// 文档ID
public int CancelPostil(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_CancelPostil",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 获得步骤流转规则
///
/// 获得步骤流转规则
///
/// 流程ID
/// 步骤ID
public int GetStepRule(long FlowID,long StepID)
{
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)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_GetStepRule",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 获得步骤结束权利
///
/// 获得步骤结束权利
///
/// 流程ID
/// 步骤ID
public int GetStepRightToFinish(long FlowID,long StepID)
{
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)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_GetStepRightToFinish",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 获得文档的是否为新拟稿
///
/// 获得流程的表格样式描述
///
/// 文档ID
public int IsNewDocument(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_IsNewDocument",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 获得用户所有的项目,返回表格
///
/// 获得用户所有的项目
///
/// 用户名
/// 返回表格
public int GetProject(string UserName,out DataTable dt )
{
//int iReturn=0;
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@UserName",SqlDbType.VarChar ,300,UserName)
};
try
{
mySQL.RunProc("sp_GetTaskClass",parameters,out dr);
dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dt = null;
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
#region 获得用户所有的项目,返回表格
///
/// 获得用户所有的项目
///
/// 用户名
/// 返回表格
public int GetProject(string UserName,out SqlDataReader dr )
{
//int iReturn=0;
dr = null;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@UserName",SqlDbType.VarChar ,300,UserName)
};
try
{
mySQL.RunProc("sp_GetTaskClass",parameters,out dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
//mySQL.Close();
//mySQL = null;
}
return 0;
}
#endregion
#region 获得文档的批注,返回记录集
///
/// 获得流程的表格样式描述
///
/// 文档ID
/// 返回表格
public int GetDocumentPostil(long DocID,out SqlDataReader dr )
{
//int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetDocumentPostil",parameters,out dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dr = null;
}
finally
{
//mySQL.Close();
//mySQL = null;
}
return 0;
}
#endregion
#region 获得文档的批注,返回表格
///
/// 获得流程的表格样式描述
///
/// 文档ID
/// 返回表格
public int GetDocumentPostil(long DocID,out DataTable dt )
{
//int iReturn=-1;
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetDocumentPostil",parameters,out dr);
dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dt = null;
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
#region 获得文档的信息实体,返回记录集
///
/// 获得流程的表格样式描述
///
/// 文档ID
/// 返回记录集
public int GetDocumentInfo(long DocID,out SqlDataReader dr )
{
//int iReturn=-1;
//SqlDataReader dd;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetDocumentInfo",parameters,out dr);
}
catch(Exception e)
{
dr = null;
Error.Log(e.ToString());
}
finally
{
//mySQL.Close();
//mySQL = null;
}
return 0;
}
#endregion
#region 获得文档的信息实体,返回表格
///
/// 获得流程的表格样式描述
///
/// 文档ID
/// 返回表格
public int GetDocumentInfo(long DocID,out DataTable dt )
{
//int iReturn=-1;
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetDocumentInfo",parameters,out dr);
dt =UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
dt = null;
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
#region 获得步骤成员,返回表格
///
/// 获得环节成员,返回表格
///
/// 流程ID
/// 步骤ID
/// 返回表格
public int GetStaffInStep(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_GetStaffInStep",parameters,out dr);
dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dt = null;
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
#region 获得步骤成员,返回表格
///
/// 获得环节成员,返回表格
///
/// 文档ID
/// 返回表格
public int GetStaffInStep(long DocID,out DataTable dt )
{
//int iReturn=-1;
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetStaffInStep_Ex",parameters,out dr);
dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dt = null;
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
#region 获得步骤接受人员,返回表格
///
/// 获得步骤接受人员,返回表格
///
/// 文档ID
/// 返回表格
public int GetReceiver(long DocID,out DataTable dt )
{
//int iReturn=-1;
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetReceiver",parameters,out dr);
dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dt = null;
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
#region 获得步骤已经签收人员,返回表格
///
/// 获得步骤已经签收人员,返回表格
///
/// 文档ID
/// 返回表格
public int GetSignIner(long DocID,out DataTable dt )
{
//int iReturn=-1;
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetSignIner",parameters,out dr);
dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dt = null;
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
#region 获得步骤未签收人员,返回表格
///
/// 获得步骤未签收人员,返回表格
///
/// 文档ID
/// 返回表格
public int GetUnSignIner(long DocID,out DataTable dt )
{
//int iReturn=-1;
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetUnSignIner",parameters,out dr);
dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dt = null;
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
#region 获得步骤已经批阅人员,返回表格
///
/// 获得步骤已经批阅人员,返回表格
///
/// 文档ID
/// 返回表格
public int GetPostiler(long DocID,out DataTable dt )
{
//int iReturn=-1;
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetPostiler",parameters,out dr);
dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dt = null;
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
#region 获得流程头信息,返回表格
///
/// 流程ID
/// 返回表格
public string GetStyleHeadline(long FlowID)
{
string str="";
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID)
};
try
{
mySQL.RunProc("sp_Flow_GetStyleHead",parameters,out dr);
if(dr.Read())
{
str = dr["Flow_Name"].ToString() + "(流水号:" + string.Format(dr["Times"].ToString(),"03d") + ")";
}
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return str;
}
#endregion
#region 获得文档的附件,返回表格
///
/// 获得文档的附件,返回表格
///
/// 文档ID
/// 返回表格
public int GetDocumentAttach(long DocID,out DataTable dt)
{
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetDocumentAttach",parameters,out dr);
dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
throw new Exception("获得公文的附件出错!",e);
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
#region 添加公文附件数据库
///
/// 添加文件附件数据库操作
///
/// DocAttachFile类
/// 文件ID
public void AddAttach(UDS.Components.DocAttachFile att,long DocID)
{
UDS.Components.Database data = new UDS.Components.Database();
SqlParameter[] prams = {
data.MakeInParam("@DocID", SqlDbType.Int, 20, DocID),
data.MakeInParam("@FileName", SqlDbType.VarChar, 300, att.FileName),
data.MakeInParam("@FileSize", SqlDbType.Int, 20, att.FileSize),
data.MakeInParam("@FileAttribute", SqlDbType.SmallInt,20, att.FileAttribute),
data.MakeInParam("@FileVisualPath", SqlDbType.NVarChar, 200, att.FileVisualPath),
data.MakeInParam("@FileAuthor", SqlDbType.NVarChar, 50, att.FileAuthor),
data.MakeInParam("@FileCatlog", SqlDbType.NVarChar, 20, att.FileCatlog),
data.MakeInParam("@FileAddedDate", SqlDbType.DateTime, 30, DateTime.Parse(att.FileAddedDate))
};
try
{
data.RunProc("sp_Flow_AddFile", prams);
}
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("文件附件发送出错!",ex);
}
}
#endregion
#region 删除公文附件数据库
///
/// 删除文件附件数据库操作
///
/// 文件ID
public void DeleteAttach(long DocID)
{
UDS.Components.Database data = new UDS.Components.Database();
SqlParameter[] prams = {
data.MakeInParam("@DocID", SqlDbType.Int, 20, DocID)
};
try
{
data.RunProc("sp_Flow_DeleteFile", prams);
}
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("文件附件删除出错!",ex);
}
}
#endregion
#region 获得公文附件名
///
/// 获得公文附件名
///
/// 文件ID
public string GetAttachName(long DocID)
{
string AttachName="";
UDS.Components.Database data = new UDS.Components.Database();
SqlDataReader dr = null;
SqlParameter[] prams = {
data.MakeInParam("@DocID", SqlDbType.Int, 20, DocID)
};
try
{
data.RunProc("sp_Flow_GetDocumentAttach", prams,out dr);
if(dr.Read())
AttachName = dr["FileVisualPath"].ToString() + dr["FileName"].ToString();
}
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("获得文件附出错!",ex);
}
finally
{
dr.Close();
dr = null;
data = null;
}
return AttachName;
}
#endregion
#region 添加公文批注附件数据库
///
/// 添加文件批注附件数据库操作
///
/// DocAttachFile类
/// 文件ID
public void AddPostilAttach(UDS.Components.DocAttachFile att,long PostilID)
{
UDS.Components.Database data = new UDS.Components.Database();
SqlParameter[] prams = {
data.MakeInParam("@PostilID", SqlDbType.Int, 20, PostilID),
data.MakeInParam("@FileName", SqlDbType.VarChar, 300, att.FileName),
data.MakeInParam("@FileSize", SqlDbType.Int, 20, att.FileSize),
data.MakeInParam("@FileAttribute", SqlDbType.SmallInt,20, att.FileAttribute),
data.MakeInParam("@FileVisualPath", SqlDbType.NVarChar, 200, att.FileVisualPath),
data.MakeInParam("@FileAuthor", SqlDbType.NVarChar, 50, att.FileAuthor),
data.MakeInParam("@FileCatlog", SqlDbType.NVarChar, 20, att.FileCatlog),
data.MakeInParam("@FileAddedDate", SqlDbType.DateTime, 30, DateTime.Parse(att.FileAddedDate))
};
try
{
data.RunProc("sp_Flow_AddPostilFile", prams);
}
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("文件附件发送出错!",ex);
}
}
#endregion
#region 获得文档的所在项目ID
///
/// 获得文档的所在项目ID
///
/// 文档ID
public static int GetDocumentProjectID(long DocID)
{
int iReturn=0;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_GetDocumentProjectID",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
throw new Exception("获得公文的项目ID出错!",e);
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 获得是否按照项目流转
///
/// 获得是否按照项目流转ID
///
/// 用户名
/// 文档ID
public bool IsProject(string UserName,long DocID)
{
bool iReturn = false;
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@StaffName",SqlDbType.VarChar,100,UserName),
mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)
};
try
{
mySQL.RunProc("sp_Flow_GetPrePostInfo",parameters,out dr);
if(dr.Read())
{
if(dr["Flow_Rule"].ToString()=="2")
iReturn = true;
}
dr.Close();
dr = null;
}
catch(Exception e)
{
Error.Log(e.ToString());
throw new Exception("获得是否按照项目流转出错!",e);
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
/////////////////////////////////////////////
/// 流程自定义表单
/////////////////////////////////////////////
#region 添加自定义风格表格
///
/// 添加自定义风格表格
///
/// 风格名
/// 简介ID
/// 模板路径
public int AddStyle(string StyleName,string StyleRemark,string Teamplate)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@StyleName",SqlDbType.VarChar,100,StyleName),
mySQL.MakeInParam("@StyleRemark",SqlDbType.VarChar,100,StyleRemark),
mySQL.MakeInParam("@Teamplate",SqlDbType.VarChar,100,Teamplate)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_AddStyle",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 删除自定义风格表格
///
/// 删除自定义风格表格
///
/// 风格ID
public int DeleteStyle(long StyleID,string Path)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID)
};
try
{
DeleteTemplate(StyleID,Path); //删除模板实体
iReturn = mySQL.RunProc("sp_Flow_DeleteStyle",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 修改自定义风格表格
///
/// 修改自定义风格表格
///
/// 风格ID
/// 风格名
/// 简介ID
/// 模板路径
public int UpdateStyle(long StyleID,string StyleName,string StyleRemark,string Teamplate,string Path)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID),
mySQL.MakeInParam("@StyleName",SqlDbType.VarChar,100,StyleName),
mySQL.MakeInParam("@StyleRemark",SqlDbType.VarChar,100,StyleRemark),
mySQL.MakeInParam("@Teamplate",SqlDbType.VarChar,100,Teamplate)
};
try
{
DeleteTemplate(StyleID,Path);
iReturn = mySQL.RunProc("sp_Flow_UpdateStyle",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 添加自定义风格详细定义
///
/// 添加自定义风格详细定义
///
/// 风格表格ID
/// 帮定字段名
/// 字段意义
/// 是否作为条件判断字段
/// 是否多行
/// 控件高度
/// 控件宽
/// 控件在表单中的位置
/// 填表示例
public int AddStyleDescription(long StyleID,string FieldName,string FieldDescription,int Judged,int MultiLine,int Height,int Width,int Position,string Example)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID),
mySQL.MakeInParam("@FieldName",SqlDbType.VarChar,100,FieldName),
mySQL.MakeInParam("@FieldDescription",SqlDbType.VarChar,100,FieldDescription),
mySQL.MakeInParam("@Judged",SqlDbType.Int,4,Judged),
mySQL.MakeInParam("@MultiLine",SqlDbType.Int,4,MultiLine),
mySQL.MakeInParam("@Height",SqlDbType.Int,4,Height),
mySQL.MakeInParam("@Width",SqlDbType.Int,4,Width),
mySQL.MakeInParam("@Position",SqlDbType.Int,4,Position),
mySQL.MakeInParam("@Example",SqlDbType.VarChar,100,Example)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_AddStyle_Description",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 删除自定义风格表格详细定义
///
/// 删除自定义风格表格详细定义,一行定义表示一个控件
///
/// 风格详细定义ID
public int DeleteStyleDescription(long DescriptionID)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DescriptionID",SqlDbType.Int,4,DescriptionID)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_DeleteStyle_Description",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 修改自定义风格详细定义
///
/// 修改自定义风格详细定义
///
/// 风格详细定义ID
/// 风格表格ID
/// 帮定字段名
/// 字段意义
/// 是否作为条件判断字段
/// 是否多行
/// 控件高度
/// 控件宽
/// 控件在表单中的位置
/// 填表示例
public int UpdateStyleDescription(long DescriptionID,long StyleID,string FieldName,string FieldDescription,int Judged,int MultiLine,int Height,int Width,int Position,string Example)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DescriptionID",SqlDbType.Int,4,DescriptionID),
mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID),
mySQL.MakeInParam("@FieldName",SqlDbType.VarChar,100,FieldName),
mySQL.MakeInParam("@FieldDescription",SqlDbType.VarChar,100,FieldDescription),
mySQL.MakeInParam("@Judged",SqlDbType.Int,4,Judged),
mySQL.MakeInParam("@MultiLine",SqlDbType.Int,4,MultiLine),
mySQL.MakeInParam("@Height",SqlDbType.Int,4,Height),
mySQL.MakeInParam("@Width",SqlDbType.Int,4,Width),
mySQL.MakeInParam("@Position",SqlDbType.Int,4,Position),
mySQL.MakeInParam("@Example",SqlDbType.VarChar,100,Example)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_UpdateStyle_Description",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 获得自定义风格表格一条详细定义
///
/// 获得单一样式描述
///
/// 流程ID
/// 数据集合
public int GetDescription(long DescriptionID,out SqlDataReader dr )
{
//int iReturn=-1;
dr = null;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@DescriptionID",SqlDbType.Int ,4,DescriptionID)
};
try
{
mySQL.RunProc("sp_Flow_GetDescription",parameters,out dr);
}
catch(Exception ex)
{
Error.Log(ex.ToString());
}
finally
{
//mySQL.Close();
//mySQL = null;
}
return 0;
}
#endregion
#region 通过流程ID得到流程模板名
///
/// 通过流程ID得到流程模板名
///
/// 流程ID
public string GetStyleTemplate(long FlowID)
{
string str="";
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
mySQL.MakeOutParam("@Template",SqlDbType.VarChar,100)
};
try
{
mySQL.RunProc("sp_Flow_GetStyleTemplate",parameters);
str = parameters[1].Value.ToString();
}
catch(Exception e)
{
Error.Log(e.ToString());
throw new Exception("获得表格模板错误!",e);
}
finally
{
mySQL.Close();
mySQL = null;
}
if(str.Length>0)
return @"Template\" + str;
else
return "";
}
#endregion
#region 通过表单ID得到流程模板名
///
/// 通过表单ID得到流程模板名
///
/// 流程ID
public string GetStyleTemplateEx(long StyleID)
{
string str="";
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID),
mySQL.MakeOutParam("@Template",SqlDbType.VarChar,100)
};
try
{
mySQL.RunProc("sp_Flow_GetStyleTemplateEx",parameters);
str = parameters[1].Value.ToString();
}
catch(Exception e)
{
Error.Log(e.ToString());
throw new Exception("获得表格模板错误!",e);
}
finally
{
mySQL.Close();
mySQL = null;
}
if(str.Length>0)
return @"Template\" + str;
else
return "";
}
#endregion
#region 删除模板实体
///
/// 删除模板实体
///
/// 风格表格ID
/// 路径
public int DeleteTemplate(long StyleID,string Path)
{
int iReturn=0;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlDataReader dr;
SqlParameter[] parameters = {
mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID)
};
try
{
mySQL.RunProc("sp_Flow_GetStyle",parameters,out dr);
if(dr.Read())
{
string FileName;
FileName = Path + "\\" + dr["Template"].ToString();
if(System.IO.File.Exists(FileName)==true)
{
System.IO.File.Delete(FileName);
}
}
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 获得流程的表格样式描述
///
/// 获得流程的表格样式描述
///
/// 流程ID
/// 是否包括条件判断的字段
/// 数据集合
public int GetStyleDescription(long FlowID,int Judged,out SqlDataReader dr )
{
//int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
mySQL.MakeInParam("@Judged",SqlDbType.Int ,4,0)
};
try
{
mySQL.RunProc("sp_flow_getstyle_description",parameters,out dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dr = null;
}
finally
{
//mySQL.Close();
//mySQL = null;
}
return 0;
}
#endregion
#region 获得流程的表格样式描述
///
/// 获得流程的表格样式描述
///
/// 流程ID
/// 数据集合
public int GetStyleDescription(long StyleID,out SqlDataReader dr )
{
//int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID)
};
try
{
mySQL.RunProc("sp_flow_getstyle_description_ex",parameters,out dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dr = null;
}
finally
{
//mySQL.Close();
//mySQL = null;
}
return 0;
}
#endregion
#region 获得流程的表格样式描述
///
/// 获得流程的表格样式描述
///
/// 流程ID
/// 是否包括条件判断的字段
/// 返回表格
public int GetStyleDescription(long FlowID,int Judged,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("@Judged",SqlDbType.Int ,4,0)
};
try
{
mySQL.RunProc("sp_flow_getstyle_description",parameters,out dr);
dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
}
catch(Exception e)
{
Error.Log(e.ToString());
dt = null;
}
finally
{
mySQL.Close();
mySQL = null;
}
return 0;
}
#endregion
//////////////////////////////////////////////
/// 流程管理相关
//////////////////////////////////////////////
#region 添加流程
///
/// 添加流程
///
/// 流程名
/// 流程简介
/// 流程制定者
/// 流程自定义表单
public int AddFlow(string FlowName,string FlowRemark,string Builder,long StyleID)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@FlowName",SqlDbType.VarChar ,300,FlowName),
mySQL.MakeInParam("@FlowRemark",SqlDbType.NText ,3000,FlowRemark ),
mySQL.MakeInParam("@Builder",SqlDbType.VarChar,300,Builder),
mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_AddFlow",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 删除流程
///
/// 删除流程
///
/// 被删除的流程ID
public int DeleteFlow(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_DeleteFlow",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 修改流程
///
/// 修改流程
///
/// 流程ID
/// 流程名
/// 流程简介
/// 流程制定者
/// 流程自定义表单
public int UpdateFlow(long FlowID,string FlowName,string FlowRemark,string Builder,long StyleID)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
mySQL.MakeInParam("@FlowName",SqlDbType.VarChar ,300,FlowName),
mySQL.MakeInParam("@FlowRemark",SqlDbType.NText ,3000,FlowRemark ),
mySQL.MakeInParam("@Builder",SqlDbType.VarChar,300,Builder),
mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_UpdateFlow",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 得到流程基本信息
///
/// 得到流程基本信息
///
/// 流程ID
/// 返回表格
public int GetFlow(long FlowID,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)
};
try
{
mySQL.RunProc("sp_Flow_GetFlow",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 得到流程名
///
/// 得到流程名
///
/// 流程ID
/// 返回表格
public string GetFlowTitle(long FlowID)
{
string strReturn="";
SqlDataReader dr;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID)
};
try
{
mySQL.RunProc("sp_Flow_GetFlow",parameters,out dr);
if(dr.Read())
{
strReturn = "" + dr["Flow_Name"].ToString() + "";
}
dr.Close();
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return strReturn;
}
#endregion
//////////////////////////////////////////////
/// 流程步骤管理相关
//////////////////////////////////////////////
#region 添加步骤
///
/// 添加步骤
///
/// 步骤名
/// 步骤简介
/// 是否有权利结束
/// 流转规则
/// 会签数目
public int AddStep(long FlowID,string StepName,string StepRemark,int RightToFinish,int FlowRule,int PassNum,int LocalAlert,int BaseHour,int CycTimes,int Period)
{
int iReturn=-1;
UDS.Components.Database mySQL = new UDS.Components.Database();
SqlParameter[] parameters = {
mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID),
mySQL.MakeInParam("@StepName",SqlDbType.VarChar ,300,StepName),
mySQL.MakeInParam("@StepRemark",SqlDbType.NText ,3000,StepRemark),
mySQL.MakeInParam("@RightToFinish",SqlDbType.Bit,1,RightToFinish),
mySQL.MakeInParam("@FlowRule",SqlDbType.Int,4,FlowRule),
mySQL.MakeInParam("@PassNum",SqlDbType.Int,4,PassNum),
mySQL.MakeInParam("@LocalAlert",SqlDbType.Bit,1,LocalAlert),
mySQL.MakeInParam("@BaseHour",SqlDbType.Int,4,BaseHour),
mySQL.MakeInParam("@CycTimes",SqlDbType.Int,4,CycTimes),
mySQL.MakeInParam("@Period",SqlDbType.Int,4,Period)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_AddStep",parameters);
}
catch (Exception ex)
{
UDS.Components.Error.Log(ex.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 删除步骤
///
/// 删除步骤
///
/// 被删除的步骤的流程ID
/// 被删除的步骤的步骤ID
public int DeleteStep(long FlowID,long StepID)
{
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)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_DeleteStep",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 修改步骤
///
/// 修改步骤
///
/// 流程ID
/// 步骤ID
/// 步骤名
/// 步骤简介
/// 是否有权利结束
/// 流转规则
/// 会签数目
public int UpdateStep(long FlowID,long StepID,string StepName,string StepRemark,int RightToFinish,int FlowRule,int PassNum,int LocalAlert,int BaseHour,int CycTimes,int Period)
{
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("@StepName",SqlDbType.VarChar ,300,StepName),
mySQL.MakeInParam("@StepRemark",SqlDbType.NText ,3000,StepRemark),
mySQL.MakeInParam("@RightToFinish",SqlDbType.Bit,1,RightToFinish),
mySQL.MakeInParam("@FlowRule",SqlDbType.Int,4,FlowRule),
mySQL.MakeInParam("@PassNum",SqlDbType.Int,4,PassNum),
mySQL.MakeInParam("@LocalAlert",SqlDbType.Bit,1,LocalAlert),
mySQL.MakeInParam("@BaseHour",SqlDbType.Int,4,BaseHour),
mySQL.MakeInParam("@CycTimes",SqlDbType.Int,4,CycTimes),
mySQL.MakeInParam("@Period",SqlDbType.Int,4,Period)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_UpdateStep",parameters);
}
catch (Exception ex)
{
UDS.Components.Error.Log(ex.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 上移步骤
///
/// 上移步骤
///
/// 流程ID
/// 步骤ID
public int MoveUpStep(long FlowID,long StepID)
{
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)
};
try
{
iReturn = mySQL.RunProc("sp_Flow_MoveUpStep",parameters);
}
catch (Exception ex)
{
UDS.Components.Error.Log(ex.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 得到步骤基本信息
///
/// 得到步骤基本信息
///
/// 流程ID
/// 步骤ID
/// 返回表格
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 得到流程的最大步骤
///
/// 得到流程的最大步骤
///
/// 流程ID
/// 最大步骤
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 得到步骤名
///
/// 得到步骤名
///
/// 流程ID
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 = "" + dr["Step_Name"].ToString() + "";
}
dr.Close();
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return strReturn;
}
#endregion
//////////////////////////////////////////////
/// 流程跳转管理相关
//////////////////////////////////////////////
#region 添加跳转
///
/// 添加跳转
///
/// 流程ID
/// 步骤ID
/// 字段名
/// 比较符号
/// 比较值
///
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 删除跳转
///
/// 删除步骤
///
/// 被删除的跳转的流程ID
/// 被删除的跳转的步骤ID
/// 被删除的跳转的优先等级
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 修改跳转
///
/// 修改跳转
///
/// 流程ID
/// 步骤ID
/// 优先级
/// 字段名
/// 比较符号
/// 比较值
///
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 上移跳转
///
/// 上移跳转
///
/// 流程ID
/// 步骤ID
/// 优先级
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 得到跳转基本信息
///
/// 得到步骤基本信息
///
/// 流程ID
/// 步骤ID
/// 优先级
/// 返回表格
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 处理消息
///
/// 获得流程的表格样式描述
///
/// 错误消息
/// 文档ID
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 获得文档的存在状态
///
/// 获得文档的存在状态
///
/// 被检查的文档ID
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 获得文档的操作状态
///
/// 获得文档的操作状态
///
/// 被检查的文档ID
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 权限判断
///
/// 权限判断
///
/// 对象接点ID
/// 用户名
/// 权利代号
/// 是否有权利 1有 0无
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;
}
}
#endregion
#region 得到文档关联的流程
///
/// 得到文档关联的流程
///
/// 文档ID
/// 文档关联的流程ID
public int GetDocumentFlowID(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_GetDocumentFlowID",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
#region 得到文档关联的步骤
///
/// 得到文档关联的步骤
///
/// 文档ID
/// 文档关联的流程ID
public int GetDocumentStepID(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_GetDocumentStepID",parameters);
}
catch(Exception e)
{
Error.Log(e.ToString());
}
finally
{
mySQL.Close();
mySQL = null;
}
return iReturn;
}
#endregion
}
#endregion
}