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.

646 lines
28 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Dapper;
using Estsh.Core.Dapper;
using Estsh.Core.IRepositories;
using Estsh.Core.Model.ExcelModel;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repository.IRepositories;
using System.Collections;
using System.Data;
using System.Text;
/***************************************************************************************************
*
* 更新人sitong.dong
* 描述:配置管理
* 修改时间2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Repositories
{
/// <summary>
/// 处理菜单模块的业务数据
/// </summary>
public class ModelPartRepository : BaseRepository<SysModel>, IModelPartRepository
{
public ModelPartRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
#region 成员方法
/// <summary>
/// 根据传入条件获得菜单列表数据
/// </summary>
public List<SysModel> getList(string strWhere, string filedOrder)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append(" select * from dbo.sys_model ");
if (strWhere != null && !strWhere.Trim().Equals(""))
{
strSql.Append(" where enabled='Y' and model_id=" + strWhere);
}
if (filedOrder != null && !filedOrder.Trim().Equals(""))
{
strSql.Append(" order by " + filedOrder);
}
List<SysModel> result = dbConn.Query<SysModel>(strSql.ToString()).ToList();
return result;
}
}
/// <summary>
/// 根据分页条件获取分页数据列表
/// </summary>
public Hashtable getListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable result = new Hashtable();
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
parameters.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
parameters.Add("@Table", "sys_model a left join dbo.sys_model_type c on a.model_type_id=c.type_id ");
parameters.Add("@Column", "a.*, c.type_name");
parameters.Add("@OrderColumn", OrderBy);
parameters.Add("@GroupColumn", "");
parameters.Add("@PageSize", PageSize);
parameters.Add("@CurrentPage", PageIndex);
parameters.Add("@Group", 0);
parameters.Add("@Condition", strWhere);
List<SysModel> depts = dbConn.Query<SysModel>("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", depts);
result.Add("totalCount", parameters.Get<int>("@TotalCount"));
return result;
}
}
/// <summary>
/// 根据分页条件获取分页数据列表(导出时使用)
/// </summary>
public Hashtable getListByPage2(int PageSize, int PageIndex, string strWhere, string OrderBy)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable result = new Hashtable();
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
parameters.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
parameters.Add("@Table", "sys_model a left join dbo.sys_model_type c on a.model_type_id=c.type_id ");
parameters.Add("@Column", "a.*, c.type_name ");
parameters.Add("@OrderColumn", OrderBy);
parameters.Add("@GroupColumn", "");
parameters.Add("@PageSize", PageSize);
parameters.Add("@CurrentPage", PageIndex);
parameters.Add("@Group", 0);
parameters.Add("@Condition", strWhere);
List<ModelPart> dataList = dbConn.Query<ModelPart>("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", dataList);
result.Add("totalCount", parameters.Get<int>("@TotalCount"));
return result;
}
}
/// <summary>
/// 插入菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int saveModelPart(SysModel htParams)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select top 1 1 from dbo.sys_model WHERE model_name = @modelName ");
List<SysModel> dt = dbConn.Query<SysModel>(SqlStringBuilder.ToString(), htParams).ToList();
if (dt == null || dt.Count < 1)
{
//lvf 2021-06-23 修复语法错误
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO sys_model (model_code ");
SqlStringBuilder.Append(" , model_type ");
SqlStringBuilder.Append(" ,model_name ");
SqlStringBuilder.Append(" ,model_alias ");
SqlStringBuilder.Append(" ,model_desc ");
SqlStringBuilder.Append(" ,model_type_id ");
SqlStringBuilder.Append(" ,pdline_1 ");
SqlStringBuilder.Append(" , create_userid ");
SqlStringBuilder.Append(" , create_time ");
SqlStringBuilder.Append(" , enabled ");
SqlStringBuilder.Append(" ,pdline_2) ");
SqlStringBuilder.Append(" VALUES(@modelCode ");
SqlStringBuilder.Append(" , @modelType ");
SqlStringBuilder.Append(" ,@modelName");
SqlStringBuilder.Append(" ,@modelAlias");
SqlStringBuilder.Append(" ,@modelDesc");
SqlStringBuilder.Append(" ,@modelTypeId");
SqlStringBuilder.Append(" ,@pdline1");
SqlStringBuilder.Append(" , @createUserid ");
SqlStringBuilder.Append(" , CONVERT(varchar(50), GETDATE(), 21)");
SqlStringBuilder.Append(" ,'Y'");
SqlStringBuilder.Append(" ,@pdline2)");
int result = dbConn.Execute(SqlStringBuilder.ToString(), htParams);
return result;
}
return 0;
}
}
/// <summary>
/// 插入菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int saveModelPart_Sys_part(SysPart htParams)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select top 1 1 from dbo.sys_part where part_no = @modelName ");
List<SysPart> dt = dbConn.Query<SysPart>(SqlStringBuilder.ToString(), htParams).ToList();
if (dt == null || dt.Count < 1)
{
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO sys_part (part_no ");
SqlStringBuilder.Append(" , part_spec ");
SqlStringBuilder.Append(" ,model_id ");
SqlStringBuilder.Append(" ,part_type ");
SqlStringBuilder.Append(" , enabled ");
SqlStringBuilder.Append(" ,create_userid ");
SqlStringBuilder.Append(" ,create_time");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append(" VALUES(@modelName ");
SqlStringBuilder.Append(" , @modelName ");
SqlStringBuilder.Append(" ,(select model_id from dbo.sys_model where model_name=@modelName)");
SqlStringBuilder.Append(" ,2");
SqlStringBuilder.Append(" ,'Y'");
SqlStringBuilder.Append(" , @createUserid ");
SqlStringBuilder.Append(" ,CONVERT(varchar(50), GETDATE(), 21)");
SqlStringBuilder.Append(" )");
int result = dbConn.Execute(SqlStringBuilder.ToString(), htParams);
return result;
}
return 0;
}
}
/// <summary>
/// 更新菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int updateModelPart(SysModel htParams)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update sys_model ");
SqlStringBuilder.Append("SET model_code=@modelCode ");
SqlStringBuilder.Append(" , model_type=@modelType ");
SqlStringBuilder.Append(" , model_name=@modelName ");
SqlStringBuilder.Append(" , model_alias=@modelAlias ");
SqlStringBuilder.Append(" , model_desc=@modelDesc ");
SqlStringBuilder.Append(" , model_type_id=@modelTypeId ");
SqlStringBuilder.Append(" , pdline_1=@pdline1 ");
SqlStringBuilder.Append(" , pdline_2=@pdline2 ");
SqlStringBuilder.Append(" ,update_userid = @updateUserId ");
SqlStringBuilder.Append(" ,update_time = CONVERT(varchar(50), GETDATE(), 21)");
SqlStringBuilder.Append("WHERE model_id=@modelId ");
int result = dbConn.Execute(SqlStringBuilder.ToString(), htParams);
return result;
}
}
/// <summary>
/// 更新菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int updateModelPart_Sys_part(SysPart htParams)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select top 1 1 from dbo.sys_part where model_id=@modelId ");
List<SysPart> dt = dbConn.Query<SysPart>(SqlStringBuilder.ToString(), htParams).ToList();
if (dt == null || dt.Count < 1)
{
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO sys_part (part_no ");
SqlStringBuilder.Append(" , part_spec ");
SqlStringBuilder.Append(" ,model_id ");
SqlStringBuilder.Append(" ,part_type ");
SqlStringBuilder.Append(" , enabled ");
SqlStringBuilder.Append(" , create_userid ");
SqlStringBuilder.Append(" ,create_time");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append(" VALUES(@modelName ");
SqlStringBuilder.Append(" , @modelName ");
SqlStringBuilder.Append(" ,(select model_id from dbo.sys_model where model_name=@modelName)");
SqlStringBuilder.Append(" ,2");
SqlStringBuilder.Append(" , 'Y' ");
SqlStringBuilder.Append(" , @createUserid ");
SqlStringBuilder.Append(" ,CONVERT(varchar(50), GETDATE(), 21)");
SqlStringBuilder.Append(" )");
}
else
{
SqlStringBuilder.Append("update dbo.sys_part set part_no=@modelName,part_spec=@modelName ,update_userid = @updateUserId,update_time=CONVERT(varchar(50), GETDATE(), 21) where model_id=@modelId and part_type=2 ");
}
int result = dbConn.Execute(SqlStringBuilder.ToString(), htParams);
return result;
}
}
/// <summary>
/// 删除菜单数据
/// </summary>
/// <param name="ruid"></param>
/// <returns></returns>
public int deleteModelPart(String model_id)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update sys_model set Enabled='N' where model_id in (" + model_id + ")";
int result = dbConn.Execute(delStr);
return result;
}
}
//启用
public int EnableData(String ids)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update sys_model set Enabled='Y' WHERE model_id in (" + ids + ")";
int result = dbConn.Execute(delStr);
return result;
}
}
//禁用
public int DisableData(String ids)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update sys_model set Enabled='N' WHERE model_id in (" + ids + ")";
int result = dbConn.Execute(delStr);
return result;
}
}
/// <summary>
/// 更改状态
/// </summary>
/// <param name="ruid"></param>
/// <returns></returns>
public int onState(String model_id, String enabled,string userID)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
if (enabled == "Y")
{
enabled = "N";
}
else if (enabled == "N")
{
enabled = "Y";
}
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@model_id", model_id);
htparams.Add("@enabled", enabled);
htparams.Add("@updateUserId", userID);
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update sys_model ");
SqlStringBuilder.Append("SET enabled=@enabled ");
SqlStringBuilder.Append(" ,update_userid = @updateUserId ");
SqlStringBuilder.Append(" ,update_time = CONVERT(varchar(50), GETDATE(), 21)");
SqlStringBuilder.Append("WHERE model_id=@model_id ");
SqlStringBuilder.Append("UPDATE dbo.sys_part SET ");
SqlStringBuilder.Append("update_userid = @updateUserId,update_time=CONVERT(varchar(50), GETDATE(), 21), [enabled]=@enabled ");
SqlStringBuilder.Append("WHERE model_id=@model_id and part_type=2 ");
int result = dbConn.Execute(SqlStringBuilder.ToString(), htparams);
return result;
}
}
/// <summary>
/// 变更状态
/// </summary>
/// <param name="model_id">变更状态</param>
/// <returns></returns>
public int onState(String model_id,string userID)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@model_id", model_id);
htparams.Add("@updateUserId", userID);
String delStr = "update sys_part set Enabled='N' ,update_userid = @updateUserId ,update_time=CONVERT(varchar(50), GETDATE(), 21) where part_type=2 and model_id=@model_id";
int result = dbConn.Execute(delStr, htparams);
return result;
}
}
/// <summary>
/// 获取下拉框菜单数据
/// </summary>
/// <returns></returns>
public List<KeyValueResult> getSelectModelPart()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("select type_id as [value],type_name as [key] from dbo.sys_model_type where enabled='Y'");
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
return result;
}
}
/// <summary>
/// 配置集合
/// </summary>
/// <returns>数据集</returns>
public List<KeyValueResult> GetModelName(string typeName)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string quernSen = "";
if (string.IsNullOrEmpty(typeName))
{
quernSen = @" SELECT DISTINCT model_name as [value],model_name as [key] FROM dbo.sys_model WHERE enabled = 'Y' ";
}
else
{
quernSen = @" SELECT DISTINCT model_name as [value],model_name as [key] FROM dbo.sys_model a JOIN dbo.sys_model_type b ON a.model_type_id = b.type_id WHERE a.enabled = 'Y' AND b.type_name = '" + typeName + "' ";
}
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(quernSen).ToList();
return result;
}
}
/// <summary>
///车型集合
/// </summary>
/// <returns>数据集</returns>
public List<KeyValueResult> GetTypeName()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select type_name as [value],type_name as [key] from sys_model_type where enabled='Y' ");
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(SqlStringBuilder.ToString()).ToList();
return result;
}
}
/// <summary>
/// 导入EXCEL时插入数据
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public bool InsertData(List<ModelPart> dt, string emp_id)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
List<String> SqlStrings = new List<string>(dt.Count);
List<DynamicParameters> hs = new List<DynamicParameters>(dt.Count);
List<string> ModelCache = new List<string>(dt.Count);
for (int i = 0; i < dt.Count; i++)
{
string ModelName = dt[i].ModelName.ToString().Trim();
if (string.IsNullOrEmpty(ModelName))
continue;
// 去除重复数据
if (ModelCache.Contains(ModelName))
{
continue;
}
else
{
ModelCache.Add(ModelName);
}
StringBuilder SqlStringBuilder = new StringBuilder(1024);
int ModelID = GetModelID(ModelName);
int ModelTypeID = GetModelTypeID(dt[i].ModelType.ToString().Trim());
if (ModelID == 0)
{
SqlStringBuilder.Append("insert into sys_model(model_code,model_type,enabled,model_name,model_alias, ");
SqlStringBuilder.Append("model_desc, model_type_id, create_userid,create_time,customer_id,pdline_1,pdline_2) ");
SqlStringBuilder.Append(" values( ");
SqlStringBuilder.Append("@model_code,@model_type,'Y',@model_name,@model_alias, ");
SqlStringBuilder.Append("@model_desc, @model_type_id, @emp_id,CONVERT(varchar(50), GETDATE(), 21),@customer_id,@pdline_1,@pdline_2); ");
// 如果配置零件号不存在,则重新插入
if (GetModelPartID(ModelName) == 0)
{
SqlStringBuilder.Append("insert into dbo.sys_part (part_no,part_spec,enabled,model_id,part_type,create_userid,create_time) ");
SqlStringBuilder.Append("values(@model_name,@model_name,'Y',(select model_id from dbo.sys_model where model_name=@model_name),2,@emp_id,CONVERT(varchar(50), GETDATE(), 21));");
}
}
else
{
SqlStringBuilder.Append("update dbo.sys_model set model_code=@model_code,model_type=@model_type,model_alias=@model_alias, ");
SqlStringBuilder.Append("model_desc=@model_desc,model_type_id=@model_type_id,update_userid=@emp_id, ");
SqlStringBuilder.Append("update_time=CONVERT(varchar(50), GETDATE(), 21),customer_id=@customer_id,[enabled]=@enabled,pdline_1=@pdline_1,pdline_2=@pdline_2 ");
SqlStringBuilder.Append("where model_id=@model_id;");
//删除A配置后再次新增A配置后会导致配置ID不一致
//获取数据库中当前的配置ID,如果sys_part和sys_model两表不能对应则更新model_id
string getSQLModelName = getModelName(ModelName);
ModelID = GetModelID(ModelName);
if (getSQLModelName != "0")
{
SqlStringBuilder.Append("UPDATE dbo.sys_part SET model_id=@model_id,update_userid=@emp_id, ");
SqlStringBuilder.Append("update_time=CONVERT(varchar(50), GETDATE(), 21), [enabled]=@enabled ");
SqlStringBuilder.Append("WHERE part_no =@model_name ");
}
}
DynamicParameters values = new DynamicParameters();
values.Add("@emp_id", emp_id);
values.Add("@model_id", ModelID);
values.Add("@model_type_id", ModelTypeID);
values.Add("@model_code", dt[i].ModelCode.ToString());
values.Add("@model_type", dt[i].ModelType.ToString());
values.Add("@model_name", dt[i].ModelName.ToString());
values.Add("@model_alias", dt[i].ModelAlias.ToString());
values.Add("@model_desc", dt[i].ModelDesc.ToString());
values.Add("@customer_id", dt[i].CustomerId.ToString());
values.Add("@enabled", dt[i].Enabled.ToString());
values.Add("@pdline_1", dt[i].Pdline1.ToString());
values.Add("@pdline_2", dt[i].Pdline2.ToString());
SqlStrings.Add(SqlStringBuilder.ToString());
hs.Add(values);
}
for (int i = 0; i < SqlStrings.Count; i++)
{
int result = dbConn.Execute(SqlStrings[i], hs[i]);
}
return true;
}
}
/// <summary>
/// 获取配置编号
/// </summary>
/// <param name="modelName">配置名称</param>
/// <returns>配置编号</returns>
public int GetModelID(string modelName)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = "select model_id,model_name from dbo.sys_model where model_name=@model_name order by model_name";
DynamicParameters Params = new DynamicParameters();
Params.Add("@model_name", modelName);
object obj = dbConn.ExecuteScalar(SqlString, Params);
if (obj == null)
return 0;
return Convert.ToInt32(obj);
}
}
/// <summary>
/// 获取车型编号
/// </summary>
/// <param name="modelTypeName">车型名称</param>
/// <returns>车型编号</returns>
public int GetModelTypeID(string modelTypeName)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = "select type_id,type_name from dbo.sys_model_type where type_name=@type_name order by type_name";
DynamicParameters Params = new DynamicParameters();
Params.Add("type_name", modelTypeName);
object obj = dbConn.ExecuteScalar(SqlString, Params);
if (obj == null)
return 0;
return Convert.ToInt32(obj);
}
}
/// <summary>
/// 获取配置零件号
/// </summary>
/// <param name="modelName">配置名称</param>
/// <returns>配置的零件编号</returns>
public int GetModelPartID(string modelName)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = "select part_id from dbo.sys_part where part_no=@partNo";
DynamicParameters Params = new DynamicParameters();
Params.Add("@partNo", modelName);
object obj = dbConn.ExecuteScalar(SqlString, Params);
if (obj == null)
return 0;
return Convert.ToInt32(obj);
}
}
/// <summary>
/// 获取配置名称
/// </summary>
/// <returns></returns>
public string getModelName(string modelName)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT model_name FROM dbo.sys_model ");
querySen.AppendLine("WHERE model_id = ( SELECT model_id ");
querySen.AppendLine(" FROM dbo.sys_part ");
querySen.AppendLine(" WHERE part_no = @modelName ) ");
DynamicParameters Params = new DynamicParameters();
Params.Add("@modelName", modelName);
object obj = dbConn.ExecuteScalar(querySen.ToString(), Params);
if (obj == null)
return "0";
return obj.ToString();
}
}
/// <summary>
/// 获取配置编号
/// </summary>
/// <param name="modelName">配置名称</param>
/// <returns>配置编号</returns>
public int GetModelIDFromPart(string modelName)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = "SELECT model_id FROM sys_part WHERE part_no=@model_name ";
DynamicParameters Params = new DynamicParameters();
Params.Add("@model_name", modelName);
object obj = dbConn.ExecuteScalar(SqlString, Params);
if (obj == null)
return 0;
return Convert.ToInt32(obj);
}
}
#endregion 成员方法
}
}