using System; using System.Collections.Generic; using System.Data; using System.Data.OracleClient; using System.Linq; using WX.CRM.Common; using WX.CRM.Model.Entity; using WX.CRM.Model.MAP; namespace WX.CRM.DAL.Csvr { public class CALLRECORD_DAL { public DataSet GetCallRecord(ref Pager pager, QueryUserComboDto usercomboDto, DateTime? V_STIME, DateTime? V_ETIME, int? V_MAXLENGTH, int? V_MINLENGHT, string V_RESID, string V_RECORDID, string V_CNAME, decimal V_CALLTYPE, decimal V_ISCHECKED) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { var p = new List { usercomboDto.companyId.HasValue ? new OracleParameter{ ParameterName="V_COMPANYID", OracleType = OracleType.Number, Value=usercomboDto.companyId.Value } : new OracleParameter{ ParameterName="V_COMPANYID", OracleType = OracleType.Number, Value=DBNull.Value }, string.IsNullOrEmpty(usercomboDto.deptId) ? new OracleParameter{ ParameterName="V_DEPTID", OracleType = OracleType.VarChar,Value=DBNull.Value } : new OracleParameter{ ParameterName="V_DEPTID", OracleType = OracleType.VarChar,Value=usercomboDto.deptId }, string.IsNullOrEmpty(usercomboDto.groupIds) ? new OracleParameter{ ParameterName="V_GROUPID", OracleType = OracleType.VarChar,Value=DBNull.Value } : new OracleParameter{ ParameterName="V_GROUPID", OracleType = OracleType.VarChar,Value=usercomboDto.groupIds }, new OracleParameter{ ParameterName="V_CNAME", OracleType = OracleType.Char, Value=V_CNAME }, usercomboDto.userId.HasValue ? new OracleParameter{ ParameterName="V_USERID", OracleType = OracleType.VarChar,Value=usercomboDto.userId.Value } : new OracleParameter{ ParameterName="V_USERID", OracleType = OracleType.Number,Value=DBNull.Value }, new OracleParameter{ ParameterName="V_STIME", OracleType = OracleType.DateTime,Value=V_STIME }, new OracleParameter{ ParameterName="V_ETIME", OracleType = OracleType.DateTime, Value=V_ETIME }, new OracleParameter{ ParameterName="V_MINLENGTH", OracleType = OracleType.Number, Value=V_MINLENGHT }, new OracleParameter{ ParameterName="V_MAXLENGTH", OracleType = OracleType.Number, Value=V_MAXLENGTH }, new OracleParameter{ ParameterName="V_RESID", OracleType = OracleType.VarChar, Value=V_RESID }, new OracleParameter{ ParameterName="V_RECORDID", OracleType = OracleType.VarChar, Value=V_RECORDID }, new OracleParameter{ ParameterName="V_CALLTYPE", OracleType = OracleType.Number, Value=V_CALLTYPE }, new OracleParameter{ ParameterName="V_PAGESIZE", OracleType = OracleType.Number, Value=pager.rows }, new OracleParameter{ ParameterName="V_PAGEINDEX", OracleType = OracleType.Number, Value=pager.page }, new OracleParameter{ ParameterName="V_ISCHECKED", OracleType = OracleType.Number, Value=V_ISCHECKED }, new OracleParameter{ParameterName="p_sqlData",OracleType=OracleType.Cursor,Direction = ParameterDirection.Output} }; var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_CSVR.CSVR_CALLRECORDQUERY", p.ToArray()); trans.Commit(); if (null != ds && ds.Tables[0].Rows.Count > 0) pager.totalRows = Convert.ToInt32(ds.Tables[0].Rows[0]["ROWCOUNT"]); else pager.totalRows = 0; return ds; } } catch { throw; } finally { conn.Close(); } } public DataSet GetUnCallRecord(ref Pager pager, QueryUserComboDto usercomboDto, DateTime? V_STIME, DateTime? V_ETIME, int? V_MAXLENGTH, int? V_MINLENGHT, string V_RESID, string V_RECORDID, decimal V_CALLTYPE, decimal V_ISCHECKED) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { var p = new List { usercomboDto.companyId.HasValue ? new OracleParameter{ ParameterName="V_COMPANYID", OracleType = OracleType.Number, Value=usercomboDto.companyId.Value } : new OracleParameter{ ParameterName="V_COMPANYID", OracleType = OracleType.Number, Value=DBNull.Value }, string.IsNullOrEmpty(usercomboDto.deptId) ? new OracleParameter{ ParameterName="V_DEPTID", OracleType = OracleType.VarChar,Value=DBNull.Value } : new OracleParameter{ ParameterName="V_DEPTID", OracleType = OracleType.VarChar,Value=usercomboDto.deptId }, string.IsNullOrEmpty(usercomboDto.groupIds) ? new OracleParameter{ ParameterName="V_GROUPID", OracleType = OracleType.VarChar,Value=DBNull.Value } : new OracleParameter{ ParameterName="V_GROUPID", OracleType = OracleType.VarChar,Value=usercomboDto.groupIds }, usercomboDto.userId.HasValue ? new OracleParameter{ ParameterName="V_USERID", OracleType = OracleType.VarChar,Value=usercomboDto.userId.Value } : new OracleParameter{ ParameterName="V_USERID", OracleType = OracleType.Number,Value=DBNull.Value }, new OracleParameter{ ParameterName="V_STIME", OracleType = OracleType.DateTime,Value=V_STIME }, new OracleParameter{ ParameterName="V_ETIME", OracleType = OracleType.DateTime, Value=V_ETIME }, new OracleParameter{ ParameterName="V_MINLENGTH", OracleType = OracleType.Number, Value=V_MINLENGHT }, new OracleParameter{ ParameterName="V_MAXLENGTH", OracleType = OracleType.Number, Value=V_MAXLENGTH }, new OracleParameter{ ParameterName="V_RESID", OracleType = OracleType.Char, Value=V_RESID }, new OracleParameter{ ParameterName="V_RECORDID", OracleType = OracleType.VarChar, Value=V_RECORDID }, new OracleParameter{ ParameterName="V_CALLTYPE", OracleType = OracleType.Number, Value=V_CALLTYPE }, new OracleParameter{ ParameterName="V_PAGESIZE", OracleType = OracleType.Number, Value=pager.rows }, new OracleParameter{ ParameterName="V_PAGEINDEX", OracleType = OracleType.Number, Value=pager.page }, //new OracleParameter{ ParameterName="V_ISCHECKED", OracleType = OracleType.Number, Value=V_ISCHECKED }, new OracleParameter{ParameterName="p_sqlData",OracleType=OracleType.Cursor,Direction = ParameterDirection.Output} }; var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_CSVR.CSVR_UNCALLRECORDQUERY", p.ToArray()); trans.Commit(); if (null != ds && ds.Tables[0].Rows.Count > 0) pager.totalRows = Convert.ToInt32(ds.Tables[0].Rows[0]["ROWCOUNT"]); else pager.totalRows = 0; return ds; } } catch { throw; } finally { conn.Close(); } } public DataSet GetOrderCallRecord(ref Pager pager, string V_DEPTID, string V_GROUPID, string V_USERID, DateTime? V_STIME, DateTime? V_ETIME, int? V_MAXLENGTH, int? V_MINLENGHT, string V_RESID, string V_RECORDID, decimal V_CALLTYPE) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { OracleParameter[] p = new[] { new OracleParameter{ ParameterName="V_DEPTID", OracleType = OracleType.VarChar,Value=V_DEPTID }, new OracleParameter{ ParameterName="V_GROUPID", OracleType = OracleType.VarChar,Value=V_GROUPID }, new OracleParameter{ ParameterName="V_USERID", OracleType = OracleType.VarChar,Value=V_USERID }, new OracleParameter{ ParameterName="V_STIME", OracleType = OracleType.DateTime,Value=V_STIME }, new OracleParameter{ ParameterName="V_ETIME", OracleType = OracleType.DateTime, Value=V_ETIME }, new OracleParameter{ ParameterName="V_MINLENGTH", OracleType = OracleType.Number, Value=V_MINLENGHT }, new OracleParameter{ ParameterName="V_MAXLENGTH", OracleType = OracleType.Number, Value=V_MAXLENGTH }, new OracleParameter{ ParameterName="V_RESID", OracleType = OracleType.Char, Value=V_RESID }, new OracleParameter{ ParameterName="V_RECORDID", OracleType = OracleType.VarChar, Value=V_RECORDID }, new OracleParameter{ ParameterName="V_CALLTYPE", OracleType = OracleType.Number, Value=V_CALLTYPE }, new OracleParameter{ ParameterName="V_PAGESIZE", OracleType = OracleType.Number, Value=pager.rows }, new OracleParameter{ ParameterName="V_PAGEINDEX", OracleType = OracleType.Number, Value=pager.page }, new OracleParameter{ParameterName="p_sqlData",OracleType=OracleType.Cursor,Direction = ParameterDirection.Output} }; var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_CSVR.CSVR_CALLRECORDORDERQUERY", p); trans.Commit(); if (null != ds && ds.Tables[0].Rows.Count > 0) pager.totalRows = Convert.ToInt32(ds.Tables[0].Rows[0]["ROWCOUNT"]); else pager.totalRows = 0; return ds; } } catch { throw; } finally { conn.Close(); } } //质检录音查询 public DataSet GetOACallRecord(ref Pager pager, string V_GROUPNAME, decimal? V_USEREID, DateTime? V_STIME, DateTime? V_ETIME, int? V_MAXLENGTH, int? V_MINLENGHT, string V_RESID, decimal? V_RECORDID, decimal? V_TYPE) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { OracleParameter[] p = new[] { new OracleParameter{ ParameterName="V_GROUPNAME", OracleType = OracleType.VarChar,Value=V_GROUPNAME }, new OracleParameter{ ParameterName="V_USEREID", OracleType = OracleType.Number,Value=V_USEREID }, new OracleParameter{ ParameterName="V_STIME", OracleType = OracleType.DateTime,Value=V_STIME }, new OracleParameter{ ParameterName="V_ETIME", OracleType = OracleType.DateTime, Value=V_ETIME }, new OracleParameter{ ParameterName="V_MINLENGTH", OracleType = OracleType.Number, Value=V_MINLENGHT }, new OracleParameter{ ParameterName="V_MAXLENGTH", OracleType = OracleType.Number, Value=V_MAXLENGTH }, new OracleParameter{ ParameterName="V_RESID", OracleType = OracleType.Char, Value=V_RESID }, new OracleParameter{ ParameterName="V_RECORDID", OracleType = OracleType.Number, Value=V_RECORDID }, new OracleParameter{ ParameterName="V_TYPE", OracleType = OracleType.Number, Value=V_TYPE }, new OracleParameter{ ParameterName="V_PAGESIZE", OracleType = OracleType.Number, Value=pager.rows }, new OracleParameter{ ParameterName="V_PAGEINDEX", OracleType = OracleType.Number, Value=pager.page }, new OracleParameter{ParameterName="p_sqlData",OracleType=OracleType.Cursor,Direction = ParameterDirection.Output} }; var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_CSVR.CSVR_OARECORDQUERY", p); trans.Commit(); return ds; } } catch { throw; } finally { conn.Close(); } } public CSVR_TODAYRECORD GetNewestCallRecord(string resid, decimal salerid, DateTime ctime) { DateTime time2 = ctime.AddMinutes(-30); string sql = @"select t1.* from csvr_callrecord t1 join bas_inneruser t2 on t1.saleseid = t2.eid join res_customer t3 on t1.resid = t3.resid join res_customer t4 on t3.customerid = t4.customerid where t4.resid = :v_resid and t2.pkid=:v_salesid and t1.TIMESTART<:v_btime and t1.timeend > :v_btime2 "; OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { var p = new List { new OracleParameter { ParameterName = "v_resid", OracleType = OracleType.VarChar, Value = resid }, new OracleParameter { ParameterName = "v_salesid", OracleType = OracleType.Number, Value = salerid }, new OracleParameter { ParameterName = "v_btime", OracleType = OracleType.DateTime, Value = ctime }, new OracleParameter { ParameterName = "v_btime2", OracleType = OracleType.DateTime, Value = time2 } }; var ds = OracleHelper.DataQueray(CommandType.Text, sql, p.ToArray()); var dslist = ds.Tables[0].ToList(); var rs = dslist.OrderByDescending(m => m.TIMESTART).FirstOrDefault(); if (conn.State == ConnectionState.Open) conn.Close(); return rs; } catch (Exception) { throw; } finally { conn.Close(); } } public List GetNoEndTime() { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { OracleParameter[] p = new[] { new OracleParameter{ParameterName="p_sqlData",OracleType=OracleType.Cursor,Direction = ParameterDirection.Output} }; var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_CSVR.CSVR_GETNOENDTIME", p); trans.Commit(); return ds.Tables[0].ToList(); } } catch { throw; } finally { conn.Close(); } } /// /// 初始化工单通话时间 /// public void InitOrderCallTime() { OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_CSVR.CSVR_INITNOENDTIME"); } /// /// 给没有时间的数据获取通话时间 /// /// /// public void UpdateNoTimeBymemoids(string Memoids) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { OracleParameter[] p = { new OracleParameter("V_MemoIDs",OracleType.VarChar), }; p[0].Value = Memoids; OracleHelper.ExecuteNonQuery(trans, CommandType.StoredProcedure, "PACK_CSVR.CSVR_DetaileINITNOENDTIME", p); trans.Commit(); } } catch { throw; } finally { if (conn.State == ConnectionState.Open) conn.Close(); } } public DataSet GetCallRecordHis(string V_RESID, decimal? V_RECORDID) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { OracleParameter[] p = new[] { new OracleParameter{ ParameterName="V_RESID", OracleType = OracleType.VarChar, Value=V_RESID }, new OracleParameter{ ParameterName="V_RECORDID", OracleType = OracleType.Number, Value=V_RECORDID }, new OracleParameter{ParameterName="p_sqlData",OracleType=OracleType.Cursor,Direction = ParameterDirection.Output} }; var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_CSVR.CSVR_CALLRECORDHIS", p); trans.Commit(); return ds; } } catch { throw; } finally { conn.Close(); } } public int RestoreCallRecord(string resid, DateTime start, DateTime end) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { var sql = @"insert into csvr_callrecord select distinct * from csvr_callrecord_his t1 where resid=:v_resid and timestart>=:v_start and timestart<:v_end and not exists(select 1 from csvr_callrecord t2 where t2.pkid=t1.pkid)"; var pa = new[] { new OracleParameter{ ParameterName="v_resid", OracleType = OracleType.NVarChar, Value=resid }, new OracleParameter{ ParameterName="v_start", OracleType = OracleType.DateTime, Value=start.AddDays(1) }, new OracleParameter{ParameterName="v_end",OracleType=OracleType.DateTime, Value = end} }; return OracleHelper.ExecuteNonQuery(CommandType.Text, sql, pa); } catch { throw; } finally { conn.Close(); } } public DataSet GetZhenGuCount(string typeid, DateTime time1, DateTime time2) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { OracleParameter[] p = new[] { new OracleParameter {ParameterName = "v_typeid", OracleType = OracleType.VarChar, Value = typeid}, new OracleParameter {ParameterName = "v_time1", OracleType = OracleType.DateTime, Value = time1}, new OracleParameter {ParameterName = "v_time2", OracleType = OracleType.DateTime, Value = time2}, new OracleParameter {ParameterName = "p_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output}, new OracleParameter {ParameterName = "p_data2", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output} }; var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_CSVR.CSVR_GetZhenGuCount", p); trans.Commit(); return ds; } } catch { throw; } finally { conn.Close(); } } } }