using System; using System.Data; using System.Text; using System.Collections.Generic; using System.Data.SqlClient; using ApServerProvider; using DbCommon; using System.Collections; using Estsh.Web.Util; /*************************************************************************************************** * * 作者:王勇 * * *************************************************************************************************/ namespace Estsh.Core.Repositories { /// /// 处理菜单模块的业务数据 /// public class YYAdjustOrderDal : BaseApp { public YYAdjustOrderDal(RemotingProxy remotingProxy) : base(remotingProxy) { } #region 成员方法 /// /// 根据传入条件获得菜单列表数据 /// public DataTable getList(string strWhere, string filedOrder) { lock (_remotingProxy) { 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 this._remotingProxy.GetDataTable(strSql.ToString()); } } /// /// 根据分页条件获取分页数据列表 /// public Hashtable getListByPage(RemotingProxy.RecordStatus status, int PageSize, int PageIndex, string strWhere, string OrderBy) { lock (_remotingProxy) { Hashtable result = new Hashtable(); List parameters = new List(); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalCount", 100)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalPage", 100)); 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_stock_order AS o ON g.workorder=o.order_no "); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", sb.ToString())); StringBuilder sbColumn = new StringBuilder(); sbColumn.Append(" ROW_NUMBER() OVER ( ORDER BY a.seq ) AS a ,"); sbColumn.Append(" a.ruid ,"); sbColumn.Append(" a.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_ymd ,"); sbColumn.Append(" a.create_hms ,"); sbColumn.Append(" g.serial_number ,"); sbColumn.Append(" f.serial_number AS car_no , "); sbColumn.Append(" g.work_flag,o.edi_id, "); sbColumn.Append(" b.cust_part_no"); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", sbColumn.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", OrderBy)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", "")); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", PageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", PageIndex)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 0)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere)); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt); result.Add("dataList", dataList); result.Add("totalCount", values["@TotalCount"].ToString()); return result; } } /// /// 插入菜单数据 /// /// /// public int saveYYAdjustOrder(Hashtable htParams) { lock (_remotingProxy) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO sys_part_cust_order (part_id "); SqlStringBuilder.Append(" , cust_order "); SqlStringBuilder.Append(" ,ship_unit) "); SqlStringBuilder.Append(" VALUES(@part_id "); SqlStringBuilder.Append(" , @cust_order "); SqlStringBuilder.Append(" ,@ship_unit)"); return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), htParams); } } /// /// 更新菜单数据 /// /// /// public int updateYYAdjustOrder(Hashtable htParams) { lock (_remotingProxy) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("update sys_part_cust_order "); SqlStringBuilder.Append("SET cust_order=@cust_order "); SqlStringBuilder.Append(" , ship_unit=@ship_unit "); SqlStringBuilder.Append("WHERE part_id=@part_id "); return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), htParams); } } /// /// 删除菜单数据 /// /// /// public int deleteYYAdjustOrder(String part_id) { lock (_remotingProxy) { Hashtable htparams = new Hashtable(); htparams.Add("@part_id", part_id); String delStr = "delete from sys_part_cust_order where part_id = @part_id"; return _remotingProxy.ExecuteNonQuery(delStr, htparams); } } /// /// 上移 /// public bool upRow(int seq, int ruid, int up_ruid, int up_seq) { lock (_remotingProxy) { 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 WHERE ruid=@ruid"); Parameters.Add(Params); SqlStrings.Add("UPDATE dbo.g_workorder_detail SET seq=@seq WHERE ruid=@up_ruid"); Parameters.Add(Params); return _remotingProxy.ExecuteSqlTransaction(SqlStrings, Parameters); } } /// /// 上移 /// public bool upAll(int ruid, int seq, int up_ruid, int up_seq) { lock (_remotingProxy) { 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 WHERE ruid=@ruid"); Parameters.Add(Params); SqlStrings.Add("UPDATE dbo.g_workorder_detail SET seq=@seq WHERE ruid=@up_ruid"); Parameters.Add(Params); return _remotingProxy.ExecuteSqlTransaction(SqlStrings, Parameters); } } /// /// 获取上一条数据 /// /// /// public DataTable selectAll(string CustPDLine) { lock (_remotingProxy) { Hashtable htparams = new Hashtable(); 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_ymd ,"); sb.Append(" a.create_hms ,"); 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_ymd>(SELECT CONVERT(VARCHAR(10), GETDATE()- 15, 120)) AND a.enabled='Y' ORDER BY a.seq "); DataTable dt = _remotingProxy.GetDataTable(sb.ToString(), htparams); return dt; } } /// /// 获取下拉框菜单数据 /// /// public DataTable getSelectYYAdjustOrder() { lock (_remotingProxy) { StringBuilder strSql = new StringBuilder(); strSql.Append("select part_id as [value] ,part_no as [key] from sys_part where part_type = '1' "); return _remotingProxy.GetDataTable(strSql.ToString()); } } public int deleteOrder(String guid) { lock (_remotingProxy) { if (guid == null) return 0; return _remotingProxy.ExecuteNonQuery("UPDATE dbo.g_workorder_detail SET enabled='N',update_ymd=dbo.get_ymd(),update_hms =dbo.get_hms() WHERE ruid IN (" + guid + ")"); } } public string getPartLocation(string ruid) { lock (_remotingProxy) { 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 + " "); return _remotingProxy.GetScalar(SqlStringBuilder.ToString()).ToString(); } } public int deleteOrderInfo(String ruid, string custPdlineDesc, string partLocation) { lock (_remotingProxy) { if (ruid == null) return 0; StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("UPDATE dbo.g_workorder_detail "); SqlStringBuilder.Append("SET enabled = 'N', update_ymd=dbo.get_ymd(),update_hms =dbo.get_hms() "); 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(" ) "); Hashtable ht = new Hashtable(2); ht.Add("@ruid", ruid); ht.Add("@custPdlineDesc", custPdlineDesc); return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), ht); } } #endregion 成员方法 } }