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 { /// /// 处理菜单模块的业务数据 /// public class ModelPartRepository : BaseRepository, IModelPartRepository { public ModelPartRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } #region 成员方法 /// /// 根据传入条件获得菜单列表数据 /// public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } /// /// 根据分页条件获取分页数据列表 /// 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 depts = dbConn.Query("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", depts); result.Add("totalCount", parameters.Get("@TotalCount")); return result; } } /// /// 根据分页条件获取分页数据列表(导出时使用) /// 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 dataList = dbConn.Query("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", dataList); result.Add("totalCount", parameters.Get("@TotalCount")); return result; } } /// /// 插入菜单数据 /// /// /// 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 dt = dbConn.Query(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; } } /// /// 插入菜单数据 /// /// /// 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 dt = dbConn.Query(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; } } /// /// 更新菜单数据 /// /// /// 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; } } /// /// 更新菜单数据 /// /// /// 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 dt = dbConn.Query(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; } } /// /// 删除菜单数据 /// /// /// 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; } } /// /// 更改状态 /// /// /// 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; } } /// /// 变更状态 /// /// 变更状态 /// 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; } } /// /// 获取下拉框菜单数据 /// /// public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } /// /// 配置集合 /// /// 数据集 public List 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 result = dbConn.Query(quernSen).ToList(); return result; } } /// ///车型集合 /// /// 数据集 public List 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 result = dbConn.Query(SqlStringBuilder.ToString()).ToList(); return result; } } /// /// 导入EXCEL时插入数据 /// /// /// public bool InsertData(List dt, string emp_id) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); List SqlStrings = new List(dt.Count); List hs = new List(dt.Count); List ModelCache = new List(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; } } /// /// 获取配置编号 /// /// 配置名称 /// 配置编号 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); } } /// /// 获取车型编号 /// /// 车型名称 /// 车型编号 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); } } /// /// 获取配置零件号 /// /// 配置名称 /// 配置的零件编号 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); } } /// /// 获取配置名称 /// /// 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(); } } /// /// 获取配置编号 /// /// 配置名称 /// 配置编号 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 成员方法 } }