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;
}
}
}
}