using System; using System.Collections.Generic; using System.Linq; using System.Web; using Estsh.Web.Util; using System.Collections; using System.Data; using System.Text; using ApServerProvider; using DbCommon; namespace Estsh.Core.Repositories { public class OffLine:BaseApp { /*************************************************************************************************** * * 作者:张茂忠 * 创建时间:2013.04.24 * 描述:下线回冲查询模块Dal层 * 修改日志: * * * *************************************************************************************************/ public OffLine(RemotingProxy _remotingproxy) : base(_remotingproxy) { } /// /// 根据查询条件得出结果集 /// /// 查询条件 /// 符合条件的结果集 public DataTable GetQuery(string aWhere, string partno, string carno) { lock (_remotingProxy) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT TOP 1000 "); SqlStringBuilder.Append(" a.* , "); SqlStringBuilder.Append(" c.part_spec , "); SqlStringBuilder.Append(" d.part_spec AS spec, "); SqlStringBuilder.Append(" e.enum_desc "); SqlStringBuilder.Append("FROM g_move_trans a "); SqlStringBuilder.Append(" LEFT JOIN dbo.sys_pdline b ON a.pdline_name = b.pdline_name "); SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part c ON a.part_no = c.part_no "); SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part d ON a.item_part_no = d.part_no "); SqlStringBuilder.Append(" LEFT JOIN sys_enum e ON c.part_location =e.enum_value AND e.enum_type='sys_part_location' "); SqlStringBuilder.Append("WHERE a.enabled = 'Y' and a.part_no=@part_no and a.car_no=@car_no"); if (!string.IsNullOrEmpty(aWhere)) { SqlStringBuilder.Append(aWhere); } Hashtable values = new Hashtable(1); values.Add("@part_no", partno); values.Add("@car_no", carno); return _remotingProxy.GetDataTable(SqlStringBuilder.ToString(), values); } } /// /// 根据车号获取总成信息 /// /// 车号 /// public DataTable GetCount(ref Pager pager, string carno, string typename) { lock (_remotingProxy) { StringBuilder strColumn = new StringBuilder(); strColumn.Append(" b.part_id , "); strColumn.Append(" b.part_no , "); strColumn.Append(" b.part_spec , "); strColumn.Append(" c.enum_desc , "); strColumn.Append(" a.ruid , "); strColumn.Append(" d.serial_number , "); strColumn.Append(" e.car_no "); StringBuilder strTable = new StringBuilder(); strTable.Append(" dbo.g_workorder_detail (NOLOCK) a "); strTable.Append(" LEFT JOIN dbo.sys_part (NOLOCK) b ON a.part_id = b.part_id "); strTable.Append(" LEFT JOIN dbo.sys_enum (NOLOCK) c ON b.part_location = c.enum_value "); strTable.Append(" AND c.enum_type = 'sys_part_location' "); strTable.Append(" LEFT JOIN dbo.g_workorder_sn (NOLOCK) d ON a.ruid = d.wo_detail_id "); strTable.Append(" LEFT JOIN g_workorder e ON a.workorder_id = e.ruid "); StringBuilder strWhere = new StringBuilder(); strWhere.Append(" a.workorder_id = ( SELECT TOP 1 "); strWhere.Append(" ruid "); strWhere.Append(" FROM dbo.g_workorder (NOLOCK) a , "); strWhere.Append(" dbo.sys_part (NOLOCK) b , "); strWhere.Append(" dbo.sys_model (NOLOCK) c , "); strWhere.Append(" dbo.sys_model_type (NOLOCK) d "); strWhere.Append(" WHERE a.part_id = b.part_id "); strWhere.Append(" AND b.model_id = c.model_id "); strWhere.Append(" AND c.model_type_id = d.type_id "); strWhere.AppendFormat(" AND d.type_name = '{0}' ", typename); strWhere.AppendFormat(" AND a.car_no = '{0}' ", carno); strWhere.Append(" ORDER BY ruid DESC "); strWhere.Append(" ) "); StringBuilder strOrder = new StringBuilder(); strOrder.Append(" a.ruid , "); strOrder.Append(" d.serial_number , "); strOrder.Append(" e.car_no "); 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)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", strTable.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", strColumn.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", strOrder.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", "")); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", pager.pageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", pager.pageNo)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 0)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere.ToString())); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); //totalCount = Convert.ToInt32(values["@TotalCount"]); pager.totalRows = Convert.ToInt32(values["@TotalCount"]); return dt; //StringBuilder SqlStringBuilder = new StringBuilder(1024); //SqlStringBuilder.Append("SELECT b.part_id , "); //SqlStringBuilder.Append(" b.part_no , "); //SqlStringBuilder.Append(" b.part_spec , "); //SqlStringBuilder.Append(" c.enum_desc , "); //SqlStringBuilder.Append(" a.ruid , "); //SqlStringBuilder.Append(" d.serial_number , "); //SqlStringBuilder.Append(" e.car_no "); //SqlStringBuilder.Append("FROM dbo.g_workorder_detail (NOLOCK) a "); //SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part (NOLOCK) b ON a.part_id = b.part_id "); //SqlStringBuilder.Append(" LEFT JOIN dbo.sys_enum (NOLOCK) c ON b.part_location = c.enum_value "); //SqlStringBuilder.Append(" AND c.enum_type = 'sys_part_location' "); //SqlStringBuilder.Append(" LEFT JOIN dbo.g_workorder_sn (NOLOCK) d ON a.ruid = d.wo_detail_id "); //SqlStringBuilder.Append(" LEFT JOIN g_workorder e ON a.workorder_id = e.ruid "); //SqlStringBuilder.Append("WHERE a.workorder_id = ( SELECT TOP 1 "); //SqlStringBuilder.Append(" ruid "); //SqlStringBuilder.Append(" FROM dbo.g_workorder (NOLOCK) a , "); //SqlStringBuilder.Append(" dbo.sys_part (NOLOCK) b , "); //SqlStringBuilder.Append(" dbo.sys_model (NOLOCK) c , "); //SqlStringBuilder.Append(" dbo.sys_model_type (NOLOCK) d "); //SqlStringBuilder.Append(" WHERE a.part_id = b.part_id "); //SqlStringBuilder.Append(" AND b.model_id = c.model_id "); //SqlStringBuilder.Append(" AND c.model_type_id = d.type_id "); //SqlStringBuilder.Append(" AND d.type_name = @typename "); //SqlStringBuilder.Append(" AND a.car_no = @carno "); //SqlStringBuilder.Append(" ORDER BY ruid DESC "); //SqlStringBuilder.Append(" ) "); //Hashtable values = new Hashtable(1); //values.Add("@carno", carno); //values.Add("@typename", typename); //dt=_remotingProxy.GetDataTable(SqlStringBuilder.ToString(), values); //return DataTypeConvert.NewObject.DataTableToArrayList(dt); } } /// /// 判断数据是否存在 /// /// 客户产线名称 /// true or false public bool GetCustPDLineName(string aPDLineName) { lock (_remotingProxy) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("select * from sys_cust_pdline where cust_pdline_name=@cust_pdline_name "); Hashtable values = new Hashtable(); values.Add("@cust_pdline_name", aPDLineName); return _remotingProxy.GetScalar(SqlStringBuilder.ToString(), values) != null; } } public DataTable GetCustomerID() { lock (_remotingProxy) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("select * from sys_customer"); return _remotingProxy.GetDataTable(SqlStringBuilder.ToString()); } } public DataTable GetTrayID() { lock (_remotingProxy) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append(" select * from g_tray_type "); return _remotingProxy.GetDataTable(SqlStringBuilder.ToString()); } } /// ///更改可用状态 /// /// true or false /// 当前行 /// public bool ChangeDetailStatus(bool status, DataRow dr) { lock (_remotingProxy) { string guid = dr["cust_pdline_id"].ToString(); string enabled = string.Empty; //string partID = GetPartMessage(partNo).Rows[0][0].ToString(); string SqlString = "update dbo.sys_cust_pdline set enabled=@status where cust_pdline_id=@part_id"; if (status) { enabled = "Y"; } else { enabled = "N"; } Hashtable values = new Hashtable(); values.Add("@status", enabled); values.Add("@part_id", guid); return _remotingProxy.ExecuteNonQuery(SqlString, values) > 0; } } public bool DeleteDetail(DataRow dr) { lock (_remotingProxy) { //string partID = GetPartMessage(dr[0].ToString()).Rows[0][0].ToString(); string guid = dr["cust_pdline_id"].ToString(); string SqlString = "delete from sys_cust_pdline where cust_pdline_id = @guid"; Hashtable values = new Hashtable(); values.Add("@guid", guid); return _remotingProxy.ExecuteNonQuery(SqlString, values) > 0; } } /// /// 获取车型名称 /// /// public ArrayList GetModelType() { lock (_remotingProxy) { string SqlString = "select type_name AS [value],type_name+':'+type_desc AS [key] from sys_model_type"; return DataTypeConvert.NewObject.DataTableToArrayList(_remotingProxy.GetDataTable(SqlString)); } } /// /// 返回数据集 /// /// /// 车号 /// 条码 /// 零件编号 /// public DataTable GetDataSourse(string woDetailID, string carNo, string SerialNumber, string PartID) { lock (_remotingProxy) { Hashtable ht = new Hashtable(); List Parameters = new List(); Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@wo_detail_id", woDetailID)); Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@car_no", carNo)); Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@serial_number", SerialNumber)); Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@part_id", PartID)); DataTable dt = _remotingProxy.ExecuteSotreProcedure("dbo.data_mend_off_line", Parameters, ref ht); return dt; } } public string isGetVirtualData() { lock (_remotingProxy) { object obj = _remotingProxy.GetScalar("SELECT a.param_value FROM sys_base a where a.param_name='getvirtualData' AND a.enabled='Y'"); if (obj != null && obj != DBNull.Value) { return obj.ToString(); } else { return null; } } } public DataTable GetQuery(ref Pager pager, string part_no, string car_no) { lock (_remotingProxy) { StringBuilder strColumn = new StringBuilder(); strColumn.Append(" a.* , "); strColumn.Append(" c.part_spec , "); strColumn.Append(" d.part_spec AS spec, "); strColumn.Append(" e.enum_desc "); StringBuilder strTable = new StringBuilder(); strTable.Append(" g_move_trans a "); strTable.Append(" LEFT JOIN dbo.sys_pdline b ON a.pdline_name = b.pdline_name "); strTable.Append(" LEFT JOIN dbo.sys_part c ON a.part_no = c.part_no "); strTable.Append(" LEFT JOIN dbo.sys_part d ON a.item_part_no = d.part_no "); strTable.Append(" LEFT JOIN sys_enum e ON c.part_location =e.enum_value AND e.enum_type='sys_part_location' "); StringBuilder strWhere = new StringBuilder(); strWhere.AppendFormat("a.enabled = 'Y' and a.part_no='{0}' and a.car_no='{1}'", part_no, car_no); 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)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", strTable.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", strColumn.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", " a.create_ymd,a.create_hms")); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", "")); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", pager.pageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", pager.pageNo)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 0)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere.ToString())); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); //totalCount = Convert.ToInt32(values["@TotalCount"]); pager.totalRows = Convert.ToInt32(values["@TotalCount"]); return dt; } } public DataTable GetQueryHistory(ref Pager pager, string part_no, string car_no) { lock (_remotingProxy) { StringBuilder strColumn = new StringBuilder(); strColumn.Append(" a.* , "); strColumn.Append(" c.part_spec , "); strColumn.Append(" d.part_spec AS spec, "); strColumn.Append(" e.enum_desc "); StringBuilder strTable = new StringBuilder(); strTable.Append(" g_ht_move_trans a "); strTable.Append(" LEFT JOIN dbo.sys_pdline b ON a.pdline_name = b.pdline_name "); strTable.Append(" LEFT JOIN dbo.sys_part c ON a.part_no = c.part_no "); strTable.Append(" LEFT JOIN dbo.sys_part d ON a.item_part_no = d.part_no "); strTable.Append(" LEFT JOIN sys_enum e ON c.part_location =e.enum_value AND e.enum_type='sys_part_location' "); StringBuilder strWhere = new StringBuilder(); strWhere.AppendFormat("a.enabled = 'Y' and a.part_no='{0}' and a.car_no='{1}'", part_no, car_no); 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)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", strTable.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", strColumn.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", " a.create_ymd,a.create_hms")); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", "")); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", pager.pageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", pager.pageNo)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 0)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere.ToString())); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); //totalCount = Convert.ToInt32(values["@TotalCount"]); pager.totalRows = Convert.ToInt32(values["@TotalCount"]); return dt; } } } }