/// <summary> /// 添加区域上传周期 /// </summary> /// <param name="info"></param> /// <param name="meterList"></param> /// <param name="type"></param> /// <returns></returns> public Message AddSetAlarmArea(IoT_SetUploadCycle 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_UploadCycleMeter> meterList = new List <IoT_UploadCycleMeter>(); foreach (View_UserMeter meter in meterTempList) { IoT_UploadCycleMeter alarmMeter = new IoT_UploadCycleMeter(); 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_SetUploadCycle 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_SetUploadCycle> tbl = dd.GetTable <IoT_SetUploadCycle>(); var s = tbl.Where(p => p.CompanyID == info.CompanyID && p.ID == info.ID).Single(); tbl.DeleteOnSubmit(s as IoT_SetUploadCycle); // 更新操作 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_SetUploadCycle 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_SetUploadCycle dbinfo = dd.GetTable <IoT_SetUploadCycle>().Where(p => p.CompanyID == info.CompanyID && p.ID == info.ID).SingleOrDefault(); ConvertHelper.Copy <IoT_SetUploadCycle>(dbinfo, info); // 更新操作 dd.SubmitChanges(); m = new Message() { Result = true, TxtMessage = JSon.TToJson <IoT_SetUploadCycle>(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 SetUploadCycle(IoT_SetUploadCycle info, List <IoT_UploadCycleMeter> meterList) { string result = ""; M_SetParameterService sp = new M_SetParameterService(); foreach (IoT_UploadCycleMeter m in meterList) { result = sp.SetUploadCycle(info, m); } return(result); }
public Message Add(IoT_SetUploadCycle info, List <IoT_UploadCycleMeter> 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().SetUploadCycle(info, meterList); if (result != "") { throw new Exception(result); } Table <IoT_SetUploadCycle> tbl = dd.GetTable <IoT_SetUploadCycle>(); // 调用新增方法 tbl.InsertOnSubmit(info); // 更新操作 dd.SubmitChanges(); // 更新操作 Table <IoT_UploadCycleMeter> tbl_meter = dd.GetTable <IoT_UploadCycleMeter>(); foreach (IoT_UploadCycleMeter 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';//申请 info.TaskID = meter.TaskID; tbl_meter.InsertOnSubmit(meter); } // 更新操作 dd.SubmitChanges(); m = new Message() { Result = true, TxtMessage = JSon.TToJson <IoT_SetUploadCycle>(info) }; } catch (Exception e) { m = new Message() { Result = false, TxtMessage = "新增设置上传周期失败!" + e.Message }; } return(m); }
/// <summary> /// 更新设置上传周期任务状态,用于上传周期设置完成,撤销,失败时调用更新。 /// </summary> /// <param name="taskID"></param> /// <param name="state">状态: 1 完成 2 撤销 3 失败</param> /// <returns></returns> public string UpdateUploadCycleState(string taskID, TaskState state) { if (state == TaskState.Waitting) { return("状态不能为申请"); } string result = ""; string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"]; //Linq to SQL 上下文对象 DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString); try { IoT_UploadCycleMeter dbinfo = dd.GetTable <IoT_UploadCycleMeter>().Where(p => p.TaskID == taskID).SingleOrDefault(); dbinfo.State = Convert.ToChar(((byte)state).ToString()); dbinfo.FinishedDate = DateTime.Now; // 更新操作 dd.SubmitChanges(); IoT_SetUploadCycle uploadCycle = null; int iCount = dd.GetTable <IoT_UploadCycleMeter>().Where(p => p.TaskID == taskID && p.State.ToString() == "0").Count(); if (iCount == 0) { uploadCycle = dd.GetTable <IoT_SetUploadCycle>().Where(p => p.ID == dbinfo.ID).SingleOrDefault(); uploadCycle.State = Convert.ToChar(((byte)state).ToString()); uploadCycle.FinishedDate = DateTime.Now; } dd.SubmitChanges(); if (state == TaskState.Undo) { new M_SetParameterService().UnSetParameter(taskID); } if (state == TaskState.Finished) { IoT_Meter meterInfo = dd.GetTable <IoT_Meter>().Where(p => p.MeterNo == dbinfo.MeterNo).SingleOrDefault(); meterInfo.UploadCycle = uploadCycle.ReportType; // 更新操作 dd.SubmitChanges(); } } catch (Exception e) { result = e.Message; } return(result); }
public Message revoke(string ID, string CompanyID) { // 定义执行结果 Message m; string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"]; //Linq to SQL 上下文对象 DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString); try { M_SetParameterService ps = new M_SetParameterService(); //更新主表 IoT_SetUploadCycle dbinfo = dd.GetTable <IoT_SetUploadCycle>().Where(p => p.CompanyID == CompanyID && p.ID == int.Parse(ID.Trim())).SingleOrDefault(); dbinfo.State = '1'; ps.UnSetParameter(dbinfo.TaskID); List <IoT_UploadCycleMeter> LstdbinfoMeter = dd.GetTable <IoT_UploadCycleMeter>().Where(p => p.ID == int.Parse(ID.Trim())).ToList(); foreach (var item in LstdbinfoMeter) { item.State = '1'; ps.UnSetParameter(item.TaskID); } dd.SubmitChanges(); // 更新操作 m = new Message() { Result = true, TxtMessage = JSon.TToJson <IoT_SetUploadCycle>(dbinfo) }; } catch (Exception e) { m = new Message() { Result = false, TxtMessage = "编辑设置上传周期失败!" + e.Message }; } return(m); }
/// <summary> /// 设置上传周期 /// </summary> /// <param name="info"></param> /// <param name="meter"></param> /// <returns></returns> public string SetUploadCycle(IoT_SetUploadCycle info, IoT_UploadCycleMeter 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; /*上传周期模式: * 00:以月为周期,在每个月的XX日YY时ZZ分上传数据; * 01:以XX天为周期,在每XX天的YY时ZZ分上传数据,起点为每月的01日00时00分; * 02:以YY时为周期,在每YY小时的ZZ分上传数据,起点为每天的00时00分; * 03:以燃气表启动开始计时,以XX日YY时ZZ分上传数据 */ ReportCycleType cycleType = ReportCycleType.时周期; if (info.ReportType == "00") { cycleType = ReportCycleType.月周期; } else if (info.ReportType == "01") { cycleType = ReportCycleType.天周期; } else if (info.ReportType == "02") { cycleType = ReportCycleType.时周期; } else if (info.ReportType == "03") { cycleType = ReportCycleType.周期采集; } /*周期参数, * DD 天 范围:00-31 * HH 小时 范围:00-23 * MM 分钟 范围:00-59*/ int DD = 1; int HH = 23; int MM = 59; try { DD = Convert.ToInt32(info.Par.Substring(0, 2)); HH = Convert.ToInt32(info.Par.Substring(2, 2)); MM = Convert.ToInt32(info.Par.Substring(4, 2)); } catch { } //2.设置上传周期 DataItem_C105 item_C105 = new DataItem_C105(Convert.ToByte(new Random().Next(0, 255)), cycleType, DD, HH, MM); item_C105.type = (ReportCycleType)Convert.ToByte(info.ReportType); item_C105.XX = Convert.ToUInt16(info.Par.Substring(0, 2)); item_C105.YY = Convert.ToUInt16(info.Par.Substring(2, 2)); item_C105.ZZ = Convert.ToUInt16(info.Par.Substring(4, 2)); Command cmd = new Command(); cmd.TaskID = task.TaskID; cmd.Identification = ((UInt16)item_C105.IdentityCode).ToString("X2"); cmd.ControlCode = (byte)ControlCode.CYWriteData;//设置参数 cmd.DataLength = Convert.ToByte(item_C105.Length); cmd.DataCommand = MyDataConvert.BytesToHexStr(item_C105.GetBytes()); cmd.Order = 2; CommandDA.Insert(cmd); } catch (Exception e) { result = e.Message; } return(result); }