using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ApServerProvider;
using System.Data;
using System.Collections;
using DbCommon;
using Estsh.Web.Util;
namespace Estsh.Core.Repositories
{
public class ProdQueueQueryDal : BaseApp
{
private RemotingProxy remotingProxy;
public ProdQueueQueryDal(RemotingProxy remotingProxy)
: base(remotingProxy)
{
}
///
/// 获取页面上要显示的的数据
///
///
public DataTable GetAll(ref Pager pager)
{
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", @"g_sn_status a
LEFT JOIN g_workorder_detail b ON a.wo_detail_id = b.ruid
LEFT JOIN g_workorder c ON b.workorder_id = c.ruid
LEFT JOIN sys_part d ON a.part_id = d.part_id
LEFT JOIN sys_part e ON c.part_id = e.part_id
LEFT JOIN sys_model f ON a.model_id = f.model_id "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", @"a.serial_number, a.ruid,
SUBSTRING(a.serial_number, LEN(a.serial_number) - 3, 4) AS seq,
SUBSTRING(a.create_hms, 1, 5) AS create_time, f.model_name,
f.model_type, d.part_no, f.model_alias,
CASE WHEN c.type = 'N' THEN '自动下单'
WHEN c.type = 'E' THEN '手工插单'
END type "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@orderColumn", @" a.ruid DESC"));
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.enabled = 'Y' ");
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);
pager.totalRows = Convert.ToInt32(values["@TotalCount"]);
return dt;
}
}
///
/// 获取分页记录总数
///
public int getCountWhere()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" SELECT count(*) as Total ");
SqlStringBuilder.Append(" FROM g_sn_status a ");
SqlStringBuilder.Append(" LEFT JOIN g_workorder_detail b ON a.wo_detail_id = b.ruid ");
SqlStringBuilder.Append(" LEFT JOIN g_workorder c ON b.workorder_id = c.ruid ");
SqlStringBuilder.Append(" LEFT JOIN sys_part d ON a.part_id = d.part_id ");
SqlStringBuilder.Append(" LEFT JOIN sys_part e ON c.part_id = e.part_id ");
SqlStringBuilder.Append(" LEFT JOIN sys_model f ON a.model_id = f.model_id ");
SqlStringBuilder.Append(" WHERE a.process_id = 0 ");
int i = 0;
DataTable dt = _remotingProxy.GetDataTable(SqlStringBuilder.ToString());
if (dt.Rows.Count > 0)
{
if (dt.Rows[0]["Total"].ToString() != "")
{
i = int.Parse(dt.Rows[0]["Total"].ToString());
}
}
return i;
}
}
}
}