You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

171 lines
6.7 KiB
C#

using System;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Linq;
using System.Data.SqlClient;
using System.Collections.Generic;
using NetLibrary;
using NetLibrary.Data;
using NetLibrary.ReportPrint;
using TradeModel;
namespace TradeData
{
public class JC_BaseCodeService
{
#region 读取模块所属设置列表
public static List<JC_BaseCode> GetJC_BaseCode(int CompanyID, string ModuleName)
{
string tsql = @"
select KeyName,BaseCodeName,IsSys from JC_BaseCode where (CompanyID=0 or CompanyID=@CompanyID) and IsUse=1 and ModuleName=@ModuleName order by Sort
";
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetSqlStringCommand(tsql);
db.AddInParameter(cmd, "@CompanyID", DbType.Int32, CompanyID);
db.AddInParameter(cmd, "@ModuleName", DbType.String, ModuleName);
DataTable tb=db.ExecuteDataTable(cmd);
return tb.ToList<JC_BaseCode>();
}
#endregion
#region 读取单项设置
public static List<JC_BaseCodeDetail> GetJC_BaseCodeDetail(int CompanyID, string KeyName)
{
string tsql = @"
select * from JC_BaseCodeDetail
where CompanyID=@CompanyID and KeyName=@KeyName and IsUse=1
order by SortNo
";
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetSqlStringCommand(tsql);
db.AddInParameter(cmd, "@CompanyID", DbType.Int32, CompanyID);
db.AddInParameter(cmd, "@KeyName", DbType.String, KeyName);
DataTable tb = db.ExecuteDataTable(cmd);
//if (tb.Rows.Count == 0)
//{
// tsql = "select * from JC_BaseCodeDetail where KeyName=@KeyName and IsUse=1 order by SortNo";
// cmd = db.GetSqlStringCommand(tsql);
// db.AddInParameter(cmd, "@KeyName", DbType.String, KeyName);
// tb = db.ExecuteDataTable(cmd);
//}
return tb.ToList<JC_BaseCodeDetail>();
}
#endregion
#region 读取平台类型
public static List<JC_BaseCodeDetail> GetJC_BaseCodePTLX(int CompanyID, string KeyName)
{
string tsql = @"
select a.*,UseState=case when b.Code is null then 'false' else 'true' end from JC_BaseCodeDetail a
left join JC_BaseCodeDetail b on a.sortno=b.SortNo and b.KeyName=@KeyName and b.CompanyId=@CompanyID
where a.KeyName=@KeyName and a.CompanyId=0
order by a.SortNo
";
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetSqlStringCommand(tsql);
db.AddInParameter(cmd, "@CompanyID", DbType.Int32, CompanyID);
db.AddInParameter(cmd, "@KeyName", DbType.String, KeyName);
DataTable tb = db.ExecuteDataTable(cmd);
return tb.ToList<JC_BaseCodeDetail>();
}
#endregion
#region 删除
public static void DeleteCodeDetail(int Code)
{
string tsql = @"
delete from JC_BaseCodeDetail where Code=@Code
";
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetSqlStringCommand(tsql);
db.AddInParameter(cmd, "@Code", DbType.Int32, Code);
db.ExecuteNonQuery(cmd);
}
#endregion
#region 删除
public void DeleteKeyName(int CompanyId,string KeyName)
{
string tsql = @"
delete from JC_BaseCodeDetail where CompanyId=@CompanyId and KeyName=@KeyName
";
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetSqlStringCommand(tsql);
db.AddInParameter(cmd, "@CompanyId", DbType.Int32, CompanyId);
db.AddInParameter(cmd, "@KeyName", DbType.String, KeyName);
db.ExecuteNonQuery(cmd);
}
#endregion
#region 保存
public static void Save(int CompanyID, string KeyName, List<JC_BaseCodeDetail> ListModel)
{
string tsql= @"
if @Code>0
begin
Update [JC_BaseCodeDetail] set [Name]=@Name,[SortNo]=@SortNo where Code=@Code
end
else
begin
INSERT INTO [JC_BaseCodeDetail](CompanyID,[KeyName],[Name],[IsUse],[SortNo])values(@CompanyID,@KeyName,@Name,1,@SortNo)
set @Code=SCOPE_IDENTITY()
end
select @Code
";
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetSqlStringCommand(tsql);
string ids = "";
foreach (var item in ListModel)
{
if (item.CompanyId == 0) continue;
cmd.Parameters.Clear();
db.AddInParameter(cmd, "@Code", DbType.Int32, item.Code);
db.AddInParameter(cmd,"@KeyName", DbType.String,KeyName);
db.AddInParameter(cmd,"@Name", DbType.String,item.Name);
db.AddInParameter(cmd,"@IsUse", DbType.Int32,item.IsUse);
db.AddInParameter(cmd,"@SortNo", DbType.Int32,item.SortNo);
db.AddInParameter(cmd, "@CompanyID", DbType.Int32, CompanyID);
item.Code=Convert.ToInt32(db.ExecuteScalar(cmd));
ids += "," + item.Code;
}
if (string.IsNullOrEmpty(ids)==false)
{
ids = ids.Substring(1);
tsql = "update JC_BaseCodeDetail set IsUse=0 where CompanyID=@CompanyID and KeyName=@KeyName and Code not in (" + ids + ")";
cmd = db.GetSqlStringCommand(tsql);
db.AddInParameter(cmd, "@CompanyID", DbType.Int32, CompanyID);
db.AddInParameter(cmd, "@KeyName", DbType.String, KeyName);
db.ExecuteNonQuery(cmd);
}
}
#endregion
#region 保存
public int SaveBaseCode(JC_BaseCodeDetail Model)
{
string tsql = @"
if @Code>0
begin
Update [JC_BaseCodeDetail] set [KeyName]=@KeyName,[Name]=@Name,[IsUse]=@IsUse,[SortNo]=@SortNo,[CompanyId]=@CompanyId where Code=@Code
end
else
begin
INSERT INTO [JC_BaseCodeDetail]([KeyName],[Name],[IsUse],[SortNo],[CompanyId])values(@KeyName,@Name,@IsUse,@SortNo,@CompanyId)
set @Code=SCOPE_IDENTITY()
end
select @Code";
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetSqlStringCommand(tsql);
db.AddInParameter(cmd, "@Code", DbType.Int32, Model.Code);
db.AddInParameter(cmd, "@KeyName", DbType.String, Model.KeyName);
db.AddInParameter(cmd, "@Name", DbType.String, Model.Name);
db.AddInParameter(cmd, "@IsUse", DbType.Int32, Model.IsUse);
db.AddInParameter(cmd, "@SortNo", DbType.Int32, Model.SortNo);
db.AddInParameter(cmd, "@CompanyId", DbType.Int32, Model.CompanyId);
int a = Convert.ToInt32(db.ExecuteScalar(cmd));
return a;
}
#endregion
}
}