You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

427 lines
20 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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)
{ }
/// <summary>
/// 根据查询条件得出结果集
/// </summary>
/// <param name="aWhere">查询条件</param>
/// <returns>符合条件的结果集</returns>
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);
}
}
/// <summary>
/// 根据车号获取总成信息
/// </summary>
/// <param name="carno">车号</param>
/// <returns></returns>
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<StoreProcedureParameter> parameters = new List<StoreProcedureParameter>();
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);
}
}
/// <summary>
/// 判断数据是否存在
/// </summary>
/// <param name="aPDLineName">客户产线名称</param>
/// <returns>true or false</returns>
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());
}
}
/// <summary>
///更改可用状态
/// </summary>
/// <param name="status">true or false</param>
/// <param name="dr">当前行</param>
/// <returns></returns>
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;
}
}
/// <summary>
/// 获取车型名称
/// </summary>
/// <returns></returns>
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));
}
}
/// <summary>
/// 返回数据集
/// </summary>
/// <param name="woDetailID"></param>
/// <param name="carNo">车号</param>
/// <param name="SerialNumber">条码</param>
/// <param name="PartID">零件编号</param>
/// <returns></returns>
public DataTable GetDataSourse(string woDetailID, string carNo, string SerialNumber, string PartID)
{
lock (_remotingProxy)
{
Hashtable ht = new Hashtable();
List<StoreProcedureParameter> Parameters = new List<StoreProcedureParameter>();
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<StoreProcedureParameter> parameters = new List<StoreProcedureParameter>();
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<StoreProcedureParameter> parameters = new List<StoreProcedureParameter>();
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;
}
}
}
}