Пример #1
0
        /// <summary>
        /// 更新报警参数设置任务状态
        /// </summary>
        /// <param name="taskID"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        public string UpdateAlarmMeterState(string taskID, string state)
        {
            string result     = "";
            string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            //Linq to SQL 上下文对象
            DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                IoT_AlarmMeter dbinfo = dd.GetTable <IoT_AlarmMeter>().Where(p =>
                                                                             p.TaskID == taskID).SingleOrDefault();
                dbinfo.State = Convert.ToChar(state);
                // 更新操作
                dd.SubmitChanges();
                IoT_SetAlarm alarm = dd.GetTable <IoT_SetAlarm>().Where(p =>
                                                                        p.ID == dbinfo.ID).SingleOrDefault();
                this.UpdateMeterAlarmPar(dbinfo.MeterNo.Trim(), alarm);
                int iCount = dd.GetTable <IoT_AlarmMeter>().Where(p =>
                                                                  p.ID == dbinfo.ID && p.State.ToString() == "0").Count();
                if (iCount == 0)
                {
                    alarm.State = Convert.ToChar(state);
                    dd.SubmitChanges();
                }
            }
            catch (Exception e)
            {
                result = e.Message;
            }
            return(result);
        }
Пример #2
0
        /// <summary>
        /// 添加区域报警参数
        /// </summary>
        /// <param name="info"></param>
        /// <param name="meterList"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public Message AddSetAlarmArea(IoT_SetAlarm info, List <String> communityList)
        {
            Message     m;
            string      configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            DataContext dd         = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                List <View_UserMeter> meterTempList = dd.GetTable <View_UserMeter>().Where(p => p.CompanyID == info.CompanyID && communityList.Contains(p.Community)).ToList();

                List <IoT_AlarmMeter> meterList = new List <IoT_AlarmMeter>();

                foreach (View_UserMeter meter in meterTempList)
                {
                    IoT_AlarmMeter alarmMeter = new IoT_AlarmMeter();
                    alarmMeter.MeterNo = meter.MeterNo;
                    meterList.Add(alarmMeter);
                }
                m = Add(info, meterList);
            }
            catch (Exception e)
            {
                m = new Message()
                {
                    Result     = false,
                    TxtMessage = "新增设置报警参数失败!" + e.Message
                };
            }
            return(m);
        }
Пример #3
0
        public Message Delete(IoT_SetAlarm info)
        {
            // 定义执行结果
            Message m;
            string  configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            //Linq to SQL 上下文对象
            DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                // 获得上下文对象中的表信息
                Table <IoT_SetAlarm> tbl = dd.GetTable <IoT_SetAlarm>();
                var s = tbl.Where(p => p.CompanyID == info.CompanyID && p.ID == info.ID).Single();
                tbl.DeleteOnSubmit(s as IoT_SetAlarm);

                // 更新操作
                dd.SubmitChanges();
                m = new Message()
                {
                    Result     = true,
                    TxtMessage = "删除设置报警参数成功!"
                };
            }
            catch (Exception e)
            {
                m = new Message()
                {
                    Result     = false,
                    TxtMessage = "删除设置报警参数失败!" + e.Message
                };
            }
            return(m);
        }
Пример #4
0
        public Message Edit(IoT_SetAlarm info)
        {
            // 定义执行结果
            Message m;
            string  configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            //Linq to SQL 上下文对象
            DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                IoT_SetAlarm dbinfo = dd.GetTable <IoT_SetAlarm>().Where(p => p.CompanyID == info.CompanyID && p.ID == info.ID).SingleOrDefault();
                ConvertHelper.Copy <IoT_SetAlarm>(dbinfo, info);

                // 更新操作
                dd.SubmitChanges();
                m = new Message()
                {
                    Result     = true,
                    TxtMessage = JSon.TToJson <IoT_SetAlarm>(dbinfo)
                };
            }
            catch (Exception e)
            {
                m = new Message()
                {
                    Result     = false,
                    TxtMessage = "编辑设置报警参数失败!" + e.Message
                };
            }
            return(m);
        }
Пример #5
0
        /// <summary>
        /// 添加报警参数设置任务
        /// </summary>
        /// <param name="info"></param>
        /// <param name="meterList"></param>
        /// <returns></returns>
        public string SetWarinningPararmeter(IoT_SetAlarm info, List <IoT_AlarmMeter> meterList)
        {
            string result            = "";
            M_SetParameterService sp = new M_SetParameterService();

            foreach (IoT_AlarmMeter alarm in meterList)
            {
                result = sp.SetWariningParameter(info, alarm);
            }

            return(result);
        }
Пример #6
0
        /// <summary>
        /// 添加设置报警参数任务
        /// </summary>
        /// <param name="info"></param>
        /// <param name="meterList"></param>
        /// <returns></returns>
        public Message Add(IoT_SetAlarm info, List <IoT_AlarmMeter> meterList)
        {
            // 定义执行结果
            Message m;
            string  configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            //Linq to SQL 上下文对象
            DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                //添加设置报警参数任务到通讯队列
                string result = new SetMeterParameter().SetWarinningPararmeter(info, meterList);
                if (result != "")
                {
                    throw new Exception(result);
                }

                Table <IoT_SetAlarm> tbl = dd.GetTable <IoT_SetAlarm>();
                // 调用新增方法
                tbl.InsertOnSubmit(info);
                // 更新操作
                dd.SubmitChanges();

                Table <IoT_AlarmMeter> tbl_meter = dd.GetTable <IoT_AlarmMeter>();
                foreach (IoT_AlarmMeter meter in meterList)
                {
                    IoT_Meter tempMeter = MeterManageService.QueryMeter(meter.MeterNo);
                    meter.MeterID = tempMeter.ID;
                    meter.ID      = info.ID;
                    meter.Context = info.Context;
                    meter.State   = '0';//申请
                    tbl_meter.InsertOnSubmit(meter);
                }
                // 更新操作
                dd.SubmitChanges();

                m = new Message()
                {
                    Result     = true,
                    TxtMessage = JSon.TToJson <IoT_SetAlarm>(info)
                };
            }
            catch (Exception e)
            {
                m = new Message()
                {
                    Result     = false,
                    TxtMessage = "新增设置报警参数失败!" + e.Message
                };
            }
            return(m);
        }
Пример #7
0
        /// <summary>
        /// 执行点火操作,更新表点火状态,并更新表信息为点火指定参数同时提交点火任务给通信层
        /// </summary>
        /// <param name="meters"></param>
        /// <returns></returns>
        public string Do(List <IoT_Meter> meters)
        {
            MeterManageService _mms = new MeterManageService();
            DianhuoDA          dhDA = new DianhuoDA();
            TaskManageDA       tmd  = new TaskManageDA();

            foreach (IoT_Meter m in meters)
            {
                if (m.MeterState.ToString() == "5")
                {
                    IoT_Meter _oldMeter = MeterManageService.QueryMeter(m.MeterNo);
                    if (_oldMeter == null)
                    {
                        return(string.Format("点火失败,表{0}信息不存在!", m.MeterNo));
                    }

                    if (_oldMeter.MeterState == '0')
                    {
                        return(string.Format("表{0}已点火完成,不能重复操作。", m.MeterNo));
                    }
                    Meter _meter = tmd.QueryMeter(m.MeterNo.Trim());
                    tmd.UpdateMeter(m);
                    IoT_SetAlarm alarmPar = new IoT_SetAlarm();
                    alarmPar.SwitchTag = "000000000       ";
                    alarmPar.Par1      = 30;
                    alarmPar.Par2      = 10;
                    alarmPar.Par3      = 30;
                    alarmPar.Par4      = "";
                    alarmPar.Par5      = 10;
                    alarmPar.Par6      = 30;
                    alarmPar.Par7      = 30;
                    alarmPar.Par8      = 30;
                    alarmPar.Par9      = "00";
                    new SetAlarmService().UpdateMeterAlarmPar(m.MeterNo.Trim(), alarmPar);

                    //点火状态,需要修改表的通讯密钥
                    Message msg = _mms.Edit(m);
                    if (msg.Result == false)
                    {
                        return(string.Format("点火失败,原因:登记表{0}点火信息失败,原因:{1}", m.MeterNo, msg.TxtMessage));
                    }
                    string result = dhDA.SubmitDianHuoASK(_oldMeter);
                    new UserManageService().UpadteUserStatus("2", m.UserID);//用户表状态置为 撤销点火
                    if (result != "")
                    {
                        _mms.Edit(_oldMeter);
                    }
                }
            }
            return("");
        }
Пример #8
0
        public void UpdateMeterAlarmPar(string meterNo, IoT_SetAlarm para)
        {
            string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            //Linq to SQL 上下文对象
            DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                Iot_MeterAlarmPara map = dd.GetTable <Iot_MeterAlarmPara>().Where(p => p.MeterNo == meterNo).SingleOrDefault();
                if (map == null)
                {
                    map           = new Iot_MeterAlarmPara();
                    map.MeterNo   = meterNo;
                    map.Par1      = para.Par1;
                    map.Par2      = para.Par2;
                    map.Par3      = para.Par3;
                    map.Par4      = para.Par4;
                    map.Par5      = para.Par5;
                    map.Par6      = para.Par6;
                    map.Par7      = para.Par7;
                    map.Par8      = para.Par8;
                    map.Par9      = para.Par9;
                    map.SwitchTag = para.SwitchTag;
                    Table <Iot_MeterAlarmPara> tbl = dd.GetTable <Iot_MeterAlarmPara>();
                    tbl.InsertOnSubmit(map);
                    dd.SubmitChanges();
                }
                else
                {
                    map.Par1      = para.Par1;
                    map.Par2      = para.Par2;
                    map.Par3      = para.Par3;
                    map.Par4      = para.Par4;
                    map.Par5      = para.Par5;
                    map.Par6      = para.Par6;
                    map.Par7      = para.Par7;
                    map.Par8      = para.Par8;
                    map.Par9      = para.Par9;
                    map.SwitchTag = para.SwitchTag;
                    dd.SubmitChanges();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Пример #9
0
        /// <summary>
        /// 设置报警参数任务
        /// </summary>
        /// <param name="info"></param>
        /// <param name="meter"></param>
        /// <returns></returns>
        public string SetWariningParameter(IoT_SetAlarm info, IoT_AlarmMeter meter)
        {
            string result = "";

            try
            {
                MongoDBHelper <Task> mongo_task = new MongoDBHelper <Task>();
                Task task = new Task();
                task.MeterMac  = meter.MeterNo.Trim();
                task.TaskDate  = QuShi.getDate();
                task.TaskID    = Guid.NewGuid().ToString(); //用于和指令进行进行关联
                task.TaskState = TaskState.Waitting;
                task.TaskType  = TaskType.TaskType_设置报警参数;  //
                //写任务
                mongo_task.Insert(CollectionNameDefine.TaskCollectionName, task);
                meter.TaskID = task.TaskID;

                //3.设置报警参数
                DataItem_C103 item_C103 = new DataItem_C103(Convert.ToByte(new Random().Next(0, 255)), new WaringSwitchSign(info.SwitchTag));
                item_C103.长期未与服务器通讯报警时间 = Convert.ToByte(info.Par1);
                item_C103.燃气漏泄切断报警时间    = Convert.ToByte(info.Par2);
                item_C103.燃气流量过载切断报警时间  = Convert.ToByte(info.Par3);
                item_C103.异常大流量值        = MyDataConvert.TwoBCDStrToDecimal(info.Par4);
                item_C103.异常大流量切断报警时间   = Convert.ToByte(info.Par5);
                item_C103.异常微小流量切断报警时间  = Convert.ToByte(info.Par6);
                item_C103.持续流量切断报警时间    = Convert.ToByte(info.Par7);
                item_C103.长期未使用切断报警时间   = Convert.ToByte(info.Par8);
                //item_C103.长期未使用切断报警时间 = Convert.ToByte(info.Par7);

                Command cmd = new Command();
                cmd.TaskID         = task.TaskID;
                cmd.Identification = ((UInt16)item_C103.IdentityCode).ToString("X2");
                cmd.ControlCode    = (byte)ControlCode.CYWriteData;//设置参数
                cmd.DataLength     = Convert.ToByte(item_C103.Length);
                cmd.DataCommand    = MyDataConvert.BytesToHexStr(item_C103.GetBytes());
                cmd.Order          = 3;
                CommandDA.Insert(cmd);
            }
            catch (Exception e)
            {
                result = e.Message;
            }
            return(result);
        }
Пример #10
0
        /// <summary>
        /// 撤销设置参数任务
        /// </summary>
        /// <param name="info"></param>
        /// <param name="meterList"></param>
        /// <returns></returns>
        public Message UnSetParamter(IoT_SetAlarm info)
        {
            // 定义执行结果
            Message m;
            string  configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            //Linq to SQL 上下文对象
            DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                Table <IoT_AlarmMeter> tbl_meter = dd.GetTable <IoT_AlarmMeter>();
                List <IoT_AlarmMeter>  list      = tbl_meter.Where(p => p.ID == info.ID).ToList();

                foreach (IoT_AlarmMeter meter in list)
                {
                    string result = new SetMeterParameter().UnSetParamter(meter.TaskID);
                    meter.State        = '2';
                    meter.FinishedDate = DateTime.Now;
                }

                Table <IoT_SetAlarm> tbl = dd.GetTable <IoT_SetAlarm>();
                var dbinfo = tbl.Where(p => p.CompanyID == info.CompanyID && p.ID == info.ID).Single();

                dbinfo.State   = '1';          //任务撤销
                dbinfo.Context = info.Context; //撤销原因
                dd.SubmitChanges();

                m = new Message()
                {
                    Result     = true,
                    TxtMessage = "操作成功"
                };
            }
            catch (Exception e)
            {
                m = new Message()
                {
                    Result     = false,
                    TxtMessage = "撤销设置报警参数失败!" + e.Message
                };
            }
            return(m);
        }