/// <summary> /// 数据处理线程 /// </summary> /// <param name="objectPar"></param> private void DoWithData(object objectPar) { DataPar par = objectPar as DataPar; if (par == null) { return; } try { ////保存数据到数据库 //IoT_MeterDataHistory meterData = new IoT_MeterDataHistory(); ////累计用量 //meterData.Gas = par.DataItem.LJGas; //// //meterData.MeterID = par.Meter.MeterID; //meterData.MeterNo = par.Meter.Mac; //meterData.ReadDate = par.DataItem.ReadDate; //meterData.RemainingAmount = par.DataItem.SYMoney; //meterData.LastTotal = par.DataItem.LastLJGas; //meterData.ST1 = par.DataItem.ST1.ToString(); //meterData.ST2 = par.DataItem.ST2.ToString(); ReadDataInfo readdatainfo = new ReadDataInfo(); readdatainfo._Gas = par.DataItem.LJGas; readdatainfo._MeterID = par.Meter.MeterID; readdatainfo._MeterNo = par.Meter.Mac; readdatainfo._ReadDate = par.DataItem.ReadDate; readdatainfo._RemainingAmount = par.DataItem.SYMoney; readdatainfo._LastTotal = par.DataItem.LastLJGas; readdatainfo._ST1 = par.DataItem.ST1.ToString(); readdatainfo._ST2 = par.DataItem.ST2.ToString(); WarningInfo warninginfo = new WarningInfo(); warninginfo.MeterID = par.Meter.MeterID; warninginfo.meterNo = par.Meter.Mac; warninginfo.readDate = par.DataItem.ReadDate; warninginfo.st1 = par.DataItem.ST1.ToString(); warninginfo.st2 = par.DataItem.ST2.ToString(); //InsertReadData(meterData); // //分析报警信息 //InsertWariningData(par.Meter.MeterID, par.Meter.Mac, par.DataItem.ReadDate, par.DataItem.ST1.ToString(), par.DataItem.ST2.ToString()); ///向业务服务器 队列中添加对象 Log.getInstance().Write(MsgType.Information, $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}上报采集记录到数据中心,DataType:{DataType.ReadData} MeterNo:{readdatainfo._MeterNo} ReadDate:{readdatainfo._ReadDate}"); Log.getInstance().Write(MsgType.Information, $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}上报采集记录到数据中心,DataType:{DataType.WarningData} MeterNo:{readdatainfo._MeterNo} ReadDate:{readdatainfo._ReadDate} ST1:{par.DataItem.ST1.ToString()} ST2:{ warninginfo.st2}"); DDService.getInstance().InsertDataRecord(new DataArge(DataType.ReadData, readdatainfo)); DDService.getInstance().InsertDataRecord(new DataArge(DataType.WarningData, warninginfo)); } catch (Exception er) { Log.getInstance().Write(MsgType.Information, "DoWithData:" + er.ToString()); } }
/// <summary> /// 处理提交抄表数据 /// </summary> /// <param name="meter"></param> /// <param name="dataItem"></param> /// <returns></returns> public SubmitResult Submit(Meter meter, SubmitData dataItem) { SubmitResult result = new SubmitResult(); //如果表为金额表,则判断是否需要效验,如需要则添加校准任务 if (meter.IsDianHuo && meter.MeterType == ((byte)CY.IoTM.Common.Item.MeterType.金额表).ToString().PadLeft(2, '0') && meter.MeterState == "0") { new Settlement().Calculate(meter, dataItem, result); } //上报数据 DataPar par = new DataPar(meter, dataItem); //new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(DoWithData)).Start(par); DoWithData(par); return(result); }