/// <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(""); }
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); } }