/// <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); }
/// <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="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); }
public override void DoLoginedHandlerWork(HttpContext context) { Message jsonMessage; jsonMessage = new Message() { Result = false, TxtMessage = "权限验证失败,可能原因:\n1、数据中心通讯失败。\n2、系统管理员未与您分配对应操作权限。" }; //获取操作类型AType:ADD,EDIT,DELETE string AjaxType = context.Request.QueryString["AType"] == null ? string.Empty : context.Request.QueryString["AType"].ToString().ToUpper(); IoT_SetAlarm Info; WCFServiceProxy <ISetAlarm> proxy = null; try { switch (AjaxType) { case "QUERY": CommonSearch <IoT_SetAlarm> InfoSearch = new CommonSearch <IoT_SetAlarm>(); string Where = "1=1 "; Where += "AND CompanyID='" + loginOperator.CompanyID + "' "; if (context.Request.Form["Date1"] != null && context.Request.Form["Date1"].ToString().Trim() != string.Empty) { Where += " AND convert(char(10),RegisterDate,120)='" + context.Request.Form["Date1"].ToString() + "'";; } if (context.Request.Form["TWhere"] != null && context.Request.Form["TWhere"].ToString().Trim() != string.Empty) { Where += context.Request.Form["TWhere"].ToString(); } SearchCondition sCondition = new SearchCondition() { TBName = "IoT_SetAlarm", TFieldKey = "RegisterDate", TTotalCount = -1, TPageCurrent = 1, TFieldOrder = "RegisterDate DESC", TWhere = Where }; List <IoT_SetAlarm> list = InfoSearch.GetList(ref sCondition, context); jsonMessage = new Message() { Result = true, TxtMessage = JSon.ListToJson <IoT_SetAlarm>(list, sCondition.TTotalCount) }; break; case "QUERYUSER": CommonSearch <View_AlarmMeter> InfoSearch_User = new CommonSearch <View_AlarmMeter>(); Where = "1=1 "; Where += "AND CompanyID='" + loginOperator.CompanyID + "' "; if (context.Request.Form["TWhere"] != null && context.Request.Form["TWhere"].ToString().Trim() != string.Empty) { Where += context.Request.Form["TWhere"].ToString(); } if (context.Request.Form["ID"] != null && context.Request.Form["ID"].ToString().Trim() != string.Empty) { Where += " AND ID=" + context.Request.Form["ID"].ToString().Trim(); } sCondition = new SearchCondition() { TBName = "View_AlarmMeter", TFieldKey = "UserID", TTotalCount = -1, TPageCurrent = 1, TFieldOrder = "UserID DESC", TWhere = Where }; List <View_AlarmMeter> list_User = InfoSearch_User.GetList(ref sCondition, context); jsonMessage = new Message() { Result = true, TxtMessage = JSon.ListToJson <View_AlarmMeter>(list_User, sCondition.TTotalCount) }; break; case "ADD": if (CommonOperRightHelper.CheckMenuCode(base.loginOperator, "szbjcs")) { Info = new CommonModelFactory <IoT_SetAlarm>().GetModelFromContext(context); Info.CompanyID = base.loginOperator.CompanyID; Info.Oper = base.loginOperator.Name; Info.RegisterDate = DateTime.Now; Info.Par4 = Convert.ToInt32(Convert.ToDecimal(Info.Par4) * 100).ToString(); proxy = new WCFServiceProxy <ISetAlarm>(); if (context.Request.Form["Scope"] != null && context.Request.Form["Scope"].ToString().Trim() != string.Empty) { if (context.Request.Form["Scope"].ToString().Trim() == "所有用户") { jsonMessage = proxy.getChannel.AddSetAlarmAll(Info); } else if (context.Request.Form["Scope"].ToString().Trim() == "选择用户") { List <IoT_AlarmMeter> alarmMeter = new List <IoT_AlarmMeter>(); if (context.Request.Form["strNo"] != null && context.Request.Form["strNo"].ToString().Trim() != string.Empty) { string strNo = context.Request.Form["strNo"]; string[] arrNo = strNo.Split(','); for (int i = 0; i < arrNo.Length; i++) { IoT_AlarmMeter meter = new IoT_AlarmMeter(); meter.MeterNo = arrNo[i]; alarmMeter.Add(meter); } } jsonMessage = proxy.getChannel.Add(Info, alarmMeter); } //选择区域用户 else { if (context.Request.Form["strArea"] != null && context.Request.Form["strArea"].ToString().Trim() != string.Empty) { string strNo = context.Request.Form["strArea"]; string[] arrNo = strNo.Split(','); jsonMessage = proxy.getChannel.AddSetAlarmArea(Info, arrNo.ToList()); } } } } break; case "EDIT": if (CommonOperRightHelper.CheckMenuCode(base.loginOperator, "szbjcs")) { Info = new CommonModelFactory <IoT_SetAlarm>().GetModelFromContext(context); proxy = new WCFServiceProxy <ISetAlarm>(); jsonMessage = proxy.getChannel.Edit(Info); } break; case "DELETE": if (CommonOperRightHelper.CheckMenuCode(base.loginOperator, "")) { Info = new CommonModelFactory <IoT_SetAlarm>().GetModelFromContext(context); proxy = new WCFServiceProxy <ISetAlarm>(); jsonMessage = proxy.getChannel.Delete(Info); } break; case "UNDO": if (CommonOperRightHelper.CheckMenuCode(base.loginOperator, "szbjcs")) { Info = new CommonModelFactory <IoT_SetAlarm>().GetModelFromContext(context); proxy = new WCFServiceProxy <ISetAlarm>(); jsonMessage = proxy.getChannel.UnSetParamter(Info); } break; default: jsonMessage = new Message() { Result = false, TxtMessage = "操作未定义。" }; break; } } catch (Exception ex) { jsonMessage = new Message() { Result = false, TxtMessage = ex.Message }; } finally { if (proxy != null) { proxy.CloseChannel(); } } context.Response.Write(JSon.TToJson <Message>(jsonMessage)); }