示例#1
0
 public static bool insertMPVBasePlusSft(MPVBasePlusSftClass newClass, bool isNew)
 {
     try
     {
         bool isok = false;
         if (isNew)
         {
             isok = DAL.AlgorithmDAL.insertMPVBasePlusSft(newClass);
         }
         else
         {
             isok = DAL.AlgorithmDAL.updateMPVBasePlusSft(newClass);
         }
         return(isok);
     }
     catch (Exception)
     {
         throw;
     }
 }
示例#2
0
        public static Results Calcu(List <PValue>[] inputs, CalcuInfo calcuinfo)
        {
            //公用变量
            bool   _errorFlag   = false;
            string _errorInfo   = "";
            bool   _warningFlag = false;
            string _warningInfo = "";
            bool   _fatalFlag   = false;
            string _fatalInfo   = "";

            int i;

            //0输出初始化:该算法如果没有有效输入值(inputs为null)或者输入值得有效值为null,给出的计算结果。值为0,计算标志位为StatusConst.InputIsNull
            List <PValue>[] results = new List <PValue> [16];
            for (i = 0; i < results.Length; i++)
            {
                results[i] = new List <PValue>();
                results[i].Add(new PValue(0, calcuinfo.fstarttime, calcuinfo.fendtime, (long)StatusConst.InputIsNull));
            }

            try
            {
                //读取参数

                double N1, N2, N3, k, b, stbl, nostbl;
                string mode;
                MPVBasePlusSftClass mpvMessageInClass = new MPVBasePlusSftClass();
                string[]            paras             = calcuinfo.fparas.Split(';');

                N1     = int.Parse(paras[0]);
                N2     = int.Parse(paras[1]);
                N3     = double.Parse(paras[2]);
                k      = double.Parse(paras[3]);
                b      = double.Parse(paras[4]);
                stbl   = double.Parse(paras[5]);
                nostbl = double.Parse(paras[6]);
                //tagId
                string type = calcuInfo.fsourtagids[0].ToString();

                List <PValue> input = new List <PValue>();
                input = inputs[0];
                //0.1、输入处理:截止时刻值。该算法不需要截止时刻点参与计算。
                if (input.Count > 1)
                {
                    input.RemoveAt(input.Count - 1);
                }
                //0.2、输入处理:过滤后结果。
                //——如果去除了截止时刻点,过滤后长度小于1(计算要求至少有一个有效数据),则直接返回null
                //——如果没取除截止时刻点,过滤后长度小于2(计算要求至少有一个有效数据和一个截止时刻值)
                if (input.Count < 1)
                {
                    _warningFlag = true;
                    _warningInfo = "对应时间段内的源数据状态位全部异常。";
                    return(new Results(results, _errorFlag, _errorInfo, _warningFlag, _warningInfo, _fatalFlag, _fatalInfo));
                }
                List <string> dutyList = new List <string>();
                for (int l = 7; l < paras.Length; l += 2)
                {
                    dutyList.Add(paras[l] + ":" + paras[l + 1]);
                }
                string  dutyEndTime = string.Empty;
                string  dutyTime    = AlgorithmBLL.getDutyConst(input[0].Timestamp, dutyList, ref dutyEndTime);
                DataSet ds          = BLL.AlgorithmBLL.getSftData("psl_mpvbaseplussft", type, dutyTime);

                mpvMessageInClass.type = type;
                bool isNewAdd = false;
                if (ds.Tables[0] == null || ds.Tables[0].Rows.Count == 0)
                {
                    isNewAdd = true;
                    mpvMessageInClass.dutyTime   = input[input.Count() - 1].Endtime.ToString("yyyy-MM-dd HH:mm");
                    mpvMessageInClass.PVBMin     = input[input.Count() - 1].Value.ToString();
                    mpvMessageInClass.PVBMinTime = input[input.Count() - 1].Endtime.ToString();
                    mpvMessageInClass.PVBAvg     = input[input.Count() - 1].Value.ToString();
                    mpvMessageInClass.PVBMax     = input[input.Count() - 1].Value.ToString();
                    mpvMessageInClass.PVBMaxTime = input[input.Count() - 1].Endtime.ToString();
                    mpvMessageInClass.PVBSum     = input[input.Count() - 1].Value.ToString();
                    mpvMessageInClass.PVBSumkb   = (input[input.Count() - 1].Value * k + b).ToString();
                    mpvMessageInClass.PVBAbsSum  = Math.Abs(input[input.Count() - 1].Value).ToString();
                    double Xi = Math.Abs(input[input.Count() - 1].Value - input[input.Count() - 2].Value);
                    if (Xi <= stbl)
                    {
                        mpvMessageInClass.PVBStbTR   = "1";
                        mpvMessageInClass.PVBNoStbTR = "0";
                    }
                    else if (Xi > nostbl)
                    {
                        mpvMessageInClass.PVBStbTR   = "0";
                        mpvMessageInClass.PVBNoStbTR = "1";
                    }
                    else
                    {
                        mpvMessageInClass.PVBStbTR   = "0";
                        mpvMessageInClass.PVBNoStbTR = "0";
                    }
                    mpvMessageInClass.PVBSDMax    = Xi.ToString();
                    mpvMessageInClass.PVBSDSingle = Xi.ToString();
                    if (input[input.Count() - 1].Value - input[input.Count() - 2].Value < 0)
                    {
                        mpvMessageInClass.PVBSDSingleType = "2";
                    }
                    else if (input[input.Count() - 1].Value - input[input.Count() - 2].Value > 0)
                    {
                        mpvMessageInClass.PVBSDSingleType = "1";
                    }
                    else
                    {
                        mpvMessageInClass.PVBSDSingleType = "0";
                    }
                    mpvMessageInClass.PVBDN1Num       = "0";
                    mpvMessageInClass.PVBDN2Num       = "0";
                    mpvMessageInClass.PVBDN3Num       = "0";
                    mpvMessageInClass.PVBTNum         = "0";
                    mpvMessageInClass.PVBSDSingleTime = input[input.Count() - 2].Endtime.ToString("yyyy-MM-dd HH:mm");
                    mpvMessageInClass.UpdateTime      = input[input.Count() - 1].Endtime.ToString("yyyy-MM-dd HH:mm");
                    mpvMessageInClass.EffectiveCount  = "2";
                }
                else
                {
                    MPVBasePlusSftClass mpvClass = new MPVBasePlusSftClass();
                    mpvClass.PVBMin          = ds.Tables[0].Rows[0]["PVBMin"].ToString();
                    mpvClass.PVBMinTime      = ds.Tables[0].Rows[0]["PVBMinTime"].ToString();
                    mpvClass.PVBAvg          = ds.Tables[0].Rows[0]["PVBAvg"].ToString();
                    mpvClass.PVBMax          = ds.Tables[0].Rows[0]["PVBMax"].ToString();
                    mpvClass.PVBMaxTime      = ds.Tables[0].Rows[0]["PVBMaxTime"].ToString();
                    mpvClass.PVBSum          = ds.Tables[0].Rows[0]["PVBSum"].ToString();
                    mpvClass.PVBSumkb        = ds.Tables[0].Rows[0]["PVBSumkb"].ToString();
                    mpvClass.PVBAbsSum       = ds.Tables[0].Rows[0]["PVBAbsSum"].ToString();
                    mpvClass.PVBStbTR        = ds.Tables[0].Rows[0]["PVBStbTR"].ToString();
                    mpvClass.PVBNoStbTR      = ds.Tables[0].Rows[0]["PVBNoStbTR"].ToString();
                    mpvClass.UpdateTime      = ds.Tables[0].Rows[0]["UpdateTime"].ToString();
                    mpvClass.EffectiveCount  = ds.Tables[0].Rows[0]["EffectiveCount"].ToString();
                    mpvClass.PVBSDMax        = ds.Tables[0].Rows[0]["PVBSDMax"].ToString();
                    mpvClass.PVBSDMaxTime    = ds.Tables[0].Rows[0]["PVBSDMaxTime"].ToString();
                    mpvClass.PVBDN1Num       = ds.Tables[0].Rows[0]["PVBDN1Num"].ToString();
                    mpvClass.PVBDN2Num       = ds.Tables[0].Rows[0]["PVBDN2Num"].ToString();
                    mpvClass.PVBDN3Num       = ds.Tables[0].Rows[0]["PVBDN3Num"].ToString();
                    mpvClass.PVBTNum         = ds.Tables[0].Rows[0]["PVBTNum"].ToString();
                    mpvClass.PVBSDSingle     = ds.Tables[0].Rows[0]["PVBSDSingle"].ToString();
                    mpvClass.PVBSDSingleTime = ds.Tables[0].Rows[0]["PVBSDSingleTime"].ToString();
                    mpvClass.PVBSDSingleType = ds.Tables[0].Rows[0]["PVBSDSingleType"].ToString();

                    if (Convert.ToDouble(mpvClass.PVBMin) > input[input.Count() - 1].Value)
                    {
                        mpvMessageInClass.PVBMin     = input[input.Count() - 1].Value.ToString();
                        mpvMessageInClass.PVBMinTime = input[input.Count() - 1].Endtime.ToString("yyyy-MM-dd HH:mm");
                    }
                    else
                    {
                        mpvMessageInClass.PVBMin     = mpvClass.PVBMin;
                        mpvMessageInClass.PVBMinTime = mpvClass.PVBMinTime;
                    }
                    mpvMessageInClass.PVBAvg = Math.Round((Convert.ToDouble(mpvClass.PVBAvg) * Convert.ToDouble(mpvClass.EffectiveCount)) / (Convert.ToDouble(mpvClass.EffectiveCount) + (double)1), 3).ToString();
                    if (Convert.ToDouble(mpvClass.PVBMax) < input[input.Count() - 1].Value)
                    {
                        mpvMessageInClass.PVBMax     = input[input.Count() - 1].Value.ToString();
                        mpvMessageInClass.PVBMaxTime = input[input.Count() - 1].Endtime.ToString("yyyy-MM-dd HH:mm");
                    }
                    else
                    {
                        mpvMessageInClass.PVBMax     = mpvClass.PVBMax;
                        mpvMessageInClass.PVBMaxTime = mpvClass.PVBMaxTime;
                    }
                    mpvMessageInClass.PVBSum    = (Convert.ToDouble(mpvClass.PVBSum) + input[input.Count() - 1].Value).ToString();
                    mpvMessageInClass.PVBSumkb  = (Convert.ToDouble(mpvMessageInClass.PVBSum) * k + b).ToString();
                    mpvMessageInClass.PVBAbsSum = (Convert.ToDouble(mpvClass.PVBAbsSum) + Math.Abs(input[input.Count() - 1].Value)).ToString();
                    double Xi = Math.Abs(input[input.Count() - 1].Value - input[input.Count() - 2].Value);
                    if (Xi <= stbl)
                    {
                        mpvMessageInClass.PVBStbTR   = Math.Round((Convert.ToDouble(mpvClass.EffectiveCount) * Convert.ToDouble(mpvClass.PVBStbTR) + (double)1) / (Convert.ToDouble(mpvClass.EffectiveCount) + (double)1), 3).ToString();
                        mpvMessageInClass.PVBNoStbTR = Math.Round((Convert.ToDouble(mpvClass.EffectiveCount) * Convert.ToDouble(mpvClass.PVBNoStbTR)) / (Convert.ToDouble(mpvClass.EffectiveCount) + (double)1), 3).ToString();
                    }
                    else if (Xi > nostbl)
                    {
                        mpvMessageInClass.PVBStbTR   = Math.Round((Convert.ToDouble(mpvClass.EffectiveCount) * Convert.ToDouble(mpvClass.PVBStbTR)) / (Convert.ToDouble(mpvClass.EffectiveCount) + (double)1), 3).ToString();
                        mpvMessageInClass.PVBNoStbTR = Math.Round((Convert.ToDouble(mpvClass.EffectiveCount) * Convert.ToDouble(mpvClass.PVBNoStbTR) + (double)1) / (Convert.ToDouble(mpvClass.EffectiveCount) + (double)1), 3).ToString();
                    }
                    else
                    {
                        mpvMessageInClass.PVBStbTR   = Math.Round((Convert.ToDouble(mpvClass.EffectiveCount) * Convert.ToDouble(mpvClass.PVBStbTR)) / (Convert.ToDouble(mpvClass.EffectiveCount) + (double)1), 3).ToString();
                        mpvMessageInClass.PVBNoStbTR = Math.Round((Convert.ToDouble(mpvClass.EffectiveCount) * Convert.ToDouble(mpvClass.PVBNoStbTR)) / (Convert.ToDouble(mpvClass.EffectiveCount) + (double)1), 3).ToString();
                    }

                    if (input[input.Count() - 1].Value - input[input.Count() - 2].Value < 0)
                    {
                        if (mpvClass.PVBSDSingleType == "1")
                        {
                            if (Convert.ToDouble(mpvClass.PVBSDSingle) > N1)
                            {
                                mpvMessageInClass.PVBDN1Num = (Convert.ToInt32(mpvClass.PVBDN1Num) + 1).ToString();
                            }
                            if (Convert.ToDouble(mpvClass.PVBSDSingle) > N2)
                            {
                                mpvMessageInClass.PVBDN2Num = (Convert.ToInt32(mpvClass.PVBDN2Num) + 1).ToString();
                            }
                            if (Convert.ToDouble(mpvClass.PVBSDSingle) > N3)
                            {
                                mpvMessageInClass.PVBDN3Num = (Convert.ToInt32(mpvClass.PVBDN3Num) + 1).ToString();
                            }
                            mpvMessageInClass.PVBTNum         = (Convert.ToInt32(mpvClass.PVBTNum) + 1).ToString();
                            mpvMessageInClass.PVBSDSingle     = Xi.ToString();
                            mpvMessageInClass.PVBSDSingleTime = input[input.Count() - 2].Endtime.ToString("yyyy-MM-dd HH:mm");
                            if (Convert.ToDouble(mpvMessageInClass.PVBSDSingle) > Convert.ToDouble(mpvMessageInClass.PVBSDMax))
                            {
                                mpvMessageInClass.PVBSDMax     = Xi.ToString();
                                mpvMessageInClass.PVBSDMaxTime = input[input.Count() - 2].Endtime.ToString("yyyy-MM-dd HH:mm");
                            }
                            else
                            {
                                mpvMessageInClass.PVBSDMax     = mpvClass.PVBSDMax;
                                mpvMessageInClass.PVBSDMaxTime = mpvClass.PVBSDMaxTime;
                            }
                        }
                        else if (mpvClass.PVBSDSingleType == "2")
                        {
                            mpvMessageInClass.PVBSDSingle     = (Convert.ToDouble(mpvClass.PVBSDSingle) + Xi).ToString();
                            mpvMessageInClass.PVBSDSingleTime = mpvClass.PVBSDSingleTime;
                            if (mpvClass.PVBSDSingleTime == mpvClass.PVBSDMaxTime)
                            {
                                mpvMessageInClass.PVBSDMax     = (Convert.ToDouble(mpvClass.PVBSDSingle) + Xi).ToString();
                                mpvMessageInClass.PVBSDMaxTime = mpvClass.PVBSDMaxTime;
                            }
                            else
                            {
                                if (Convert.ToDouble(mpvMessageInClass.PVBSDSingle) > Convert.ToDouble(mpvMessageInClass.PVBSDMax))
                                {
                                    mpvMessageInClass.PVBSDMax     = (Convert.ToDouble(mpvClass.PVBSDSingle) + Xi).ToString();
                                    mpvMessageInClass.PVBSDMaxTime = mpvClass.PVBSDSingleTime;
                                }
                                else
                                {
                                    mpvMessageInClass.PVBSDMax     = mpvClass.PVBSDMax;
                                    mpvMessageInClass.PVBSDMaxTime = mpvClass.PVBSDMaxTime;
                                }
                            }
                            mpvMessageInClass.PVBDN1Num = mpvClass.PVBDN1Num;
                            mpvMessageInClass.PVBDN2Num = mpvClass.PVBDN2Num;
                            mpvMessageInClass.PVBDN3Num = mpvClass.PVBDN3Num;
                            mpvMessageInClass.PVBTNum   = mpvClass.PVBTNum;
                        }
                        else
                        {
                            mpvMessageInClass.PVBDN1Num = mpvClass.PVBDN1Num;
                            mpvMessageInClass.PVBDN2Num = mpvClass.PVBDN2Num;
                            mpvMessageInClass.PVBDN3Num = mpvClass.PVBDN3Num;
                            mpvMessageInClass.PVBTNum   = mpvClass.PVBTNum;

                            mpvMessageInClass.PVBSDSingle     = Xi.ToString();
                            mpvMessageInClass.PVBSDSingleTime = input[input.Count() - 2].Endtime.ToString("yyyy-MM-dd HH:mm");

                            mpvMessageInClass.PVBSDMax     = mpvMessageInClass.PVBSDSingle;
                            mpvMessageInClass.PVBSDMaxTime = mpvMessageInClass.PVBSDSingleTime;
                        }
                        mpvMessageInClass.PVBSDSingleType = "2";
                    }
                    else if (input[input.Count() - 1].Value - input[input.Count() - 2].Value > 0)
                    {
                        if (mpvClass.PVBSDSingleType == "1")
                        {
                            mpvMessageInClass.PVBSDSingle     = (Convert.ToDouble(mpvClass.PVBSDSingle) + Xi).ToString();
                            mpvMessageInClass.PVBSDSingleTime = mpvClass.PVBSDSingleTime;
                            if (mpvClass.PVBSDSingleTime == mpvClass.PVBSDMaxTime)
                            {
                                mpvMessageInClass.PVBSDMax     = (Convert.ToDouble(mpvClass.PVBSDSingle) + Xi).ToString();
                                mpvMessageInClass.PVBSDMaxTime = mpvClass.PVBSDMaxTime;
                            }
                            else
                            {
                                if (Convert.ToDouble(mpvMessageInClass.PVBSDSingle) > Convert.ToDouble(mpvMessageInClass.PVBSDMax))
                                {
                                    mpvMessageInClass.PVBSDMax     = (Convert.ToDouble(mpvClass.PVBSDSingle) + Xi).ToString();
                                    mpvMessageInClass.PVBSDMaxTime = mpvClass.PVBSDSingleTime;
                                }
                                else
                                {
                                    mpvMessageInClass.PVBSDMax     = mpvClass.PVBSDMax;
                                    mpvMessageInClass.PVBSDMaxTime = mpvClass.PVBSDMaxTime;
                                }
                            }
                            mpvMessageInClass.PVBDN1Num = mpvClass.PVBDN1Num;
                            mpvMessageInClass.PVBDN2Num = mpvClass.PVBDN2Num;
                            mpvMessageInClass.PVBDN3Num = mpvClass.PVBDN3Num;
                            mpvMessageInClass.PVBTNum   = mpvClass.PVBTNum;
                        }
                        else if (mpvClass.PVBSDSingleType == "2")
                        {
                            if (Convert.ToDouble(mpvClass.PVBSDSingle) > N1)
                            {
                                mpvMessageInClass.PVBDN1Num = (Convert.ToInt32(mpvClass.PVBDN1Num) + 1).ToString();
                            }
                            if (Convert.ToDouble(mpvClass.PVBSDSingle) > N2)
                            {
                                mpvMessageInClass.PVBDN2Num = (Convert.ToInt32(mpvClass.PVBDN2Num) + 1).ToString();
                            }
                            if (Convert.ToDouble(mpvClass.PVBSDSingle) > N3)
                            {
                                mpvMessageInClass.PVBDN3Num = (Convert.ToInt32(mpvClass.PVBDN3Num) + 1).ToString();
                            }
                            mpvMessageInClass.PVBTNum         = (Convert.ToInt32(mpvClass.PVBTNum) + 1).ToString();
                            mpvMessageInClass.PVBSDSingle     = Xi.ToString();
                            mpvMessageInClass.PVBSDSingleTime = input[input.Count() - 2].Endtime.ToString("yyyy-MM-dd HH:mm");
                            if (Convert.ToDouble(mpvMessageInClass.PVBSDSingle) > Convert.ToDouble(mpvMessageInClass.PVBSDMax))
                            {
                                mpvMessageInClass.PVBSDMax     = Xi.ToString();
                                mpvMessageInClass.PVBSDMaxTime = input[input.Count() - 2].Endtime.ToString("yyyy-MM-dd HH:mm");
                            }
                            else
                            {
                                mpvMessageInClass.PVBSDMax     = mpvClass.PVBSDMax;
                                mpvMessageInClass.PVBSDMaxTime = mpvClass.PVBSDMaxTime;
                            }
                        }
                        else
                        {
                            mpvMessageInClass.PVBDN1Num = mpvClass.PVBDN1Num;
                            mpvMessageInClass.PVBDN2Num = mpvClass.PVBDN2Num;
                            mpvMessageInClass.PVBDN3Num = mpvClass.PVBDN3Num;
                            mpvMessageInClass.PVBTNum   = mpvClass.PVBTNum;

                            mpvMessageInClass.PVBSDSingle     = Xi.ToString();
                            mpvMessageInClass.PVBSDSingleTime = input[input.Count() - 2].Endtime.ToString("yyyy-MM-dd HH:mm");

                            mpvMessageInClass.PVBSDMax     = mpvMessageInClass.PVBSDSingle;
                            mpvMessageInClass.PVBSDMaxTime = mpvMessageInClass.PVBSDSingleTime;
                        }
                        mpvMessageInClass.PVBSDSingleType = "1";
                    }
                    else
                    {
                        if (mpvClass.PVBSDSingleType == "0")
                        {
                            mpvMessageInClass.PVBDN1Num = mpvClass.PVBDN1Num;
                            mpvMessageInClass.PVBDN2Num = mpvClass.PVBDN2Num;
                            mpvMessageInClass.PVBDN3Num = mpvClass.PVBDN3Num;
                            mpvMessageInClass.PVBTNum   = mpvClass.PVBTNum;

                            mpvMessageInClass.PVBSDSingle     = "0";
                            mpvMessageInClass.PVBSDSingleTime = input[input.Count() - 2].Endtime.ToString("yyyy-MM-dd HH:mm");

                            mpvMessageInClass.PVBSDMax     = mpvClass.PVBSDMax;
                            mpvMessageInClass.PVBSDMaxTime = mpvClass.PVBSDMaxTime;
                        }
                        else
                        {
                            if (Convert.ToDouble(mpvClass.PVBSDSingle) > N1)
                            {
                                mpvMessageInClass.PVBDN1Num = (Convert.ToInt32(mpvClass.PVBDN1Num) + 1).ToString();
                            }
                            if (Convert.ToDouble(mpvClass.PVBSDSingle) > N2)
                            {
                                mpvMessageInClass.PVBDN2Num = (Convert.ToInt32(mpvClass.PVBDN2Num) + 1).ToString();
                            }
                            if (Convert.ToDouble(mpvClass.PVBSDSingle) > N3)
                            {
                                mpvMessageInClass.PVBDN3Num = (Convert.ToInt32(mpvClass.PVBDN3Num) + 1).ToString();
                            }
                            mpvMessageInClass.PVBTNum         = (Convert.ToInt32(mpvClass.PVBTNum) + 1).ToString();
                            mpvMessageInClass.PVBSDSingle     = "0";
                            mpvMessageInClass.PVBSDSingleTime = input[input.Count() - 2].Endtime.ToString("yyyy-MM-dd HH:mm");

                            mpvMessageInClass.PVBSDMax = mpvClass.PVBSDMax;
                        }
                        mpvMessageInClass.PVBSDSingleType = "0";
                    }

                    mpvMessageInClass.UpdateTime     = input[1].Endtime.ToString();
                    mpvMessageInClass.EffectiveCount = (Convert.ToInt32(mpvClass.EffectiveCount) + 1).ToString();
                }
                //初始化
                //results[0].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBMin), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[1].Add(new PValue(UniverHelper.ConvertDateTimeTolong(mpvMessageInClass.dutyTime), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[2].Add(new PValue(Convert.ToDouble(mpvMessageInClass.type), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[3].Add(new PValue(UniverHelper.ConvertDateTimeTolong(mpvMessageInClass.PVBMinTime), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[4].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBAvg), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[5].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBMax), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[6].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBMaxTime), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[7].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBSum), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[8].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBSumkb), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[9].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBAbsSum), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[10].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBStbTR), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[11].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBNoStbTR), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[12].Add(new PValue(UniverHelper.ConvertDateTimeTolong(mpvMessageInClass.UpdateTime), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[13].Add(new PValue(Convert.ToDouble(mpvMessageInClass.EffectiveCount), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[14].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBSDMax), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[15].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBSDMaxTime), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[16].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBDN1Num), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[17].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBDN2Num), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[18].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBDN3Num), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[19].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBTNum), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[20].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBSDSingle), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[21].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBSDSingleTime), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //results[22].Add(new PValue(Convert.ToDouble(mpvMessageInClass.PVBSDSingleType), calcuinfo.fstarttime, calcuinfo.fendtime, 0));
                //return new Results(results, _errorFlag, _errorInfo, _warningFlag, _warningInfo, _fatalFlag, _fatalInfo);
                //计算结果存入数据库
                bool isok = BLL.AlgorithmBLL.insertMPVBasePlusSft(mpvMessageInClass, isNewAdd);
                if (isok)
                {
                    return(new Results(results, _errorFlag, _errorInfo, _warningFlag, _warningInfo, _fatalFlag, _fatalInfo));
                }
                else
                {
                    _fatalFlag = true;
                    _fatalInfo = "MPVBasePlusSft录入数据失败";
                    return(new Results(results, _errorFlag, _errorInfo, _warningFlag, _warningInfo, _fatalFlag, _fatalInfo));
                }
            }
            catch (Exception ex)
            {
                //计算中出任何错误,则需要记录log
                //LogHelper.Write(LogType.Error, "计算模块错误!");
                //记录计算模块的名称、当前标签、起始时间、结束时间
                //string moduleInfo = string.Format("——计算模块的名称是:{0},当前计算源标签是:{1},计算起始时间是:{2},计算结束时间是:{3}。", calcuInfo.fmodulename, calcuInfo.sourcetagname, calcuinfo.fstarttime.ToString(), calcuinfo.fendtime.ToString());
                //LogHelper.Write(LogType.Error, moduleInfo);
                //计算引擎报错具体信息
                //string errInfo = string.Format("——具体报错信息:{0}。", ex.ToString());
                //LogHelper.Write(LogType.Error, errInfo);
                //返回null供计算引擎处理
                _fatalFlag = true;
                _fatalInfo = ex.ToString();
                return(new Results(results, _errorFlag, _errorInfo, _warningFlag, _warningInfo, _fatalFlag, _fatalInfo));
            }
        }