Пример #1
0
        /// <summary>
        /// 得到录音表初统计分钟切片表或CTI统计表
        /// </summary>
        /// <param name="ADataBaseConfig"></param>
        /// <param name="AGlobalSetting"></param>
        /// <param name="ATableName"></param>
        /// <param name="ColumnName"></param>
        /// <param name="AObjectType">// 1座席 2分机  3用户 4真实分机 5机构  6 技能组</param>
        /// <param name="AStartTimeLocal"></param>
        /// <param name="AStopTimeLocal"></param>
        /// <param name="AObjectSerialID"></param>
        /// <param name="AStrSum">调用存储过程时的Sum内的列拼的字符串</param>
        /// <returns></returns>
        public static double GetStatisticsValueDayDown(DataBaseConfig ADataBaseConfig, GlobalSetting AGlobalSetting, string ATableName, string AColumnName, int AObjectType, string AStartTimeLocal, string AStopTimeLocal, string AObjectSerialID, KPIFormulaColumn AKpiFormulaColumn)
        {
            double Value01     = 0;
            string ProduceName = string.Empty;

            if (ATableName.Substring(6, 1) == "4")
            {
                ProduceName = "P_46_002";
            }
            else if (ATableName.Substring(6, 1) == "3")
            {
                ProduceName = "P_46_001";
            }
            if (AKpiFormulaColumn.SpecialObjectTypeNumber <= 0)
            {
                return(0);
            }

            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = 0;
            int    errNum      = 0;
            string errMsg      = string.Empty;
            string AOutParam01 = string.Empty;

            try
            {
                switch (ADataBaseConfig.IntDatabaseType)
                {
                //MSSQL
                case 2:
                {
                    DbParameter[] mssqlParameters =
                    {
                        MssqlOperation.GetDbParameter("@ainparam01",      MssqlDataType.Varchar,    5),
                        MssqlOperation.GetDbParameter("@ainparam02",      MssqlDataType.Varchar,    5),
                        MssqlOperation.GetDbParameter("@ainparam03",      MssqlDataType.Varchar,   20),
                        MssqlOperation.GetDbParameter("@ainparam04",      MssqlDataType.Varchar,    5),
                        MssqlOperation.GetDbParameter("@ainparam05",      MssqlDataType.Varchar,   20),
                        MssqlOperation.GetDbParameter("@ainparam06",      MssqlDataType.Varchar,   20),
                        MssqlOperation.GetDbParameter("@ainparam07",      MssqlDataType.Varchar, 5000),
                        MssqlOperation.GetDbParameter("@AOutParam01",     MssqlDataType.Varchar,  100),
                        MssqlOperation.GetDbParameter("@aouterrornumber", MssqlDataType.Bigint,     0),
                        MssqlOperation.GetDbParameter("@aouterrorstring", MssqlDataType.Varchar, 200)
                    };
                    mssqlParameters[0].Value = AGlobalSetting.StrRent;
                    mssqlParameters[1].Value = AObjectType;
                    mssqlParameters[2].Value = AObjectSerialID;
                    mssqlParameters[3].Value = AKpiFormulaColumn.SpecialObjectTypeNumber.ToString();
                    mssqlParameters[4].Value = AStartTimeLocal;
                    mssqlParameters[5].Value = AStopTimeLocal;
                    mssqlParameters[6].Value = AColumnName;

                    mssqlParameters[7].Value     = AOutParam01;
                    mssqlParameters[8].Value     = errNum;
                    mssqlParameters[9].Value     = errMsg;
                    mssqlParameters[7].Direction = ParameterDirection.Output;
                    mssqlParameters[8].Direction = ParameterDirection.Output;
                    mssqlParameters[9].Direction = ParameterDirection.Output;
                    optReturn = MssqlOperation.ExecuteStoredProcedure(ADataBaseConfig.StrDatabaseProfile, ProduceName,
                                                                      mssqlParameters);

                    if (mssqlParameters[8].Value.ToString() != "0")
                    {
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_DBACCESS_FAIL;
                        optReturn.Message = mssqlParameters[9].Value.ToString();
                    }
                    else
                    {
                        Value01 = DoubleParse(mssqlParameters[7].Value.ToString(), 0);
                    }
                }
                break;

                //ORCL
                case 3:
                {
                    DbParameter[] orclParameters =
                    {
                        OracleOperation.GetDbParameter("ainparam01",      OracleDataType.Varchar2,    5),
                        OracleOperation.GetDbParameter("ainparam02",      OracleDataType.Varchar2,    5),
                        OracleOperation.GetDbParameter("ainparam03",      OracleDataType.Varchar2,   20),
                        OracleOperation.GetDbParameter("ainparam04",      OracleDataType.Varchar2,    5),
                        OracleOperation.GetDbParameter("ainparam05",      OracleDataType.Varchar2,   20),
                        OracleOperation.GetDbParameter("ainparam06",      OracleDataType.Varchar2,   20),
                        OracleOperation.GetDbParameter("ainparam07",      OracleDataType.Varchar2, 5000),
                        OracleOperation.GetDbParameter("AOutParam01",     OracleDataType.Varchar2,  100),
                        OracleOperation.GetDbParameter("aouterrornumber", OracleDataType.Int32,       0),
                        OracleOperation.GetDbParameter("aouterrorstring", OracleDataType.Varchar2, 200)
                    };
                    orclParameters[0].Value = AGlobalSetting.StrRent;
                    orclParameters[1].Value = AObjectType;
                    orclParameters[2].Value = AObjectSerialID;
                    orclParameters[3].Value = AKpiFormulaColumn.SpecialObjectTypeNumber.ToString();
                    orclParameters[4].Value = AStartTimeLocal;
                    orclParameters[5].Value = AStopTimeLocal;
                    orclParameters[6].Value = AColumnName;

                    orclParameters[7].Value     = AOutParam01;
                    orclParameters[8].Value     = errNum;
                    orclParameters[9].Value     = errMsg;
                    orclParameters[7].Direction = ParameterDirection.Output;
                    orclParameters[8].Direction = ParameterDirection.Output;
                    orclParameters[9].Direction = ParameterDirection.Output;
                    optReturn = OracleOperation.ExecuteStoredProcedure(ADataBaseConfig.StrDatabaseProfile, ProduceName,
                                                                       orclParameters);
                    if (orclParameters[8].Value.ToString() != "0")
                    {
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_DBACCESS_FAIL;
                        optReturn.Message = orclParameters[9].Value.ToString();
                    }
                    else
                    {
                        Value01 = DoubleParse(orclParameters[7].Value.ToString(), 0);
                    }
                }
                break;
                }
            }
            catch (Exception ex)
            {
                FileLog.WriteInfo("GetCallPeakValue()", "Error:" + ex.Message.ToString());
            }


            return(Value01);
        }
Пример #2
0
        /// <summary>
        /// 创建主键
        /// </summary>
        /// <param name="listParams"></param>
        /// <param name="AStrRent"></param>
        /// <returns></returns>
        public static OperationReturn GetSerialID(DataBaseConfig ADataBaseConfig, List <string> listParams, string AStrRent)
        {
            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = 0;
            try
            {
                //ListParams
                //0     模块编码
                //1     模块内编码
                //2     时间变量
                if (listParams == null || listParams.Count < 3)
                {
                    optReturn.Result  = false;
                    optReturn.Code    = Defines.RET_PARAM_INVALID;
                    optReturn.Message = string.Format("Request param is null or count invalid");
                    return(optReturn);
                }
                string moduleID    = listParams[0];
                string resourceID  = listParams[1];
                string dateFormat  = listParams[2];
                string rentToken   = AStrRent;
                string strSerialID = string.Empty;
                long   errNumber   = 0;
                string strErrMsg   = string.Empty;
                switch (ADataBaseConfig.IntDatabaseType)
                {
                case 2:
                    DbParameter[] mssqlParameters =
                    {
                        MssqlOperation.GetDbParameter("@AInParam01",      MssqlDataType.Varchar,   2),
                        MssqlOperation.GetDbParameter("@AInParam02",      MssqlDataType.Varchar,   3),
                        MssqlOperation.GetDbParameter("@AInParam03",      MssqlDataType.Varchar,   5),
                        MssqlOperation.GetDbParameter("@Ainparam04",      MssqlDataType.Varchar,  20),
                        MssqlOperation.GetDbParameter("@AOutParam01",     MssqlDataType.Varchar,  20),
                        MssqlOperation.GetDbParameter("@AOutErrorNumber", MssqlDataType.Bigint,    0),
                        MssqlOperation.GetDbParameter("@AOutErrorString", MssqlDataType.NVarchar, 4000)
                    };
                    mssqlParameters[0].Value     = moduleID;
                    mssqlParameters[1].Value     = resourceID;
                    mssqlParameters[2].Value     = rentToken;
                    mssqlParameters[3].Value     = dateFormat;
                    mssqlParameters[4].Value     = strSerialID;
                    mssqlParameters[5].Value     = errNumber;
                    mssqlParameters[6].Value     = strErrMsg;
                    mssqlParameters[4].Direction = ParameterDirection.Output;
                    mssqlParameters[5].Direction = ParameterDirection.Output;
                    mssqlParameters[6].Direction = ParameterDirection.Output;
                    optReturn = MssqlOperation.ExecuteStoredProcedure(ADataBaseConfig.StrDatabaseProfile, "P_00_001",
                                                                      mssqlParameters);
                    if (!optReturn.Result)
                    {
                        return(optReturn);
                    }
                    if (mssqlParameters[5].Value.ToString() != "0")
                    {
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_DBACCESS_FAIL;
                        optReturn.Message = string.Format("{0}\t{1}", mssqlParameters[5].Value, mssqlParameters[6].Value);
                    }
                    else
                    {
                        strSerialID    = mssqlParameters[4].Value.ToString();
                        optReturn.Data = strSerialID;
                    }
                    break;

                case 3:
                    DbParameter[] orclParameters =
                    {
                        OracleOperation.GetDbParameter("AInParam01",      OracleDataType.Varchar2,   2),
                        OracleOperation.GetDbParameter("AInParam02",      OracleDataType.Varchar2,   3),
                        OracleOperation.GetDbParameter("AInParam03",      OracleDataType.Varchar2,   5),
                        OracleOperation.GetDbParameter("Ainparam04",      OracleDataType.Varchar2,  20),
                        OracleOperation.GetDbParameter("AOutParam01",     OracleDataType.Varchar2,  20),
                        OracleOperation.GetDbParameter("AOutErrorNumber", OracleDataType.Int32,      0),
                        OracleOperation.GetDbParameter("AOutErrorString", OracleDataType.Nvarchar2, 4000)
                    };
                    orclParameters[0].Value     = moduleID;
                    orclParameters[1].Value     = resourceID;
                    orclParameters[2].Value     = rentToken;
                    orclParameters[3].Value     = dateFormat;
                    orclParameters[4].Value     = strSerialID;
                    orclParameters[5].Value     = errNumber;
                    orclParameters[6].Value     = strErrMsg;
                    orclParameters[4].Direction = ParameterDirection.Output;
                    orclParameters[5].Direction = ParameterDirection.Output;
                    orclParameters[6].Direction = ParameterDirection.Output;
                    optReturn = OracleOperation.ExecuteStoredProcedure(ADataBaseConfig.StrDatabaseProfile, "P_00_001",
                                                                       orclParameters);
                    if (!optReturn.Result)
                    {
                        return(optReturn);
                    }
                    if (orclParameters[5].Value.ToString() != "0")
                    {
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_DBACCESS_FAIL;
                        optReturn.Message = string.Format("{0}\t{1}", orclParameters[5].Value, orclParameters[6].Value);
                    }
                    else
                    {
                        strSerialID    = orclParameters[4].Value.ToString();
                        optReturn.Data = strSerialID;
                    }
                    break;

                default:
                    optReturn.Result  = false;
                    optReturn.Code    = Defines.RET_PARAM_INVALID;
                    optReturn.Message = string.Format("Database type not surpport.\t{0}", ADataBaseConfig.IntDatabaseType);
                    return(optReturn);
                }
            }
            catch (Exception ex)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_FAIL;
                optReturn.Message = ex.Message;
                return(optReturn);
            }
            return(optReturn);
        }