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 成员方法 } }