using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Estsh.Web.Util;
using ApServerProvider;
using System.Collections;
using System.Data;
using DbCommon;
namespace Estsh.Core.Repositories
{
/***************************************************************************************************
*
* 作者:任华松
* 创建时间:2013.07.08
* 描述:产品下线未发运查询DAL层
* 修改日志:
*
*
* *************************************************************************************************/
public class XTStockDataQueryDal : BaseApp
{
public XTStockDataQueryDal(RemotingProxy remotingProxy)
: base(remotingProxy)
{
this.TABLE_NAME = "";
this.PK_NAME = "";
}
///
/// 汇总
///
///
///
public DataTable GetStockData(string aWhere, Pager pager, ref int totalCount)
{
lock (_remotingProxy)
{
Hashtable ht = 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", @" dbo.g_sn_status a
LEFT JOIN sys_part b ON a.part_id=b.part_id
LEFT JOIN dbo.sys_model c ON a.model_id=c.model_id
LEFT JOIN dbo.sys_pdline d ON a.pdline_id=d.pdline_id
LEFT JOIN dbo.sys_model_type f ON c.model_type_id=f.type_id "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", @"f.type_name,d.pdline_name,c.model_name,b.part_no,b.part_spec,SUM(1) qty "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@orderColumn", @"f.type_name,d.pdline_name,c.model_name,b.part_no,b.part_spec "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", @"type_name,pdline_name,c.model_name,b.part_no,b.part_spec "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@PageSize", pager.pageSize));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@CurrentPage", pager.pageNo));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Group", 1));
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" a.work_flag = 1 and a.current_status=0 and a.prod_type IN ('S','E','C','X') " + aWhere);
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", SqlStringBuilder.ToString()));
Hashtable values = new Hashtable(2);
DataTable dt = new DataTable();
dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values);
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
ht.Add("dataList", dataList);
ht.Add("totalCount", values["@TotalCount"].ToString());
totalCount = Convert.ToInt32(values["@TotalCount"]);
return dt;
}
}
///
/// 明细
///
///
///
public DataTable GetDetailData(string aWhere, Pager pager, ref int totalCount2)
{
lock (_remotingProxy)
{
Hashtable ht = 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", @"dbo.g_sn_status a
LEFT JOIN sys_part b ON a.part_id=b.part_id
LEFT JOIN dbo.sys_model c ON a.model_id=c.model_id
LEFT JOIN dbo.sys_pdline d ON a.pdline_id=d.pdline_id
LEFT JOIN dbo.sys_model_type f ON c.model_type_id=f.type_id "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", @"a.workorder,f.type_name ,d.pdline_name,c.model_name ,b.part_no , b.part_spec ,a.serial_number ,CONVERT(varchar(100),a.out_pdline_time,20) AS update_date "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@orderColumn", @"a.out_pdline_time "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", @""));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@PageSize", pager.pageSize));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@CurrentPage", pager.pageNo));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Group", 0));
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" a.work_flag = 1 and a.current_status=0 and a.prod_type IN ('S','E','C','X') " + aWhere);
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", SqlStringBuilder.ToString()));
Hashtable values = new Hashtable(2);
DataTable dt = new DataTable();
dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values);
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
ht.Add("dataList", dataList);
ht.Add("totalCount", values["@TotalCount"].ToString());
totalCount2 = Convert.ToInt32(values["@TotalCount"]);
return dt;
}
}
///
/// 配置集合
///
/// 数据集
public ArrayList GetModelName(string typeName)
{
lock (_remotingProxy)
{
string quernSen = "";
if (string.IsNullOrEmpty(typeName))
{
quernSen = @" SELECT DISTINCT model_name as [value],model_name as [key] FROM dbo.sys_model WHERE enabled = 'Y' ";
}
else
{
quernSen = @" SELECT DISTINCT model_name as [value],model_name as [key] FROM dbo.sys_model a JOIN dbo.sys_model_type b ON a.model_type_id = b.type_id WHERE a.enabled = 'Y' AND b.type_name = '" + typeName + "' ";
}
DataTable dt = _remotingProxy.GetDataTable(quernSen);
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
}
///
///车型集合
///
/// 数据集
public ArrayList GetTypeName()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select type_name as [value],type_name as [key] from sys_model_type where enabled='Y' ");
DataTable dt = _remotingProxy.GetDataTable(SqlStringBuilder.ToString());
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
}
}
}