using System;
using System.Data;
using System.Text;
using System.Collections.Generic;
using System.Data.SqlClient;
using ApServerProvider;
using System.Collections;
using DbCommon;
using Estsh.Web.Util;
/***************************************************************************************************
*
*作者:龚泽宇
* 创建时间:2015.12.21
* 描述:发运管理
* 修改日志:龚泽宇
*
* *************************************************************************************************/
namespace Estsh.Core.Repositories
{
///
/// 数据库访问类,用户管理
///
public class ShipManagementDal : BaseApp
{
public ShipManagementDal(RemotingProxy remotingProxy)
: base(remotingProxy)
{
}
public int GetCustPdlineId(int partId)
{
lock (_remotingProxy)
{
string SqlString =
" SELECT top 1 d.cust_pdline_id FROM dbo.sys_part AS a "
+ " LEFT JOIN dbo.sys_model AS b ON a.model_id=b.model_id "
+ " LEFT JOIN dbo.sys_model_type AS c ON b.model_type_id=c.type_id"
+ " LEFT JOIN dbo.sys_cust_pdline AS d ON c.cust_pdline_id=d.cust_pdline_id"
+ " WHERE a.part_type=2 AND a.part_id=" + partId;
//" SELECT (CASE WHEN MAX(order_id) IS NULL THEN '0' ELSE '0' END) +1 as order_id FROM dbo.g_vw_order ";
Hashtable Params = new Hashtable(1);
object obj = _remotingProxy.GetScalar(SqlString, Params);
return obj == null ? 0 : Convert.ToInt32(obj);
}
}
///
/// 根据分页条件获取分页数据列表
///
public Hashtable getListByPage(int PageSize, int PageIndex, string strWhere, string cbCustPDLine, string txtStartTime, string txtEndTime, string txtStartSeq, string txtEndSeq)
{
lock (_remotingProxy)
{
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));
StringBuilder sb = new StringBuilder();
sb.Append(" ( SELECT DISTINCT TOP 1000 a.order_id,");
sb.Append(" c.model_name ,c.model_desc,f.on_line_time,order_seq,");
sb.Append(" car_no ,vin,d.cust_pdline_name,");
sb.Append(" (CASE count WHEN '0' THEN '未打印' ELSE '已打印' END ) AS count,");
sb.Append(" a.create_ymd ,a.create_hms FROM dbo.g_order AS a");
sb.Append(" LEFT JOIN dbo.sys_part AS b ON a.model_part_id=b.part_id");
sb.Append(" LEFT JOIN dbo.sys_model AS c ON b.model_id=c.model_id");
sb.Append(" LEFT JOIN dbo.sys_cust_pdline AS d ON d.cust_pdline_id=a.cust_pdline");
sb.Append(" LEFT JOIN dbo.g_order_items AS e ON a.order_id=e.order_id");
sb.Append(" LEFT JOIN dbo.g_order_detail AS f ON a.order_id=f.order_id");
sb.Append(" WHERE cust_pdline=" + cbCustPDLine);
if (!string.IsNullOrEmpty(txtStartSeq) && !string.IsNullOrEmpty(txtEndSeq))
{
sb.Append(" AND order_seq BETWEEN '" + txtStartSeq + "' AND '" + txtEndSeq + "'");
}
else
{
sb.Append(" AND a.create_ymd+' ' +a.create_hms BETWEEN '" + txtStartTime + "' AND '" + txtEndTime + "'");
}
sb.Append(" ) AS a");
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", sb.ToString()));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", "*"));
if (cbCustPDLine == "1007")
{
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", "on_line_time"));
}
else
{
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", "order_seq"));
}
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", ""));
parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", PageSize));
parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", PageIndex));
parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 0));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere));
Hashtable values = new Hashtable(2);
DataTable dt = new DataTable();
dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values);
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
result.Add("dataList", dataList);
result.Add("totalCount", values["@TotalCount"].ToString());
return result;
}
}
///
/// 获取状态变更
///
///
public int stateChanges(string ids, string a)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.g_order SET count=" + a + " WHERE order_id IN (" + ids + ") ");
int count = _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString());
return count;
}
}
///
/// 获取客户产线列表
///
///
public DataTable GetCustPDLine()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT cust_pdline_id as [value], ");
SqlStringBuilder.Append("cust_pdline_name as [key] ");
SqlStringBuilder.Append("FROM dbo.sys_cust_pdline ");
SqlStringBuilder.Append("WHERE enabled = 'Y' ");
SqlStringBuilder.Append("ORDER BY cust_pdline_name ");
return _remotingProxy.GetDataTable(SqlStringBuilder.ToString());
}
}
public bool ifOrderId(string order_seq, int part_id)
{
lock (_remotingProxy)
{
string SqlString =
"select * from g_vw_order where order_seq= @order_seq AND cust_pdline=(SELECT cust_pdline_id FROM sys_part AS A LEFT JOIN sys_model AS B ON A.model_id=B.model_id LEFT JOIN sys_model_type AS C ON B.model_type_id=C.type_id WHERE A.part_id=" + part_id + " ) ";
Hashtable Params = new Hashtable(1);
Params.Add("@order_seq", order_seq);
return _remotingProxy.Exists(SqlString, Params);
}
}
public bool ifOrderId(string order_seq, int part_id, string PackageUnitNumber)
{
lock (_remotingProxy)
{
string SqlString =
"select * from g_vw_order where package_unit_number+order_seq='" + PackageUnitNumber + order_seq + "' AND cust_pdline=(SELECT cust_pdline_id FROM sys_part AS A LEFT JOIN sys_model AS B ON A.model_id=B.model_id LEFT JOIN sys_model_type AS C ON B.model_type_id=C.type_id WHERE A.part_id=" + part_id + " ) ";
Hashtable Params = new Hashtable(1);
return _remotingProxy.Exists(SqlString, Params);
}
}
public bool selectRelationData(int part_id)
{
lock (_remotingProxy)
{
string SqlString =
"select top 1 * from g_part_relation as a left join sys_part as b on a.model_id=b.model_id where b.part_id= " + part_id + "";
Hashtable Params = new Hashtable(1);
return _remotingProxy.Exists(SqlString, Params);
}
}
public bool DeleteData(string order_id)
{
lock (_remotingProxy)
{
string SqlString =
" delete g_ve_order where order_id=@order_id ";
Hashtable Params = new Hashtable(1);
Params.Add("@order_id", order_id);
return _remotingProxy.Exists(SqlString, Params);
}
}
}
}