You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
650 lines
43 KiB
650 lines
43 KiB
using System;
|
|
using System.Data;
|
|
using System.Text;
|
|
using System.Data.SqlClient;
|
|
using OT.IDAL;
|
|
using DBUtility;
|
|
using System.Collections.Generic;//Please add references
|
|
namespace OT.SQLServerDAL
|
|
{
|
|
/// <summary>
|
|
/// 数据访问类:OTB_SYS_Departments
|
|
/// </summary>
|
|
public partial class OTB_SYS_Departments : IOTB_SYS_Departments
|
|
{
|
|
public OTB_SYS_Departments()
|
|
{ }
|
|
#region Method
|
|
/// <summary>
|
|
/// 是否存在该记录
|
|
/// </summary>
|
|
public bool Exists(string DepartmentID)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select count(1) from OTB_SYS_Departments");
|
|
strSql.Append(" where DepartmentID=@DepartmentID ");
|
|
SqlParameter[] parameters = {
|
|
new SqlParameter("@DepartmentID", SqlDbType.VarChar,10) };
|
|
parameters[0].Value = DepartmentID;
|
|
|
|
return DbHelperSQL.Exists(strSql.ToString(), parameters);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 增加一条数据
|
|
/// </summary>
|
|
public bool Add(OT.Model.OTB_SYS_Departments model)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("insert into OTB_SYS_Departments(");
|
|
strSql.Append("DepartmentID,DepartmentName,DepartmentShortName,ChiefOfDepartmentID,LevelOfDepartment,NameOfLevel,ParentDepartmentID,OrderByValue,Effective,Memo,CreateUser,CreateDate,ModifyUser,ModifyDate,DelStatus)");
|
|
strSql.Append(" values (");
|
|
strSql.Append("@DepartmentID,@DepartmentName,@DepartmentShortName,@ChiefOfDepartmentID,@LevelOfDepartment,@NameOfLevel,@ParentDepartmentID,@OrderByValue,@Effective,@Memo,@CreateUser,getdate(),@CreateUser,getdate(),'N')");
|
|
SqlParameter[] parameters = {
|
|
new SqlParameter("@DepartmentID", SqlDbType.VarChar,10),
|
|
new SqlParameter("@DepartmentName", SqlDbType.NVarChar,200),
|
|
new SqlParameter("@DepartmentShortName", SqlDbType.NVarChar,100),
|
|
new SqlParameter("@ChiefOfDepartmentID", SqlDbType.VarChar,50),
|
|
new SqlParameter("@LevelOfDepartment", SqlDbType.Int,4),
|
|
new SqlParameter("@NameOfLevel", SqlDbType.NVarChar,10),
|
|
new SqlParameter("@ParentDepartmentID", SqlDbType.VarChar,10),
|
|
new SqlParameter("@OrderByValue", SqlDbType.Int,4),
|
|
new SqlParameter("@Effective", SqlDbType.Char,1),
|
|
new SqlParameter("@Memo", SqlDbType.NVarChar),
|
|
new SqlParameter("@CreateUser", SqlDbType.VarChar,50),
|
|
new SqlParameter("@CreateDate", SqlDbType.DateTime),
|
|
new SqlParameter("@ModifyUser", SqlDbType.VarChar,50),
|
|
new SqlParameter("@ModifyDate", SqlDbType.DateTime)};
|
|
parameters[0].Value = model.DepartmentID;
|
|
parameters[1].Value = model.DepartmentName;
|
|
parameters[2].Value = model.DepartmentShortName;
|
|
parameters[3].Value = model.ChiefOfDepartmentID;
|
|
parameters[4].Value = model.LevelOfDepartment;
|
|
parameters[5].Value = model.NameOfLevel;
|
|
parameters[6].Value = model.ParentDepartmentID;
|
|
parameters[7].Value = model.OrderByValue;
|
|
parameters[8].Value = model.Effective;
|
|
parameters[9].Value = model.Memo;
|
|
parameters[10].Value = model.CreateUser;
|
|
parameters[11].Value = model.CreateDate;
|
|
parameters[12].Value = model.ModifyUser;
|
|
parameters[13].Value = model.ModifyDate;
|
|
|
|
|
|
List<CommandInfo> lstCommandInfo = new List<CommandInfo>(); //定義事物執行的所有SQL
|
|
StringBuilder strSql1 = new StringBuilder();
|
|
strSql1.Append(" DECLARE @strSQL NVARCHAR(1000) ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" PRINT @NewOrderByValue ");
|
|
strSql1.Append(" PRINT @OldOrderByValue ");
|
|
strSql1.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql1.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
|
|
strSql1.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
|
|
strSql1.Append(" IF @Where <>'' ");
|
|
strSql1.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql1.Append(" print @strSQL ");
|
|
strSql1.Append(" exec sp_executesql @strSQL ");
|
|
strSql1.Append(" END ");
|
|
strSql1.Append(" ELSE ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql1.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
|
|
strSql1.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
|
|
strSql1.Append(" IF @Where <>'' ");
|
|
strSql1.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql1.Append(" print @strSQL ");
|
|
strSql1.Append(" exec sp_executesql @strSQL ");
|
|
strSql1.Append(" END ");
|
|
strSql1.Append(" END ");
|
|
|
|
SqlParameter[] UpdataRow = {
|
|
new SqlParameter("@OldOrderByValue",SqlDbType.NVarChar,10),
|
|
new SqlParameter("@NewOrderByValue",SqlDbType.NVarChar,10),
|
|
new SqlParameter("@FeildName",SqlDbType.NVarChar,50),
|
|
new SqlParameter("@TableName",SqlDbType.NVarChar,50),
|
|
new SqlParameter("@Where",SqlDbType.NVarChar,500)
|
|
};
|
|
//設定參數值
|
|
UpdataRow[0].Value = model.OldOrderByValue;
|
|
UpdataRow[1].Value = model.OrderByValue;
|
|
UpdataRow[2].Value = "OrderByValue";
|
|
UpdataRow[3].Value = "OTB_SYS_Departments";
|
|
UpdataRow[4].Value = "ParentDepartmentID = '" + model.ParentDepartmentID + "' ";
|
|
//加入資料排序變動的SQL語法
|
|
|
|
CommandInfo o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
|
|
o_CommandInfo.CommandText = strSql1.ToString();
|
|
o_CommandInfo.Parameters = UpdataRow;
|
|
lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
|
|
|
|
o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表新增,雖然參數名稱相同,但是經過new以後就是新的對象
|
|
o_CommandInfo.CommandText = strSql.ToString();
|
|
o_CommandInfo.Parameters = parameters;
|
|
lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
|
|
|
|
if (DbHelperSQL.ExecuteSqlTran(lstCommandInfo) > 0)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 更新一条数据
|
|
/// </summary>
|
|
public bool Update(OT.Model.OTB_SYS_Departments model)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("update OTB_SYS_Departments set ");
|
|
strSql.Append("DepartmentName=@DepartmentName,");
|
|
strSql.Append("DepartmentShortName=@DepartmentShortName,");
|
|
strSql.Append("ChiefOfDepartmentID=@ChiefOfDepartmentID,");
|
|
strSql.Append("LevelOfDepartment=@LevelOfDepartment,");
|
|
strSql.Append("NameOfLevel=@NameOfLevel,");
|
|
strSql.Append("ParentDepartmentID=@ParentDepartmentID,");
|
|
strSql.Append("OrderByValue=@OrderByValue,");
|
|
strSql.Append("Effective=@Effective,");
|
|
strSql.Append("Memo=@Memo,");
|
|
strSql.Append("ModifyUser=@ModifyUser,");
|
|
strSql.Append("ModifyDate=getdate()");
|
|
strSql.Append(" where DepartmentID=@DepartmentID ");
|
|
SqlParameter[] parameters = {
|
|
new SqlParameter("@DepartmentName", SqlDbType.NVarChar,200),
|
|
new SqlParameter("@DepartmentShortName", SqlDbType.NVarChar,100),
|
|
new SqlParameter("@ChiefOfDepartmentID", SqlDbType.VarChar,50),
|
|
new SqlParameter("@LevelOfDepartment", SqlDbType.Int,4),
|
|
new SqlParameter("@NameOfLevel", SqlDbType.NVarChar,10),
|
|
new SqlParameter("@ParentDepartmentID", SqlDbType.VarChar,10),
|
|
new SqlParameter("@OrderByValue", SqlDbType.Int,4),
|
|
new SqlParameter("@Effective", SqlDbType.Char,1),
|
|
new SqlParameter("@Memo", SqlDbType.NVarChar),
|
|
new SqlParameter("@CreateUser", SqlDbType.VarChar,50),
|
|
new SqlParameter("@CreateDate", SqlDbType.DateTime),
|
|
new SqlParameter("@ModifyUser", SqlDbType.VarChar,50),
|
|
new SqlParameter("@ModifyDate", SqlDbType.DateTime),
|
|
new SqlParameter("@DepartmentID", SqlDbType.VarChar,10)};
|
|
parameters[0].Value = model.DepartmentName;
|
|
parameters[1].Value = model.DepartmentShortName;
|
|
parameters[2].Value = model.ChiefOfDepartmentID;
|
|
parameters[3].Value = model.LevelOfDepartment;
|
|
parameters[4].Value = model.NameOfLevel;
|
|
parameters[5].Value = model.ParentDepartmentID;
|
|
parameters[6].Value = model.OrderByValue;
|
|
parameters[7].Value = model.Effective;
|
|
parameters[8].Value = model.Memo;
|
|
parameters[9].Value = model.CreateUser;
|
|
parameters[10].Value = model.CreateDate;
|
|
parameters[11].Value = model.ModifyUser;
|
|
parameters[12].Value = model.ModifyDate;
|
|
parameters[13].Value = model.DepartmentID;
|
|
|
|
|
|
List<CommandInfo> lstCommandInfo = new List<CommandInfo>(); //定義事物執行的所有SQL
|
|
StringBuilder strSql2 = new StringBuilder();
|
|
strSql2.Append(" DECLARE @strSQL NVARCHAR(1000) ");
|
|
strSql2.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
|
|
strSql2.Append(" BEGIN "); //由小變大,OLD<-1<=NEW
|
|
strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
|
|
strSql2.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
|
|
strSql2.Append(" IF @Where <>'' ");
|
|
strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql2.Append(" print @strSQL ");
|
|
strSql2.Append(" exec sp_executesql @strSQL ");
|
|
strSql2.Append(" END ");
|
|
strSql2.Append(" ELSE ");
|
|
strSql2.Append(" BEGIN "); //由大變小,@NewOrderByValue<=+1<@OldOrderByValue
|
|
strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
|
|
strSql2.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
|
|
strSql2.Append(" IF @Where <>'' ");
|
|
strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql2.Append(" print @strSQL ");
|
|
strSql2.Append(" exec sp_executesql @strSQL ");
|
|
strSql2.Append(" END ");
|
|
CommandInfo o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
|
|
if (model.ParentDepartmentID == model.ParentDepartmentID)
|
|
{
|
|
SqlParameter[] UpdataRow = {
|
|
new SqlParameter("@OldOrderByValue",SqlDbType.NVarChar,10),
|
|
new SqlParameter("@NewOrderByValue",SqlDbType.NVarChar,10),
|
|
new SqlParameter("@FeildName",SqlDbType.NVarChar,50),
|
|
new SqlParameter("@TableName",SqlDbType.NVarChar,50),
|
|
new SqlParameter("@Where",SqlDbType.NVarChar,500)
|
|
};
|
|
//設定參數值
|
|
UpdataRow[0].Value = model.OldOrderByValue;
|
|
UpdataRow[1].Value = model.OrderByValue;
|
|
UpdataRow[2].Value = "OrderByValue";
|
|
UpdataRow[3].Value = "OTB_SYS_Departments";
|
|
UpdataRow[4].Value = "ParentDepartmentID = '" + model.ParentDepartmentID + "' ";
|
|
|
|
o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
|
|
o_CommandInfo.CommandText = strSql2.ToString();
|
|
o_CommandInfo.Parameters = UpdataRow;
|
|
lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
|
|
}
|
|
else
|
|
{
|
|
//有異動模組
|
|
//修改新模組的排序
|
|
SqlParameter[] parametersChangeOrder = {
|
|
new SqlParameter("@OldOrderByValue", SqlDbType.NVarChar,10),
|
|
new SqlParameter("@NewOrderByValue", SqlDbType.NVarChar,10),
|
|
new SqlParameter("@FeildName", SqlDbType.NVarChar,50),
|
|
new SqlParameter("@TableName", SqlDbType.NVarChar,50),
|
|
new SqlParameter("@Where", SqlDbType.NVarChar,500)};
|
|
parametersChangeOrder[0].Value = model.NewModuleMaxNo;
|
|
parametersChangeOrder[1].Value = model.OrderByValue;
|
|
parametersChangeOrder[2].Value = "OrderByValue";
|
|
parametersChangeOrder[3].Value = "OTB_SYS_Departments";
|
|
parametersChangeOrder[4].Value = "ParentDepartmentID = '" + model.ParentDepartmentID + "'";
|
|
o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
|
|
o_CommandInfo.CommandText = strSql2.ToString();
|
|
o_CommandInfo.Parameters = parametersChangeOrder;
|
|
lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
|
|
|
|
//修改舊模組的排序
|
|
SqlParameter[] parametersChangeOrderOld = {
|
|
new SqlParameter("@OldOrderByValue", SqlDbType.NVarChar,10),
|
|
new SqlParameter("@NewOrderByValue", SqlDbType.NVarChar,10),
|
|
new SqlParameter("@FeildName", SqlDbType.NVarChar,50),
|
|
new SqlParameter("@TableName", SqlDbType.NVarChar,50),
|
|
new SqlParameter("@Where", SqlDbType.NVarChar,500)};
|
|
parametersChangeOrderOld[0].Value = model.OldOrderByValue;
|
|
parametersChangeOrderOld[1].Value = model.OldModuleMaxNo;
|
|
parametersChangeOrderOld[2].Value = "OrderByValue";
|
|
parametersChangeOrderOld[3].Value = "OTB_SYS_Departments";
|
|
parametersChangeOrderOld[4].Value = "ParentDepartmentID = '" + model.ModuleIDOld + "' ";
|
|
o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
|
|
o_CommandInfo.CommandText = strSql2.ToString();
|
|
o_CommandInfo.Parameters = parametersChangeOrderOld;
|
|
lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
|
|
}
|
|
|
|
o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表新增,雖然參數名稱相同,但是經過new以後就是新的對象
|
|
o_CommandInfo.CommandText = strSql.ToString();
|
|
o_CommandInfo.Parameters = parameters;
|
|
lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
|
|
|
|
if (DbHelperSQL.ExecuteSqlTran(lstCommandInfo) > 0)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除一条数据
|
|
/// </summary>
|
|
public bool Delete(string PID, string DepartmentID, string OldOrderByValue, string OrderByValue)
|
|
{
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
|
strSql.Append(" UPDATE dbo.OTB_SYS_Departments ");
|
|
strSql.Append(" SET [DelStatus] = 'Y' ");
|
|
strSql.Append(" WHERE DepartmentID=@DepartmentID ");
|
|
SqlParameter[] parameters = {
|
|
new SqlParameter("@DepartmentID", SqlDbType.VarChar,10) };
|
|
parameters[0].Value = DepartmentID;
|
|
List<CommandInfo> lstCommandInfo = new List<CommandInfo>(); //定義事物執行的所有SQL
|
|
StringBuilder strSql2 = new StringBuilder();
|
|
strSql2.Append(" DECLARE @strSQL NVARCHAR(1000) ");
|
|
strSql2.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
|
|
strSql2.Append(" BEGIN "); //由小變大,OLD<-1<=NEW
|
|
strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
|
|
strSql2.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
|
|
strSql2.Append(" IF @Where <>'' ");
|
|
strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql2.Append(" print @strSQL ");
|
|
strSql2.Append(" exec sp_executesql @strSQL ");
|
|
strSql2.Append(" END ");
|
|
strSql2.Append(" ELSE ");
|
|
strSql2.Append(" BEGIN "); //由大變小,@NewOrderByValue<=+1<@OldOrderByValue
|
|
strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
|
|
strSql2.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
|
|
strSql2.Append(" IF @Where <>'' ");
|
|
strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql2.Append(" print @strSQL ");
|
|
strSql2.Append(" exec sp_executesql @strSQL ");
|
|
strSql2.Append(" END ");
|
|
SqlParameter[] parametersChangeOrder = {
|
|
new SqlParameter("@OldOrderByValue", SqlDbType.NVarChar,10),
|
|
new SqlParameter("@NewOrderByValue", SqlDbType.NVarChar,10),
|
|
new SqlParameter("@FeildName", SqlDbType.NVarChar,50),
|
|
new SqlParameter("@TableName", SqlDbType.NVarChar,50),
|
|
new SqlParameter("@Where", SqlDbType.NVarChar,500)};
|
|
parametersChangeOrder[0].Value = OldOrderByValue;
|
|
parametersChangeOrder[1].Value = OrderByValue;
|
|
parametersChangeOrder[2].Value = "OrderByValue";
|
|
parametersChangeOrder[3].Value = "OTB_SYS_Departments";
|
|
parametersChangeOrder[4].Value = "ISNULL(DelStatus,'N') = 'N' and ParentDepartmentID=" + "'" + PID + "'";
|
|
CommandInfo o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
|
|
o_CommandInfo.CommandText = strSql2.ToString();
|
|
o_CommandInfo.Parameters = parametersChangeOrder;
|
|
lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
|
|
|
|
o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表新增,雖然參數名稱相同,但是經過new以後就是新的對象
|
|
o_CommandInfo.CommandText = strSql.ToString();
|
|
o_CommandInfo.Parameters = parameters;
|
|
lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
|
|
if (DbHelperSQL.ExecuteSqlTran(lstCommandInfo) > 0)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 批量删除数据
|
|
/// </summary>
|
|
public bool DeleteList(string DepartmentIDlist)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("delete from OTB_SYS_Departments ");
|
|
strSql.Append(" where DepartmentID in (" + DepartmentIDlist + ") ");
|
|
int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
|
|
if (rows > 0)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 得到一个对象实体
|
|
/// </summary>
|
|
public OT.Model.OTB_SYS_Departments GetModel(string DepartmentID)
|
|
{
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select top 1 DepartmentID,DepartmentName,DepartmentShortName,ChiefOfDepartmentID,LevelOfDepartment,NameOfLevel,ParentDepartmentID,OrderByValue,Effective,Memo,CreateUser,CreateDate,ModifyUser,ModifyDate from OTB_SYS_Departments ");
|
|
strSql.Append(" where DepartmentID=@DepartmentID ");
|
|
SqlParameter[] parameters = {
|
|
new SqlParameter("@DepartmentID", SqlDbType.VarChar,10) };
|
|
parameters[0].Value = DepartmentID;
|
|
|
|
OT.Model.OTB_SYS_Departments model = new OT.Model.OTB_SYS_Departments();
|
|
DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
if (ds.Tables[0].Rows[0]["DepartmentID"] != null && ds.Tables[0].Rows[0]["DepartmentID"].ToString() != "")
|
|
{
|
|
model.DepartmentID = ds.Tables[0].Rows[0]["DepartmentID"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["DepartmentName"] != null && ds.Tables[0].Rows[0]["DepartmentName"].ToString() != "")
|
|
{
|
|
model.DepartmentName = ds.Tables[0].Rows[0]["DepartmentName"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["DepartmentShortName"] != null && ds.Tables[0].Rows[0]["DepartmentShortName"].ToString() != "")
|
|
{
|
|
model.DepartmentShortName = ds.Tables[0].Rows[0]["DepartmentShortName"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ChiefOfDepartmentID"] != null && ds.Tables[0].Rows[0]["ChiefOfDepartmentID"].ToString() != "")
|
|
{
|
|
model.ChiefOfDepartmentID = ds.Tables[0].Rows[0]["ChiefOfDepartmentID"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["LevelOfDepartment"] != null && ds.Tables[0].Rows[0]["LevelOfDepartment"].ToString() != "")
|
|
{
|
|
model.LevelOfDepartment = int.Parse(ds.Tables[0].Rows[0]["LevelOfDepartment"].ToString());
|
|
}
|
|
if (ds.Tables[0].Rows[0]["NameOfLevel"] != null && ds.Tables[0].Rows[0]["NameOfLevel"].ToString() != "")
|
|
{
|
|
model.NameOfLevel = ds.Tables[0].Rows[0]["NameOfLevel"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ParentDepartmentID"] != null && ds.Tables[0].Rows[0]["ParentDepartmentID"].ToString() != "")
|
|
{
|
|
model.ParentDepartmentID = ds.Tables[0].Rows[0]["ParentDepartmentID"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["OrderByValue"] != null && ds.Tables[0].Rows[0]["OrderByValue"].ToString() != "")
|
|
{
|
|
model.OrderByValue = int.Parse(ds.Tables[0].Rows[0]["OrderByValue"].ToString());
|
|
}
|
|
if (ds.Tables[0].Rows[0]["Effective"] != null && ds.Tables[0].Rows[0]["Effective"].ToString() != "")
|
|
{
|
|
model.Effective = ds.Tables[0].Rows[0]["Effective"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["Memo"] != null && ds.Tables[0].Rows[0]["Memo"].ToString() != "")
|
|
{
|
|
model.Memo = ds.Tables[0].Rows[0]["Memo"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["CreateUser"] != null && ds.Tables[0].Rows[0]["CreateUser"].ToString() != "")
|
|
{
|
|
model.CreateUser = ds.Tables[0].Rows[0]["CreateUser"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["CreateDate"] != null && ds.Tables[0].Rows[0]["CreateDate"].ToString() != "")
|
|
{
|
|
model.CreateDate = DateTime.Parse(ds.Tables[0].Rows[0]["CreateDate"].ToString());
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ModifyUser"] != null && ds.Tables[0].Rows[0]["ModifyUser"].ToString() != "")
|
|
{
|
|
model.ModifyUser = ds.Tables[0].Rows[0]["ModifyUser"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ModifyDate"] != null && ds.Tables[0].Rows[0]["ModifyDate"].ToString() != "")
|
|
{
|
|
model.ModifyDate = DateTime.Parse(ds.Tables[0].Rows[0]["ModifyDate"].ToString());
|
|
}
|
|
return model;
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 獲得資料列表
|
|
/// </summary>
|
|
public DataSet GetList(int StartRecordIndex, int EndRecordIndex, string DepartmentID, string DepartmentName, string Effective, string SortExpression)
|
|
{
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append(" SELECT ");
|
|
strSql.Append(" RowId ");
|
|
strSql.Append(" ,DepartmentID ");
|
|
strSql.Append(" ,DepartmentName ");
|
|
strSql.Append(" ,DepartmentShortName ");
|
|
strSql.Append(" ,ChiefOfDepartmentID ");
|
|
strSql.Append(" ,Effective ");
|
|
strSql.Append(" ,OrderByValue ");
|
|
strSql.Append(" ,ParentDepartmentID ");
|
|
strSql.Append(" ,(SELECT COUNT(0) FROM [OTB_SYS_Departments] WHERE ParentDepartmentID=AA.ParentDepartmentID ) AS ClassCount ");
|
|
strSql.Append(" FROM ");
|
|
strSql.Append(" ( ");
|
|
strSql.Append(" SELECT ");
|
|
strSql.Append(" CASE @SortExpression ");
|
|
strSql.Append(" WHEN N'DepartmentID' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY a.DepartmentID)) ");
|
|
strSql.Append(" WHEN N'DepartmentID DESC' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY a.DepartmentID DESC)) ");
|
|
strSql.Append(" WHEN N'DepartmentName' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY DepartmentName)) ");
|
|
strSql.Append(" WHEN N'DepartmentName DESC' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY DepartmentName DESC)) ");
|
|
strSql.Append(" WHEN N'DepartmentShortName' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY DepartmentShortName)) ");
|
|
strSql.Append(" WHEN N'DepartmentShortName DESC' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY DepartmentShortName DESC)) ");
|
|
strSql.Append(" WHEN N'ChiefOfDepartmentID' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY MS.MemberName)) ");
|
|
strSql.Append(" WHEN N'ChiefOfDepartmentID DESC' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY MS.MemberName DESC)) ");
|
|
strSql.Append(" WHEN N'Effective' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY a.Effective )) ");
|
|
strSql.Append(" WHEN N'Effective DESC' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY a.Effective DESC)) ");
|
|
strSql.Append(" WHEN N'OrderByValue' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY OrderByValue)) ");
|
|
strSql.Append(" WHEN N'OrderByValue DESC' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY OrderByValue DESC)) ");
|
|
strSql.Append(" ELSE ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(order BY ParentDepartmentID,OrderByValue)) ");
|
|
strSql.Append(" END AS RowId ");
|
|
strSql.Append(" ,a.DepartmentID ");
|
|
strSql.Append(" ,DepartmentName ");
|
|
strSql.Append(" ,DepartmentShortName ");
|
|
strSql.Append(" ,MS.MemberName as ChiefOfDepartmentID ");
|
|
strSql.Append(" ,a.Effective ");
|
|
strSql.Append(" ,OrderByValue ");
|
|
strSql.Append(" ,a.ParentDepartmentID ");
|
|
strSql.Append(" FROM [OTB_SYS_Departments] AS a LEFT JOIN dbo.OTB_SYS_Members AS MS ON a.ChiefOfDepartmentID = MS.MemberID ");
|
|
strSql.Append(" WHERE ");
|
|
strSql.Append(" (a.DepartmentID LIKE @DepartmentID OR @DepartmentID IS NULL OR @DepartmentID='%%') ");
|
|
strSql.Append(" AND (DepartmentName LIKE @DepartmentName OR @DepartmentName IS NULL OR @DepartmentName='%%') ");
|
|
strSql.Append(" AND (a.Effective = @Effective OR @Effective IS NULL OR @Effective='') ");
|
|
strSql.Append(" AND DelStatus='N' ");
|
|
strSql.Append(" ) AS AA ");
|
|
strSql.Append(" WHERE AA.RowId>=@StartRecordIndex AND AA.RowId<=@EndRecordIndex ");
|
|
strSql.Append(" ORDER BY RowId ");
|
|
SqlParameter[] parameters = {
|
|
new SqlParameter("@StartRecordIndex", SqlDbType.Int)
|
|
,new SqlParameter("@EndRecordIndex", SqlDbType.Int)
|
|
,new SqlParameter("@DepartmentID", SqlDbType.NVarChar,10)
|
|
,new SqlParameter("@DepartmentName", SqlDbType.NVarChar,200)
|
|
,new SqlParameter("@Effective", SqlDbType.Char,1)
|
|
,new SqlParameter("@SortExpression", SqlDbType.NVarChar,500)
|
|
};
|
|
parameters[0].Value = StartRecordIndex;
|
|
parameters[1].Value = EndRecordIndex;
|
|
parameters[2].Value = "%" + DepartmentID + "%";
|
|
parameters[3].Value = "%" + DepartmentName + "%";
|
|
parameters[4].Value = Effective;
|
|
parameters[5].Value = SortExpression;
|
|
return DbHelperSQL.Query(strSql.ToString(), parameters);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 獲得資料總筆數
|
|
/// </summary>
|
|
public int GetListCount(string DepartmentID, string DepartmentName, string Effective)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append(" SELECT COUNT(0) FROM dbo.OTB_SYS_Departments AS tb LEFT JOIN dbo.OTB_SYS_Members AS MS ON tb.ChiefOfDepartmentID = MS.MemberID ");
|
|
strSql.Append(" WHERE ");
|
|
strSql.Append(" (tb.DepartmentID LIKE @DepartmentID OR @DepartmentID='%%') ");
|
|
strSql.Append(" AND (tb.DepartmentName LIKE @DepartmentName OR @DepartmentName='%%' ) ");
|
|
strSql.Append(" AND (tb.Effective = @Effective OR @Effective='' OR @Effective IS NULL) ");
|
|
strSql.Append(" AND DelStatus='N' ");
|
|
SqlParameter[] parameters = {
|
|
new SqlParameter("@DepartmentID", SqlDbType.NVarChar,10)
|
|
,new SqlParameter("@DepartmentName", SqlDbType.NVarChar,50)
|
|
,new SqlParameter("@Effective", SqlDbType.Char,1)
|
|
};
|
|
|
|
parameters[0].Value = "%" + DepartmentID + "%";
|
|
parameters[1].Value = "%" + DepartmentName + "%";
|
|
parameters[2].Value = Effective;
|
|
return (int)DbHelperSQL.GetSingle(strSql.ToString(), parameters);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 獲得資料列表
|
|
/// </summary>
|
|
public DataSet GetParentID(string DepartmentID)
|
|
{
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
|
strSql.Append(" WITH ViewList ( DepartmentID, ParentDepartmentID, Level, AccountNameSort, DelStatus, OrderByValue ) ");
|
|
strSql.Append(" AS ( SELECT DepartmentID , ");
|
|
strSql.Append(" ParentDepartmentID , ");
|
|
strSql.Append(" 0 , ");
|
|
strSql.Append(" CONVERT(NVARCHAR(200), DepartmentName) , ");
|
|
strSql.Append(" DelStatus , ");
|
|
strSql.Append(" CAST(OrderByValue AS VARCHAR(MAX)) AS OrderByValue ");
|
|
strSql.Append(" FROM OTB_SYS_Departments ");
|
|
strSql.Append(" WHERE ( ParentDepartmentID IS NULL ");
|
|
strSql.Append(" OR ParentDepartmentID = '' ");
|
|
strSql.Append(" ) ");
|
|
strSql.Append(" AND DelStatus = 'N' ");
|
|
strSql.Append(" ");
|
|
strSql.Append(" AND Effective = 'Y' ");
|
|
strSql.Append(" UNION ALL ");
|
|
strSql.Append(" SELECT P.DepartmentID , ");
|
|
strSql.Append(" ");
|
|
strSql.Append(" P.ParentDepartmentID , ");
|
|
strSql.Append(" B.Level + 1 , ");
|
|
strSql.Append(" CONVERT(NVARCHAR(200), B.AccountNameSort + '-' ");
|
|
strSql.Append(" + P.DepartmentName) , ");
|
|
strSql.Append(" P.DelStatus , ");
|
|
strSql.Append(" CAST(CAST(B.OrderByValue AS VARCHAR(8)) ");
|
|
strSql.Append(" + CAST(P.OrderByValue AS VARCHAR(8)) AS VARCHAR(MAX)) AS OrderByValue ");
|
|
strSql.Append(" FROM OTB_SYS_Departments P , ");
|
|
strSql.Append(" ViewList B ");
|
|
strSql.Append(" WHERE P.ParentDepartmentID = B.DepartmentID ");
|
|
strSql.Append(" AND B.DelStatus = 'N' ");
|
|
strSql.Append(" AND Effective = 'Y' ");
|
|
strSql.Append(" AND P.DelStatus = 'N' ");
|
|
strSql.Append(" ");
|
|
strSql.Append(" AND p.ParentDepartmentID <> p.DepartmentID ");
|
|
strSql.Append(" ), ");
|
|
strSql.Append(" ViewList1 ( DepartmentID ) ");
|
|
strSql.Append(" AS ( SELECT DepartmentID ");
|
|
strSql.Append(" FROM OTB_SYS_Departments ");
|
|
strSql.Append(" WHERE DepartmentID = @DepartmentID ");
|
|
strSql.Append(" ");
|
|
strSql.Append(" UNION ALL ");
|
|
strSql.Append(" SELECT P.DepartmentID ");
|
|
strSql.Append(" FROM OTB_SYS_Departments P , ");
|
|
strSql.Append(" ViewList1 B ");
|
|
strSql.Append(" WHERE P.ParentDepartmentID = B.DepartmentID ");
|
|
strSql.Append(" AND p.ParentDepartmentID <> p.DepartmentID ");
|
|
strSql.Append(" ) ");
|
|
strSql.Append(" SELECT * ");
|
|
strSql.Append(" FROM ViewList ");
|
|
strSql.Append(" WHERE DepartmentID NOT IN ( SELECT DepartmentID ");
|
|
strSql.Append(" FROM ViewList1 ) ");
|
|
strSql.Append(" ORDER BY OrderByValue ");
|
|
|
|
|
|
SqlParameter[] parameters = {
|
|
new SqlParameter("@DepartmentID", SqlDbType.NVarChar,10)
|
|
|
|
};
|
|
|
|
parameters[0].Value = DepartmentID;
|
|
|
|
return DbHelperSQL.Query(strSql.ToString(), parameters);
|
|
}
|
|
|
|
|
|
public int GetDeptCountByParent(string DepartmentID, string ParentDepartmentID)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
|
|
|
strSql.Append(" SELECT COUNT(0)FROM dbo.OTB_SYS_Departments ");
|
|
strSql.Append(" WHERE DepartmentID<>@DepartmentID ");
|
|
strSql.Append(" AND DelStatus='N' ");
|
|
strSql.Append(" AND (ParentDepartmentID = @ParentDepartmentID OR @ParentDepartmentID='') ");
|
|
SqlParameter[] parameters = {
|
|
new SqlParameter("@DepartmentID", SqlDbType.NVarChar,10)
|
|
,new SqlParameter("@ParentDepartmentID", SqlDbType.NVarChar,10)
|
|
};
|
|
parameters[0].Value = DepartmentID;
|
|
parameters[1].Value = ParentDepartmentID;
|
|
return (int)DbHelperSQL.GetSingle(strSql.ToString(), parameters);
|
|
}
|
|
|
|
#endregion Method
|
|
}
|
|
}
|
|
|