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