using Dapper; using Estsh.Core.Dapper; 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 AdjustOrderRepository : BaseRepository, IAdjustOrderRepository { public AdjustOrderRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } #region 成员方法 /// /// 根据传入条件获得菜单列表数据 /// public List getList(string strWhere, string filedOrder) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); strWhere += " and enabled='Y' "; StringBuilder strSql = new StringBuilder(); strSql.Append(" select * from dbo.sys_part_cust_order "); if (strWhere != null && !strWhere.Trim().Equals("")) { strSql.Append(" where " + strWhere); } if (filedOrder != null && !filedOrder.Trim().Equals("")) { strSql.Append(" order by " + filedOrder); } return dbConn.Query(strSql.ToString()).ToList(); } } /// /// 根据分页条件获取分页数据列表 /// public Hashtable getListByPage(int PageSize, int PageIndex, string OrderBy, string stageId, string SN, string partNo, string enabled) { 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); StringBuilder sb = new StringBuilder(); sb.Append(" dbo.g_workorder_detail AS a"); sb.Append(" LEFT JOIN dbo.g_workorder AS d ON a.workorder_id=d.ruid LEFT JOIN dbo.sys_part AS e ON d.part_id=e.part_id"); sb.Append(" LEFT JOIN dbo.g_workorder_sn AS f ON a.ruid=f.wo_detail_id"); sb.Append(" LEFT JOIN dbo.g_sn_status AS g ON f.serial_number=g.serial_number"); sb.Append(" LEFT JOIN dbo.g_workorder AS w ON w.ruid = a.workorder_id"); sb.Append(" LEFT JOIN dbo.g_pdline_relation AS r ON r.pdline_id = w.pdline_id"); sb.Append(" LEFT JOIN dbo.sys_cust_pdline AS p ON p.cust_pdline_id = r.cust_pdline_id"); sb.Append(" LEFT JOIN dbo.sys_part AS b ON a.part_id = b.part_id "); sb.Append(" LEFT JOIN dbo.g_workorder_seq AS c ON a.ruid = c.workorder_id "); sb.Append(" LEFT JOIN dbo.sys_enum AS i ON i.enum_value = b.part_location "); sb.Append(" AND i.enum_type = 'sys_part_location' AND i.enabled = 'Y' "); sb.Append(" LEFT JOIN dbo.g_stage_location AS h ON h.enum_id = i.enum_id "); sb.Append(" LEFT JOIN dbo.g_stock_order AS s ON s.order_no = d.order_no "); sb.Append(" LEFT JOIN dbo.sys_enum AS z ON g.prod_type = z.enum_value AND z.enum_type = 'sys_prod_type' AND z.enabled = 'Y' "); parameters.Add("@Table", sb.ToString()); StringBuilder sbColumn = new StringBuilder(); sbColumn.Append(" ROW_NUMBER() OVER ( ORDER BY a.seq ) AS a ,"); sbColumn.Append(" a.ruid ,"); sbColumn.Append(" c.seq ,"); sbColumn.Append(" a.workorder_id ,"); sbColumn.Append(" e.part_no AS modelNo,"); sbColumn.Append(" b.part_no ,"); sbColumn.Append(" b.part_spec ,"); sbColumn.Append(" p.cust_pdline_desc ,"); sbColumn.Append(" a.type ,"); sbColumn.Append(" a.create_time ,"); sbColumn.Append(" g.serial_number ,"); sbColumn.Append(" w.car_no,"); sbColumn.Append(" b.cust_part_no,s.batch_number,z.enum_desc AS prod_type"); String strWhere = " c.stage_id = " + stageId; strWhere += " AND h.stage_id = " + stageId; strWhere += " AND a.create_time>(SELECT CONVERT(VARCHAR(10), GETDATE()- 15, 120))"; strWhere += " AND a.enabled='Y'"; strWhere += " AND c.seq > ( SELECT MAX(wo_detail_seq)"; strWhere += " FROM dbo.sys_terminal AS a"; strWhere += " LEFT JOIN dbo.sys_terminal_point AS b ON a.terminal_id = b.terminal_id"; strWhere += " WHERE stage_id = " + stageId + ")"; if (!string.IsNullOrEmpty(SN) && SN.ToLower() != "null") { strWhere += "AND g.serial_number ='" + SN + "' "; } if (!string.IsNullOrEmpty(partNo) && partNo.ToLower() != "null") { strWhere += "AND b.part_no ='" + partNo + "' "; } if (!string.IsNullOrEmpty(enabled) && enabled.ToLower() != "null") { strWhere += "AND a.enabled ='" + enabled + "' "; } parameters.Add("@Column", sbColumn.ToString()); parameters.Add("@OrderColumn", OrderBy); parameters.Add("@GroupColumn", ""); parameters.Add("@PageSize", PageSize); parameters.Add("@CurrentPage", PageIndex); parameters.Add("@Group", 0); parameters.Add("@Condition", strWhere); List sysPartCustOrderList = dbConn.Query("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", sysPartCustOrderList); result.Add("totalCount", parameters.Get("@TotalCount")); return result; } } /// /// 插入菜单数据 /// /// /// public int saveAdjustOrder(SysPartCustOrder Params) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO sys_part_cust_order (part_id "); SqlStringBuilder.Append(" , cust_order "); SqlStringBuilder.Append(" , enabled "); SqlStringBuilder.Append(" , create_userid "); SqlStringBuilder.Append(" , create_time "); SqlStringBuilder.Append(" ,ship_unit) "); SqlStringBuilder.Append(" VALUES(@partId "); SqlStringBuilder.Append(" , @custOrder "); SqlStringBuilder.Append(" , 'Y' "); SqlStringBuilder.Append(" , @createUserid "); SqlStringBuilder.Append(" , getdate()"); SqlStringBuilder.Append(" ,@shipUnit)"); int result = dbConn.Execute(SqlStringBuilder.ToString(), Params); return result; } } /// /// 更新菜单数据 /// /// /// public int updateAdjustOrder(SysPartCustOrder Params) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("update sys_part_cust_order "); SqlStringBuilder.Append("SET cust_order=@custOrder "); SqlStringBuilder.Append(" , ship_unit=@shipUnit "); SqlStringBuilder.Append(" ,update_userid = @updateUserId "); SqlStringBuilder.Append(" ,update_time = getdate()"); SqlStringBuilder.Append("WHERE part_id=@partId "); int result = dbConn.Execute(SqlStringBuilder.ToString(), Params); return result; } } /// /// 删除菜单数据 /// /// /// public int deleteAdjustOrder(String part_id) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); Hashtable Params = new Hashtable(); Params.Add("@part_id", part_id); String delStr = "update sys_part_cust_order set Enabled='N' where part_id = @part_id"; int result = dbConn.Execute(delStr, Params); return result; } } /// /// 上移 /// public bool upRow(int seq, int ruid, int up_ruid, int up_seq) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); List SqlStrings = new List(3); List Parameters = new List(3); Hashtable Params = new Hashtable(4); Params.Add("@seq", seq); Params.Add("@ruid", ruid); Params.Add("@up_ruid", up_ruid); Params.Add("@up_seq", up_seq); SqlStrings.Add(@" UPDATE dbo.g_workorder_detail SET seq=@up_seq ,update_userid = @updateUserId ,update_time = CONVERT(VARCHAR(10),GETDATE(),23) WHERE ruid=@ruid"); Parameters.Add(Params); SqlStrings.Add(@"UPDATE dbo.g_workorder_detail SET seq=@seq ,update_userid = @updateUserId ,update_time = CONVERT(VARCHAR(10),GETDATE(),23) WHERE ruid=@up_ruid"); Parameters.Add(Params); int result = 0; for (int i = 0; i < SqlStrings.Count; i++) { result = dbConn.Execute(SqlStrings[i], Parameters); } return result > 0 ? true : false; } } /// /// 上移 /// public bool upAll(int ruid, int seq, int up_ruid, int up_seq) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); List SqlStrings = new List(3); List Parameters = new List(3); Hashtable Params = new Hashtable(4); Params.Add("@ruid", ruid); Params.Add("@seq", seq); Params.Add("@up_ruid", up_ruid); Params.Add("@up_seq", up_seq); SqlStrings.Add("UPDATE dbo.g_workorder_detail SET seq=@up_seq ,update_userid = @updateUserId ,update_time=getdate() WHERE ruid=@ruid"); Parameters.Add(Params); SqlStrings.Add("UPDATE dbo.g_workorder_detail SET seq=@seq ,update_userid = @updateUserId ,update_time=getdate() WHERE ruid=@up_ruid"); Parameters.Add(Params); int result = 0; for (int i = 0; i < SqlStrings.Count; i++) { result = dbConn.Execute(SqlStrings[i], Parameters); } return result > 0 ? true : false; } } /// /// 获取上一条数据 /// /// /// public List selectAll(string CustPDLine) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder sb = new StringBuilder(); sb.Append(" SELECT ROW_NUMBER() OVER ( ORDER BY a.seq ) AS a ,"); sb.Append(" a.ruid ,"); sb.Append(" a.seq ,"); sb.Append(" a.workorder_id ,"); sb.Append(" e.part_no AS modelNo ,"); sb.Append(" b.part_no ,"); sb.Append(" b.part_spec ,"); sb.Append(" p.cust_pdline_desc ,"); sb.Append(" a.type ,"); sb.Append(" a.create_time ,"); sb.Append(" g.serial_number ,"); sb.Append(" w.car_no ,"); sb.Append(" g.work_flag"); sb.Append(" FROM dbo.g_workorder_detail AS a"); sb.Append(" LEFT JOIN dbo.g_workorder AS d ON a.workorder_id = d.ruid"); sb.Append(" LEFT JOIN dbo.sys_part AS e ON d.part_id = e.part_id"); sb.Append(" LEFT JOIN dbo.g_workorder_sn AS f ON a.ruid = f.wo_detail_id"); sb.Append(" LEFT JOIN dbo.g_sn_status AS g ON f.serial_number = g.serial_number"); sb.Append(" LEFT JOIN dbo.g_workorder AS w ON w.ruid = a.workorder_id"); sb.Append(" LEFT JOIN dbo.g_pdline_relation AS r ON r.pdline_id = w.pdline_id"); sb.Append(" LEFT JOIN dbo.sys_cust_pdline AS p ON p.cust_pdline_id = r.cust_pdline_id"); sb.Append(" LEFT JOIN dbo.sys_part AS b ON a.part_id = b.part_id "); sb.Append(" WHERE p.cust_pdline_name='" + CustPDLine + "' and g.work_flag <0 and a.create_time>(SELECT CONVERT(VARCHAR(10), GETDATE()- 15, 120)) AND a.enabled='Y' ORDER BY a.seq "); List result = dbConn.Query(sb.ToString()).ToList(); return result; } } /// /// 获取下拉框菜单数据 /// /// public List getSelectAdjustOrder() { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder strSql = new StringBuilder(); strSql.Append("select part_id as [value] ,part_no as [key] from sys_part where part_type = '1' and enabled='Y' "); List result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public int deleteOrder(String guid) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); if (guid == null) return 0; string str = "UPDATE dbo.g_workorder_detail SET enabled='N' WHERE ruid IN (" + guid + ")"; int result = dbConn.Execute(str); return result; } } public string getPartLocation(string ruid) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT part_location "); SqlStringBuilder.Append("FROM dbo.g_workorder_sn a "); SqlStringBuilder.Append(" LEFT JOIN sys_part b ON a.part_id = b.part_id "); SqlStringBuilder.Append("WHERE a.wo_detail_id = " + ruid + " and a.enabled='Y' "); string result= dbConn.ExecuteScalar(SqlStringBuilder.ToString()).ToString(); return result; } } public int deleteOrderInfo(String ruid, string custPdlineDesc, string partLocation) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); if (ruid == null) return 0; StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("UPDATE dbo.g_workorder_detail "); SqlStringBuilder.Append("SET enabled = 'N' "); SqlStringBuilder.Append("WHERE ruid IN ( "); SqlStringBuilder.Append(" SELECT a.ruid "); SqlStringBuilder.Append(" FROM dbo.g_workorder_detail a "); SqlStringBuilder.Append(" LEFT JOIN dbo.g_workorder b ON a.workorder_id = b.ruid "); SqlStringBuilder.Append(" LEFT JOIN dbo.g_workorder_sn c ON a.ruid = c.wo_detail_id "); SqlStringBuilder.Append(" LEFT JOIN dbo.sys_pdline d ON b.pdline_id = d.pdline_id "); SqlStringBuilder.Append(" LEFT JOIN sys_part e ON c.part_id = e.part_id "); SqlStringBuilder.Append(" LEFT JOIN dbo.g_pdline_relation f ON d.pdline_id = f.pdline_id "); SqlStringBuilder.Append(" LEFT JOIN dbo.sys_cust_pdline g ON f.cust_pdline_id = g.cust_pdline_id "); SqlStringBuilder.Append(" WHERE a.enabled = 'Y' "); SqlStringBuilder.Append(" AND g.cust_pdline_name = @custPdlineDesc "); SqlStringBuilder.Append(" AND a.ruid >= @ruid "); if (partLocation != "01" && partLocation != "02") { SqlStringBuilder.Append(" AND e.part_location NOT IN ( '01', '02' ) "); } else { SqlStringBuilder.Append(" AND e.part_location IN ( '01', '02' ) "); } SqlStringBuilder.Append(" ) "); DynamicParameters parameters = new DynamicParameters(); parameters.Add("@ruid", ruid); parameters.Add("@custPdlineDesc", custPdlineDesc); int result = dbConn.Execute(SqlStringBuilder.ToString(), parameters); return result; } } //启用 public int EnableData(String id) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); String delStr = "update g_workorder_detail set Enabled='Y' WHERE ruid = @ruid"; DynamicParameters htparams = new DynamicParameters(); htparams.Add("@ruid", id); int result = dbConn.Execute(delStr, htparams); return result; } } //禁用 public int DisableData(String id) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); String delStr = "update g_workorder_detail set Enabled='N' WHERE ruid = @ruid"; DynamicParameters htparams = new DynamicParameters(); htparams.Add("@ruid", id); int result = dbConn.Execute(delStr, htparams); return result; } } /// /// 根据分页条件获取分页数据列表 /// public Hashtable getListByPage(int PageSize, int PageIndex, string OrderBy, string stageId) { 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); StringBuilder sb = new StringBuilder(); sb.Append(" dbo.g_workorder_detail AS a"); sb.Append(" LEFT JOIN dbo.g_workorder AS d ON a.workorder_id=d.ruid LEFT JOIN dbo.sys_part AS e ON d.part_id=e.part_id"); sb.Append(" LEFT JOIN dbo.g_workorder_sn AS f ON a.ruid=f.wo_detail_id"); sb.Append(" LEFT JOIN dbo.g_sn_status AS g ON f.serial_number=g.serial_number"); sb.Append(" LEFT JOIN dbo.g_workorder AS w ON w.ruid = a.workorder_id"); sb.Append(" LEFT JOIN dbo.g_pdline_relation AS r ON r.pdline_id = w.pdline_id"); sb.Append(" LEFT JOIN dbo.sys_cust_pdline AS p ON p.cust_pdline_id = r.cust_pdline_id"); sb.Append(" LEFT JOIN dbo.sys_part AS b ON a.part_id = b.part_id "); sb.Append(" LEFT JOIN dbo.g_workorder_seq AS c ON a.ruid = c.workorder_id "); sb.Append(" LEFT JOIN dbo.sys_enum AS i ON i.enum_value = b.part_location "); sb.Append(" AND i.enum_type = 'sys_part_location' AND i.enabled = 'Y' "); sb.Append(" LEFT JOIN dbo.g_stage_location AS h ON h.enum_id = i.enum_id "); parameters.Add("@Table", sb.ToString()); StringBuilder sbColumn = new StringBuilder(); sbColumn.Append(" ROW_NUMBER() OVER ( ORDER BY a.seq ) AS a ,"); sbColumn.Append(" a.ruid ,"); sbColumn.Append(" c.seq ,"); sbColumn.Append(" a.workorder_id ,"); sbColumn.Append(" e.part_no AS modelNo,"); sbColumn.Append(" b.part_no ,"); sbColumn.Append(" b.part_spec ,"); sbColumn.Append(" p.cust_pdline_desc ,"); sbColumn.Append(" a.type ,"); sbColumn.Append(" a.create_time ,"); sbColumn.Append(" g.serial_number ,"); sbColumn.Append(" w.car_no,"); sbColumn.Append(" b.cust_part_no"); String strWhere = " c.stage_id = " + stageId; strWhere += " AND h.stage_id = " + stageId; strWhere += " AND a.create_time>(SELECT CONVERT(VARCHAR(10), GETDATE()- 15, 120))"; strWhere += " AND a.enabled='Y'"; strWhere += " AND c.seq > ( SELECT MAX(wo_detail_seq)"; strWhere += " FROM dbo.sys_terminal AS a"; strWhere += " LEFT JOIN dbo.sys_terminal_point AS b ON a.terminal_id = b.terminal_id"; strWhere += " WHERE stage_id = " + stageId + ")"; parameters.Add("@Column", sbColumn.ToString()); 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(sb.ToString(), parameters).ToList(); result.Add("dataList", dataList); result.Add("totalCount", parameters.Get("@TotalCount")); return result; } } #endregion 成员方法 } }