Example #1
0
        /// <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());
            }
        }
Example #2
0
        /// <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);
        }