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 MesRouteGroupRepository : BaseRepository, IMesRouteGroupRepository { public MesRouteGroupRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } #region 成员方法 /// /// 获得菜单列表数据 /// public List getList(string strWhere, string filedOrder) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT a.group_id , "); SqlStringBuilder.Append(" a.part_no , "); SqlStringBuilder.Append(" b.part_spec , "); SqlStringBuilder.Append(" CONVERT(VARCHAR, a.create_time, 120) AS create_time , "); SqlStringBuilder.Append(" CONVERT(VARCHAR, a.update_time, 120) AS update_time "); SqlStringBuilder.Append("FROM dbo.mes_route_group_detail a "); SqlStringBuilder.Append(" LEFT JOIN sys_part b ON a.part_no = b.part_no "); if (!strWhere.Trim().Equals("")) { SqlStringBuilder.Append(" where " + strWhere); } if (filedOrder != null && !filedOrder.Trim().Equals("")) { SqlStringBuilder.Append(" order by " + filedOrder); } List result = dbConn.Query(SqlStringBuilder.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 Params = new DynamicParameters(); Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output); Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output); Params.Add("@GroupColumn", ""); Params.Add("@Table", "dbo.mes_route_group_detail a LEFT JOIN sys_part b ON a.part_no=b.part_no"); Params.Add("@Column", "a.group_id,a.part_no,b.part_spec,CONVERT(VARCHAR, a.create_time, 120) AS create_time ,CONVERT(VARCHAR, a.update_time, 120) AS update_time,a.guid"); Params.Add("@PageSize", PageSize); Params.Add("@CurrentPage", PageIndex); Params.Add("@Condition", strWhere); Params.Add("@OrderColumn", OrderBy); Params.Add("@Group", 0); List dataList = dbConn.Query("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", dataList); result.Add("totalCount", Params.Get("@TotalCount")); return result; } } /// /// 获取分页数据列表 /// public Hashtable getTableListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); Hashtable result = new Hashtable(); DynamicParameters Params = new DynamicParameters(); Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output); Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output); Params.Add("@GroupColumn", ""); Params.Add("@Table", "dbo.mes_route_group_detail a LEFT JOIN sys_part b ON a.part_no=b.part_no"); Params.Add("@Column", "a.group_id,a.part_no,b.part_spec,CONVERT(VARCHAR, a.create_time, 120) AS create_time ,CONVERT(VARCHAR, a.update_time, 120) AS update_time,a.guid"); Params.Add("@PageSize", PageSize); Params.Add("@CurrentPage", PageIndex); Params.Add("@Condition", strWhere); Params.Add("@OrderColumn", OrderBy); Params.Add("@Group", 0); List dataList = dbConn.Query("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", dataList); result.Add("totalCount", Params.Get("@TotalCount")); return result; } } /// /// 删除菜单数据 /// /// /// public int deleteData(String guid) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); String delStr = "update mes_route_group_detail set Enabled='N' where guid = @guid"; DynamicParameters htparams = new DynamicParameters(); htparams.Add("@guid", guid); int result = dbConn.Execute(delStr, htparams); return result; } } #endregion 成员方法 /// /// 获取 站点 信息 /// BY NOAH /// /// public List getTerminalName() { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder strSql = new StringBuilder(); strSql.Append("SELECT DISTINCT keydata_id as [value],terminal_name as [key] from sys_terminal WHERE keydata_id IN (SELECT keydata_id FROM dbo.sys_terminal EXCEPT SELECT keydata_id FROM dbo.sys_terminal_control) and enabled = 'Y'"); List result = dbConn.Query(strSql.ToString()).ToList(); return result; } } /// /// 获取 看板 信息 /// BY NOAH /// /// public List getBoardName() { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder strSql = new StringBuilder(); strSql.Append("SELECT DISTINCT view_board_id as [value],view_board_name as [key] from g_view_board WHERE enabled = 'Y'"); List result = dbConn.Query(strSql.ToString()).ToList(); return result; } } /// /// 判断用户输入的零件号是否存在 /// BY NOAH /// /// /// public String isExsitPart_no(String part_no) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string part_id = null; string SqlString = "select top 1 part_id from sys_part where enabled='Y' and part_no=@partNo"; DynamicParameters Params = new DynamicParameters(); Params.Add("@partNo", part_no); List dt = dbConn.Query(SqlString, Params).ToList(); if (dt.Count < 1) { return part_id; } else { part_id = dt[0].PartId.ToString(); return part_id; } } } /// /// 导入数据方法 /// /// 需要导入的数据表 /// true or false public bool InsertData(List dt, string userId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); List SqlStrings = new List(dt.Count); List hs = new List(dt.Count); for (int i = 0; i < dt.Count; i++) { string partNo = dt[i].PartNo.ToString().Trim(); string partLocation = GetPartLocation(partNo); StringBuilder SqlStringBuilder = new StringBuilder(1024); //获取插入状态(All=1、2线都做 P001=只做1线 P002=只做2线 焊接=只做焊接) string insertType = dt[i].GroupId.ToString().Trim(); //1线工步 if (insertType.Equals("100001")) { //判断是前排还是后排(01 02 为前排,其他为后排) if (partLocation.Equals("01") || partLocation.Equals("02")) { SqlStringBuilder.Append("INSERT INTO mes_route_group_detail "); SqlStringBuilder.Append(" ( group_id , "); SqlStringBuilder.Append(" part_no, "); SqlStringBuilder.Append(" enabled "); SqlStringBuilder.Append(" ) "); SqlStringBuilder.Append("SELECT terminal_id, "); SqlStringBuilder.Append(" @partNo, "); SqlStringBuilder.Append(" 'Y' "); SqlStringBuilder.Append("FROM dbo.sys_terminal "); SqlStringBuilder.Append("WHERE pdline_id = 100001 AND stage_id =1001 "); } else if (partLocation.Equals("03") || partLocation.Equals("04") || partLocation.Equals("05") || partLocation.Equals("07") || partLocation.Equals("08")) { SqlStringBuilder.Append("INSERT INTO mes_route_group_detail "); SqlStringBuilder.Append(" ( group_id , "); SqlStringBuilder.Append(" part_no "); SqlStringBuilder.Append(" enabled "); SqlStringBuilder.Append(" ) "); SqlStringBuilder.Append("SELECT terminal_id, "); SqlStringBuilder.Append(" @partNo ,"); SqlStringBuilder.Append(" 'Y' "); SqlStringBuilder.Append("FROM dbo.sys_terminal "); SqlStringBuilder.Append("WHERE pdline_id = 100001 AND stage_id =1002 "); } else if (partLocation.Equals("06") || partLocation.Equals("09") || partLocation.Equals("0A") || partLocation.Equals("0B")) { SqlStringBuilder.Append("INSERT INTO mes_route_group_detail "); SqlStringBuilder.Append(" ( group_id , "); SqlStringBuilder.Append(" part_no "); SqlStringBuilder.Append(" enabled "); SqlStringBuilder.Append(" ) "); SqlStringBuilder.Append("SELECT terminal_id, "); SqlStringBuilder.Append(" @partNo ,"); SqlStringBuilder.Append(" 'Y' "); SqlStringBuilder.Append("FROM dbo.sys_terminal "); SqlStringBuilder.Append("WHERE pdline_id = 100001 AND stage_id =1003 "); } } DynamicParameters values = new DynamicParameters(); values.Add("@emp_id", userId); values.Add("@partNo", partNo); if (!SqlStringBuilder.ToString().Equals("") || SqlStringBuilder.ToString() != null) { string sqlStr = "SELECT * FROM mes_route_group_detail WHERE part_no = @partNo"; String delStr = "update mes_route_group_detail set Enabled='N' where part_no = '" + partNo + "'"; DynamicParameters Params = new DynamicParameters(); Params.Add("@partNo", partNo); List dtToGroup = dbConn.Query(sqlStr, Params).ToList(); if (dtToGroup.Count > 0) { dbConn.Execute(delStr); } } SqlStrings.Add(SqlStringBuilder.ToString()); hs.Add(values); } IDbTransaction transaction = dbConn.BeginTransaction(); try { for (int i = 0; i < SqlStrings.Count; i++) { dbConn.Execute(SqlStrings[i], hs[i], transaction); } transaction.Commit(); return true; } catch (Exception ex) { transaction.Rollback(); return false; } } } /// /// 获取配置ID /// /// /// public int GetModelID(string modelName) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string SqlString = "SELECT model_id FROM dbo.sys_model WHERE model_name=@modelName"; DynamicParameters Params = new DynamicParameters(); Params.Add("@modelName", modelName); List dt = dbConn.Query(SqlString, Params).ToList(); if (dt == null) return 0; if (dt.Count == 0) return 0; return Convert.ToInt32(dt[0].ModelId.ToString()); } } /// /// 获取总成零件ID /// /// /// public int GetPartID(string partNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string SqlString = "SELECT part_id FROM sys_part WHERE part_no=@partNo"; string SqlStringTolocation = "SELECT part_location FROM sys_part WHERE part_no=@partNo"; DynamicParameters Params = new DynamicParameters(); Params.Add("@partNo", partNo); List dt = dbConn.Query(SqlString, Params).ToList(); List dtTolocation = dbConn.Query(SqlStringTolocation, Params).ToList(); if (dt == null) return 0; if (dt.Count == 0) return 0; if (dtTolocation == null) return 0; if (dtTolocation.Count == 0) return 0; return Convert.ToInt32(dt[0].PartId.ToString()); } } /// /// 获取总成位置信息 /// /// /// public string GetPartLocation(string partNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string SqlString = "SELECT part_location FROM sys_part WHERE part_no =@partNo"; DynamicParameters Params = new DynamicParameters(); Params.Add("@partNo", partNo); object obj = dbConn.ExecuteScalar(SqlString, Params); return obj.ToString(); } } /// /// 获取导入总成工步模板 /// /// /// /// public List getTEMPdt(string ruluNO, string partLocation) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT group_id , part_no FROM dbo.mes_route_group_detail "); SqlStringBuilder.Append(" WHERE part_no = ( SELECT TOP 1 part_no FROM ( SELECT TOP 10 part_no , "); SqlStringBuilder.Append(" create_time FROM sys_part "); SqlStringBuilder.Append(" WHERE label_type = @ruluNO AND part_type = 1 "); SqlStringBuilder.Append(" AND part_location = @partLocation ORDER BY create_time DESC "); SqlStringBuilder.Append(" ) list ORDER BY list.create_time "); SqlStringBuilder.Append(" ) "); DynamicParameters Params = new DynamicParameters(); Params.Add("@ruluNO", ruluNO); Params.Add("@partLocation", partLocation); List dt = dbConn.Query(SqlStringBuilder.ToString(), Params).ToList(); return dt != null && dt.Count > 0 ? dt : null; } } public bool existGroupid(string groupID, string partNO) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT TOP 1 1 FROM dbo.mes_route_group_detail WHERE group_id = @groupID AND part_no = @partNO "); DynamicParameters Params = new DynamicParameters(); Params.Add("@groupID", groupID); Params.Add("@partNO", partNO); object obj = dbConn.ExecuteScalar(SqlStringBuilder.ToString(), Params); return Convert.ToInt32(obj) > 0; } } } }