Example #1
0
 public static bool insertMAddMul(MAddMulOutClass newClass, string type, string year, string month, string day, string hour)
 {
     try
     {
         bool      isok = false;
         DataTable dt   = isHaveData(year, month, day, hour, type, "psl_maddmul");
         if (dt != null && dt.Rows.Count > 0)
         {
             isok = DAL.AlgorithmDAL.updateMAddMul(Convert.ToInt32(dt.Rows[0]["id"].ToString()), newClass, type, year, month, day, hour);
         }
         else
         {
             isok = DAL.AlgorithmDAL.insertMAddMul(newClass, type, year, month, day, hour);
         }
         return(isok);
     }
     catch (Exception)
     {
         throw;
     }
 }
Example #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   = "";

            //0输出初始化:该算法如果没有有效输入值(inputs为null)或者输入值得有效值为null,给出的计算结果。值为0,计算标志位为StatusConst.InputIsNull
            List <PValue>[] results = new List <PValue> [6];   //平均值;最小值;最小值所在的点号;最大值;最大值所在的点号;最均差;最大差(最大值与最小值得差);和;绝对值和
            for (int 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
            {
                //0、输入
                List <PValue> input;
                //0.1、输入处理:输入长度。当输入为空时,则输出项也为空.
                if (inputs == null || inputs.Length == 0 || inputs[0] == null)
                {
                    return(new Results(results, _errorFlag, _errorInfo, _warningFlag, _warningInfo, _fatalFlag, _fatalInfo));
                }
                else
                {
                    input = new List <PValue>();
                    //应当是每个输入只有一个值
                    for (int j = 0; j < inputs.Length; j++)
                    {
                        if (inputs[j].Count() > 0)
                        {
                            input.Add(inputs[j][0]);
                        }
                    }
                }

                //1 参数处理
                double   k;
                double   b;
                string[] paras = calcuinfo.fparas.Split(';');
                k = float.Parse(paras[0]);
                b = float.Parse(paras[1]);

                //计算结果初始化
                PValue AddMulSum    = new PValue(0, calcuinfo.fstarttime, calcuinfo.fendtime, 0); //和; 1
                PValue AddMulAbsSum = new PValue(0, calcuinfo.fstarttime, calcuinfo.fendtime, 0); //绝对值的和; 2
                PValue AddMulMul    = new PValue(0, calcuinfo.fstarttime, calcuinfo.fendtime, 0); //积;3
                PValue AddMulAbsMul = new PValue(0, calcuinfo.fstarttime, calcuinfo.fendtime, 0); //绝对值的积;4
                PValue AddMulAvg    = new PValue(0, calcuinfo.fstarttime, calcuinfo.fendtime, 0); //平均值;5
                PValue AddMulAbsAvg = new PValue(0, calcuinfo.fstarttime, calcuinfo.fendtime, 0); //绝对值的平均值;6

                double sum = 0, abssum = 0, mul = 1, absmul = 1, avg, absavg;

                for (int i = 0; i < input.Count; i++)
                {
                    sum    = sum + input[i].Value;
                    abssum = abssum + Math.Abs(input[i].Value);
                    mul    = mul * input[i].Value;
                    absmul = absmul * Math.Abs(input[i].Value);
                }
                avg    = sum / input.Count;
                absavg = abssum / input.Count;

                //对计算结果赋值
                AddMulSum.Value    = k * sum + b;
                AddMulAbsSum.Value = k * abssum + b;
                AddMulMul.Value    = k * mul + b;
                AddMulAbsMul.Value = k * absmul + b;
                AddMulAvg.Value    = k * avg + b;
                AddMulAbsAvg.Value = k * absavg + b;

                //录入数据库
                MAddMulOutClass MessageIN = new MAddMulOutClass();
                MessageIN.addMulSum    = AddMulSum.Value;
                MessageIN.addMulAbsSum = AddMulAbsSum.Value;
                MessageIN.addMulMul    = AddMulMul.Value;
                MessageIN.addMulAbsMul = AddMulAbsMul.Value;
                MessageIN.addMulAvg    = AddMulAvg.Value;
                MessageIN.addMulAbsAvg = AddMulAbsAvg.Value;
                string year  = string.Empty;
                string month = string.Empty;
                string day   = string.Empty;
                string hour  = string.Empty;
                year  = calcuinfo.fstarttime.Year.ToString();
                month = calcuinfo.fstarttime.Month.ToString();
                day   = calcuinfo.fstarttime.Day.ToString();
                hour  = calcuinfo.fstarttime.Hour.ToString();
                bool isok = BLL.AlgorithmBLL.insertMAddMul(MessageIN, calcuinfo.fsourtagids[0].ToString(), year, month, day, hour);
                if (isok)
                {
                    return(new Results(results, _errorFlag, _errorInfo, _warningFlag, _warningInfo, _fatalFlag, _fatalInfo));
                }
                else
                {
                    _fatalFlag = true;
                    _fatalInfo = "MAddMul数据录入数据库是失败";
                    return(new Results(results, _errorFlag, _errorInfo, _warningFlag, _warningInfo, _fatalFlag, _fatalInfo));
                }



                results[0] = new List <PValue>();
                results[0].Add(AddMulSum);
                results[1] = new List <PValue>();
                results[1].Add(AddMulAbsSum);
                results[2] = new List <PValue>();
                results[2].Add(AddMulMul);
                results[3] = new List <PValue>();
                results[3].Add(AddMulAbsMul);
                results[4] = new List <PValue>();
                results[4].Add(AddMulAvg);
                results[5] = new List <PValue>();
                results[5].Add(AddMulAbsAvg);
                return(new Results(results, _errorFlag, _errorInfo, _warningFlag, _warningInfo, _fatalFlag, _fatalInfo));
            }
            catch (Exception ex)
            {
                _fatalFlag = true;
                _fatalInfo = ex.ToString();
                return(new Results(null, _errorFlag, _errorInfo, _warningFlag, _warningInfo, _fatalFlag, _fatalInfo));
            }
        }