using System;
using System.Data;
using System.Text;
using System.Collections.Generic;
using System.Data.SqlClient;
using ApServerProvider;
using DbCommon;
using System.Collections;
namespace Estsh.Core.Repositories
{
/**
* 客户产线对应关系
*
* NOAH
*
*/
public class SRMDefineDal : BaseApp
{
public SRMDefineDal(RemotingProxy remotingProxy)
: base(remotingProxy)
{
}
#region 成员方法
///
/// 获得菜单列表数据
///
public DataTable getList(string strWhere, string filedOrder)
{
lock (_remotingProxy)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select a.*,b.cust_pdline_name from sys_model_type a LEFT JOIN dbo.sys_cust_pdline b ON a.cust_pdline_id = b.cust_pdline_id ");
if (!strWhere.Trim().Equals(""))
{
strSql.Append(" where " + strWhere);
}
if (filedOrder != null && !filedOrder.Trim().Equals(""))
{
strSql.Append(" order by " + filedOrder);
}
return this._remotingProxy.GetDataTable(strSql.ToString());
}
}
///
/// 获取分页数据列表
///
public DataTable getListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
{
lock (_remotingProxy)
{
if (strWhere.Trim() != "")
{
strWhere = strWhere.Remove(0, 6);//因为存储过程中已经有where,这里需要把之前加入的where去掉,这里截除前六个字符
}
OrderBy = " importNo DESC,crossingPointNo "; //排序
Hashtable Params = new Hashtable(6);
Params.Add("@TotalCount", 100);
Params.Add("@TotalPage", 100);
Params.Add("@GroupColumn", "");
Params.Add("@Table", "g_srm");
Params.Add("@Column", @"ruid,importNo,crossingPointNo,partNo,partName,vendorCode,vendorName,xuQiuQty,VIN,
Convert(varchar(20),dingDanTime,120) as dingDanTime ,dingDanNo,
Convert(varchar(20),zhiDanTime,120) as zhiDanTime,dingDanStatus,danJuPrint,
Convert(varchar(20),huiZhiTime,120) as huiZhiTime,Convert(varchar(20),updateTime,120) as updateTime,
serial_number,Convert(varchar(20),inTime,120) as inTime,rfid,CASE status WHEN 0 THEN '未校验' WHEN 1 THEN '已校验' END AS status,
CASE scan_status WHEN 0 THEN '未扫描' WHEN 1 THEN '已扫描' END AS scan_status,create_ymd+' '+create_hms AS importTime");
Params.Add("@PageSize", PageSize);
Params.Add("@CurrentPage", PageIndex);
Params.Add("@Condition", strWhere);
Params.Add("@OrderColumn", OrderBy);
Params.Add("@Group", 0);
String strProcedure = "EXEC Com_Pagination @TotalCount, @TotalPage, @Table, @Column,@OrderColumn,@GroupColumn,@PageSize, @CurrentPage,@Group,@Condition";
return _remotingProxy.GetDataTable(strProcedure, Params);
}
}
///
/// 获取分页记录总数
///
public int getCountWhere(string strWhere)
{
lock (_remotingProxy)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select count(*) as Total FROM g_srm ");
if (strWhere.Trim() != "")
{
strSql.Append(" " + strWhere);
}
int i = 0;
DataTable dt = _remotingProxy.GetDataTable(strSql.ToString());
if (dt.Rows.Count > 0)
{
if (dt.Rows[0]["Total"].ToString() != "")
{
i = int.Parse(dt.Rows[0]["Total"].ToString());
}
}
return i;
}
}
///
/// 插入菜单数据
///
///
///
public int saveModelType(Hashtable htParams)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.sys_model_type(type_code,type_name,type_alias,type_desc,cust_pdline_id,create_userid,create_ymd,create_hms) values");
SqlStringBuilder.Append("(@type_code,@type_name,@type_alias,@type_desc,@cust_pdline_id,@create_userid,Convert(varchar(10),getdate(),23),Convert(varchar(10),getdate(),108))");
return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), htParams);
}
}
///
/// 更新菜单数据
///
///
///
public int updateModelType(Hashtable htParams)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE sys_model_type SET ");
SqlStringBuilder.Append("type_code=@type_code,type_name=@type_name,type_alias=@type_alias,type_desc=@type_desc,cust_pdline_id=@cust_pdline_id,update_userid=@update_userid,update_ymd=Convert(varchar(10),getdate(),23),update_hms=Convert(varchar(10),getdate(),108) ");
SqlStringBuilder.Append("WHERE type_id=@type_id ");
return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), htParams);
}
}
///
/// 删除菜单数据
///
///
///
public int deleteSRM(String ruid)
{
lock (_remotingProxy)
{
//status=0 AND del ='N'已发运的不能删除,已删除的不显示
String delStr = @"UPDATE g_srm
SET status=1,del='Y',importNo=0,VIN = ( SELECT VIN
FROM dbo.g_srm
WHERE ruid = @ruid
) + '-DEL' + REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR,GETDATE(),121),'-',''),':',''),' ',''),'.','')
WHERE ruid = @ruid AND status=0 AND del ='N'";
Hashtable htparams = new Hashtable();
htparams.Add("@ruid", ruid);
return _remotingProxy.ExecuteNonQuery(delStr, htparams);
}
}
///
/// 获取VIN号
///
///
///
public string GetVIN(string VIN)
{
lock (_remotingProxy)
{
string SqlString = "SELECT VIN FROM dbo.g_srm WHERE VIN =@VIN";
Hashtable Params = new Hashtable(1);
Params.Add("@VIN", VIN);
object obj = _remotingProxy.GetScalar(SqlString, Params);
return obj != null ? Convert.ToString(obj) : null;
}
}
///
/// 客户零件号是否存在
///
///
public string GetCustPart(string custPart)
{
lock (_remotingProxy)
{
string SqlString = "SELECT cust_part_no FROM dbo.sys_part WHERE part_type = 1 AND cust_part_no = @custPart";
Hashtable Params = new Hashtable(1);
Params.Add("@custPart", custPart);
object obj = _remotingProxy.GetScalar(SqlString, Params);
return obj != null ? Convert.ToString(obj) : null;
}
}
///
/// 获取系统最后一次导入序号
///
///
public int GetImportNo()
{
lock (_remotingProxy)
{
string SqlString = "SELECT ISNULL(MAX(importNo),0) FROM dbo.g_srm";
object obj = _remotingProxy.GetScalar(SqlString);
return obj != null ? Convert.ToInt32(obj) : 0;
}
}
///
/// 导入EXCEL时插入数据
///
///
///
public int InsertData(DataTable dt, int importNo, int userId, string pdlineOff)
{
lock (_remotingProxy)
{
List SqlStrings = new List(dt.Rows.Count);
List ModelCache = new List(dt.Rows.Count);
List hs = new List(dt.Rows.Count);
DataTable dataTime = getDataTime();
for (int i = 0; i < dt.Rows.Count; i++)
{
string CplID = dt.Rows[i][4].ToString().Trim();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(@"INSERT INTO dbo.g_srm
( importNo ,dingDanNo ,zhiDanTime ,dingDanTime ,peiSongType ,
dingDanStatus ,danJuPrint , factory ,vendorCode ,vendorName ,
partNo ,partName ,danWei ,zhuangPeiNo ,kuWei ,
daoKou ,xuQiuQty ,shouHuoQty ,line ,partTypeNo ,
partTypeName ,pickTime ,path ,jianYiDaoDaTime ,qiWangDaoDaTime ,
vendorShipTime ,firstCrossingPointTime ,chaiFenNo ,chaiFenPartNo ,chaiFenBoxNo ,
partQty ,crossingPointNo ,VIN ,daoHuoTime ,shouHuoRen ,
shouHuoSynTime ,huiZhiTime ,updateTime ,zhiDanRen ,enabled ,
planStatus ,shipStatus ,create_userid ,create_ymd ,create_hms,status,location_status
)");
SqlStringBuilder.Append(" values( ");
SqlStringBuilder.Append(@"@importNo ,@dingDanNo ,@zhiDanTime ,@dingDanTime ,@peiSongType ,
@dingDanStatus ,@danJuPrint , @factory ,@vendorCode ,@vendorName ,
@partNo ,@partName ,@danWei ,@zhuangPeiNo ,@kuWei ,
@daoKou ,@xuQiuQty ,@shouHuoQty ,@line ,@partTypeNo ,
@partTypeName ,@pickTime ,@path ,@jianYiDaoDaTime ,@qiWangDaoDaTime ,
@vendorShipTime ,@firstCrossingPointTime ,@chaiFenNo ,@chaiFenPartNo ,@chaiFenBoxNo ,
@partQty ,@crossingPointNo ,@VIN ,@daoHuoTime ,@shouHuoRen ,
@shouHuoSynTime ,@huiZhiTime ,@updateTime ,@zhiDanRen ,@enabled ,
@planStatus ,@shipStatus ,@create_userid ,@create_ymd ,@create_hms,@status,@location_status
)");
Hashtable values = new Hashtable(51);
values.Add("@importNo", importNo);
values.Add("@dingDanNo", dt.Rows[i][0].ToString());
values.Add("@zhiDanTime", dt.Rows[i][1].ToString());
values.Add("@dingDanTime", dt.Rows[i][2].ToString());
values.Add("@peiSongType", dt.Rows[i][3].ToString());
values.Add("@dingDanStatus", dt.Rows[i][4].ToString());
values.Add("@danJuPrint", dt.Rows[i][5].ToString());
values.Add("@factory", dt.Rows[i][6].ToString());
values.Add("@vendorCode", dt.Rows[i][7].ToString());
values.Add("@vendorName", dt.Rows[i][8].ToString());
values.Add("@partNo", dt.Rows[i][9].ToString());
values.Add("@partName", dt.Rows[i][10].ToString());
values.Add("@danWei", dt.Rows[i][11].ToString());
values.Add("@zhuangPeiNo", dt.Rows[i][12].ToString());
values.Add("@kuWei", dt.Rows[i][13].ToString());
values.Add("@daoKou", dt.Rows[i][14].ToString());
values.Add("@xuQiuQty", dt.Rows[i][15].ToString());
values.Add("@shouHuoQty", dt.Rows[i][16].ToString());
values.Add("@line", dt.Rows[i][17].ToString());
values.Add("@partTypeNo", dt.Rows[i][18].ToString());
values.Add("@partTypeName", dt.Rows[i][19].ToString());
values.Add("@pickTime", dt.Rows[i][20].ToString());
values.Add("@path", dt.Rows[i][21].ToString());
values.Add("@jianYiDaoDaTime", dt.Rows[i][22].ToString());
values.Add("@qiWangDaoDaTime", dt.Rows[i][23].ToString());
values.Add("@vendorShipTime", dt.Rows[i][24].ToString());
values.Add("@firstCrossingPointTime", dt.Rows[i][25].ToString());
values.Add("@chaiFenNo", dt.Rows[i][26].ToString());
values.Add("@chaiFenPartNo", dt.Rows[i][27].ToString());
values.Add("@chaiFenBoxNo", dt.Rows[i][28].ToString());
values.Add("@partQty", dt.Rows[i][29].ToString());
values.Add("@crossingPointNo", dt.Rows[i][30].ToString());
values.Add("@VIN", dt.Rows[i][31].ToString());
values.Add("@daoHuoTime", dt.Rows[i][32].ToString());
values.Add("@shouHuoRen", dt.Rows[i][33].ToString());
values.Add("@shouHuoSynTime", dt.Rows[i][34].ToString());
values.Add("@huiZhiTime", dt.Rows[i][35].ToString());
values.Add("@updateTime", dt.Rows[i][36].ToString());
values.Add("@zhiDanRen", dt.Rows[i][37].ToString());
values.Add("@enabled", "Y");
if (pdlineOff.Equals("1"))
{
values.Add("@planStatus", 0);
}
else
{
values.Add("@planStatus", 1);
}
values.Add("@shipStatus", 0);
values.Add("@create_userid", userId);
values.Add("@create_ymd", dataTime.Rows[0][0].ToString());
values.Add("@create_hms", dataTime.Rows[0][1].ToString());
values.Add("@status", 0);
values.Add("@location_status", 0);
SqlStrings.Add(SqlStringBuilder.ToString());
hs.Add(values);
}
if (pdlineOff.Equals("1"))
{
//生成排产计划
if (_remotingProxy.ExecuteSqlTransaction(SqlStrings, hs))
{
List Parameters = new List();
Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@tres", 500));
Hashtable ht = _remotingProxy.ExecuteSotreProcedure("dbo.sys_release_order_srm", Parameters);
if (!ht.ContainsKey("@tres"))
{
//导入成功释放失败
return 2;
}
else
{
//导入成功并释放成功
return 1;
}
}
else
{
//导入失败
return 3;
}
}
else if (pdlineOff.Equals("2"))
{
if (_remotingProxy.ExecuteSqlTransaction(SqlStrings, hs))
{
//只生成SRM发运计划
return 4;
}
}
return 3;
}
}
///
/// 获取时间
///
///
public DataTable getDataTime()
{
lock (_remotingProxy)
{
string SqlString = "select Convert(varchar(10),getdate(),23),Convert(varchar(10),getdate(),108)";
return _remotingProxy.GetDataTable(SqlString);
}
}
#endregion 成员方法
}
}