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; } }
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)); } }