Пример #1
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("");
        }
Пример #2
0
        public string Undo(IoT_Meter meter)
        {
            DianhuoDA dhDA = new DianhuoDA();

            string result = dhDA.UnDoDianHuo(meter);

            if (result != "")
            {
                return("撤销失败,原因:" + result);
            }
            string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            //Linq to SQL 上下文对象
            DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                IoT_Meter dbinfo = dd.GetTable <IoT_Meter>().Where(p =>
                                                                   p.MeterNo == meter.MeterNo).SingleOrDefault();

                if (dbinfo != null)
                {
                    dbinfo.MeterState = '4';//撤销点火状态,退回到已安装状态
                    // 更新操作
                    dd.SubmitChanges();
                    new UserManageService().UpadteUserStatus("1", meter.UserID);//用户表状态退回到1 等待点火
                }

                return("");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
#if DEBUG
                Debug.Assert(false, e.Message);
#endif
                return(e.Message);
            }
        }