/// <summary> /// 修改dtu /// </summary> /// <param name="context"></param> private void EditDTU(HttpContext context) { try { string id = context.Request["id"].ToString(); decimal zhanbh = decimal.Parse(context.Request["ZHUAN_MC"].ToString()); DataTable dt = dtubll.QueryBYdtuid(id); if (dt.Rows.Count > 0) { var qZhanbh = decimal.Parse(dt.Rows[0]["DEV_CHARGPILE"].ToString().Substring(0, 3)); if (qZhanbh != zhanbh) { context.Response.Write("{\"success\":false,\"msg\":\"此DTU关联了充电桩,不能改变其所属场站!\"}"); return; } } string serid = context.Request["SERVERID"].ToString(); string dtuid = context.Request["DTUID"].ToString(); string dtuxh = context.Request["DTUTYPE"].ToString(); string dtuname = context.Request["DTUNAME"].ToString(); string sim = context.Request["PHONE"].ToString(); string spswd = context.Request["SVRPWD"].ToString(); DTUInfo dtu = new DTUInfo(); dtu.ID = id; dtu.ZHUAN_BH = zhanbh; dtu.SERVERID = serid; dtu.DTUID = dtuid; dtu.DTUTYPE = dtuxh; dtu.DTUNAME = dtuname; dtu.PHONE = sim; dtu.SVRPWD = spswd; dtubll.EditDTU(dtu); //操作日志 string name = ""; if (null != context.Session[Constant.LoginUser]) { name = (context.Session[Constant.LoginUser] as Employer ?? new Employer()).Name; } else { context.Response.Write("{\"success\":true,\"msg\":\"保存成功!\"}"); } new OprLogBll().Add(new OprLog() { Operator = name, OprSrc = "修改DTU设备,id:" + id, OperResult = "成功", LogDate = DateTime.Now }); context.Response.Write("{\"success\":true,\"msg\":\"保存成功!\"}"); } catch (Exception e) { Log.Debug(e); context.Response.Write("{\"success\":false,\"msg\":\"保存失败!\"}"); } }
/// <summary> /// 根据节点id获取下级节点 /// </summary> /// <param name="nodeid"></param> /// <returns></returns> public string getNode(string nodeid) { string nId = string.Empty; // 节点id string nName = string.Empty; // 节点名称 StringBuilder NodeStr = new StringBuilder(); //节点json字符串 DTUInfo dtu = new DTUInfo(); string zhanid = nodeid.Split(':')[0]; dtu.ZHUAN_BH = decimal.Parse(zhanid); NodeStr.Append("["); DataTable Dt = QueryDTU(dtu); for (int i = 0; i < Dt.Rows.Count; i++) { string dtuid = Dt.Rows[i]["ID"].ToString(); string dtuname = Dt.Rows[i]["DTUNAME"].ToString(); dtuid = dtuid + ":d"; NodeStr.Append("{id:'" + dtuid + "',pId:'" + nodeid + "' ,name:'" + dtuname + "',icon:'../../Images/dtu.png'},"); } if (NodeStr.ToString() != "[") { int n = NodeStr.ToString().LastIndexOf(","); NodeStr.Remove(n, 1); } NodeStr.Append("]"); return(NodeStr.ToString()); }
private void UpdateListBox(DTUInfo info) { if (listBox1.InvokeRequired) { listBox1.Invoke(new InvokeUpdateListBox(UpdateListBox), new object[] { info }); } else { if (!info.IsRegisted) { return; } listBox1.Items.Insert(0, string.Format("{0}:DTU-{1}-{2}", info.LoginTime.ToString(), info.IMEIString, info.Online ? "上线" : "离线")); if (info.Online) { onlineDTU++; } else { onlineDTU--; } tslDTUCount.Text = string.Format("在线DTU {0}", onlineDTU); if (listBox1.Items.Count > 3600) { for (int i = 0; i < 1800; i++) { listBox1.Items.RemoveAt(listBox1.Items.Count - 1); } } // send dtu state to dcdc List <byte> sendBuf = new List <byte>(); sendBuf.AddRange(new byte[] { 0x7e, 0x7e, 0x7e, 0x7e }); sendBuf.Add(0x02); // dtu status sendBuf.Add(0x00); sendBuf.Add(0x11); sendBuf.AddRange(ASCIIEncoding.Default.GetBytes(info.IMEIString)); sendBuf.Add((byte)('\0')); sendBuf.Add((byte)(info.Online ? 0x01 : 0x00)); DCCConnInfo[] clients = DataServer.DataTranceiver.Instance.GetDccClient(info.IMEIString); foreach (DCCConnInfo client in clients) { if (client != null && client.client != null) { NetworkStream ns = client.client.GetStream(); if (ns != null && ns.CanWrite) { ns.Write(sendBuf.ToArray(), 0, sendBuf.Count); } } } } }
/// <summary> /// 添加dtu /// </summary> /// <param name="context"></param> private void AddDTU(HttpContext context) { try { decimal zhanbh = decimal.Parse(context.Request["ZHUAN_MC"].ToString()); string serid = context.Request["SERVERID"].ToString(); string dtuid = context.Request["DTUID"].ToString(); string dtuxh = context.Request["DTUTYPE"].ToString(); string dtuname = context.Request["DTUNAME"].ToString(); string sim = context.Request["PHONE"].ToString(); string spswd = context.Request["SVRPWD"].ToString(); string id = Guid.NewGuid().ToString(); DTUInfo dtu = new DTUInfo(); dtu.ID = id; dtu.ZHUAN_BH = zhanbh; dtu.SERVERID = serid; dtu.DTUID = dtuid; dtu.DTUTYPE = dtuxh; dtu.DTUNAME = dtuname; dtu.PHONE = sim; dtu.SVRPWD = spswd; dtubll.AddDTU(dtu); //操作日志 string name = ""; if (null != context.Session[Constant.LoginUser]) { name = (context.Session[Constant.LoginUser] as Employer ?? new Employer()).Name; } else { context.Response.Write("{\"success\":true,\"msg\":\"保存成功!\"}"); } new OprLogBll().Add(new OprLog() { Operator = name, OprSrc = "添加DTU设备,id:" + id, OperResult = "成功", LogDate = DateTime.Now }); context.Response.Write("{\"success\":true,\"msg\":\"保存成功!\"}"); } catch (Exception e) { Log.Debug(e); context.Response.Write("{\"success\":false,\"msg\":\"保存失败!\"}"); } }
/// <summary> /// 获取树节点 /// </summary> public string GetAllNodes() { string nId = string.Empty; // 节点id string nName = string.Empty; // 节点名称 string pId = string.Empty; // 上级节点id StringBuilder NodeStr = new StringBuilder(); //节点json字符串 ChargStation bean = new ChargStation(); DTUInfo dtu = new DTUInfo(); ChargStationBll csbll = new ChargStationBll(); NodeStr.Append("["); DataTable dta = csbll.Queryall(bean);//查询所有充电站 if (dta.Rows.Count > 0) { for (int a = 0; a < dta.Rows.Count; a++) { decimal zhanbh = decimal.Parse(dta.Rows[a]["zhan_bh"].ToString()); string zhanmc = dta.Rows[a]["zhan_jc"].ToString(); dtu.ZHUAN_BH = zhanbh; DataTable dt = QueryDTU(dtu);//根据充电站查询dtu string zhanid = zhanbh.ToString() + ":z"; NodeStr.Append("{id:'" + zhanid + "',pId:0,name:'" + zhanmc + "', icon:'../../Images/1_open.png',isParent:true },"); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { string dtuid = dt.Rows[i]["ID"].ToString(); string dtuname = dt.Rows[i]["DTUNAME"].ToString(); dtuid = dtuid + ":d"; NodeStr.Append("{id:'" + dtuid + "',pId:'" + zhanid + "',name:'" + dtuname + "', icon:'../../Images/dtu.png' },"); } } } } if (NodeStr.ToString() != "[") { int n = NodeStr.ToString().LastIndexOf(","); NodeStr.Remove(n, 1); } NodeStr.Append("]"); return(NodeStr.ToString()); }
/// <summary> /// 查询dtu /// </summary> /// <param name="bean"></param> /// <returns></returns> public DataTable QueryDTU(DTUInfo bean) { return(dtudal.QueryDTU(bean)); }
/// <summary> /// 修改dtu /// </summary> /// <param name="bean"></param> public void EditDTU(DTUInfo bean) { dtudal.EditDTU(bean); }
/// <summary> /// 添加DTU /// </summary> /// <param name="bean"></param> public void AddDTU(DTUInfo bean) { dtudal.AddDTU(bean); }
private void UpdateListView(DTUInfo info) { if (listView1.InvokeRequired) { listView1.Invoke(new InvokeUpdateListView(UpdateListView), new object[] { info }); } else { if (!info.IsRegisted) { return; } bool bExist = false; for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].Text.Equals(info.IMEIString)) { bExist = true; listView1.Items[i].Text = info.IMEIString; listView1.Items[i].SubItems[1].Text = info.DtuPosition; listView1.Items[i].SubItems[2].Text = info.SimNumber; listView1.Items[i].SubItems[3].Text = info.LoginTime.ToString("yyyy-MM-dd HH:mm:ss"); listView1.Items[i].SubItems[4].Text = info.LogoffTime.ToString("yyyy-MM-dd HH:mm:ss"); listView1.Items[i].SubItems[5].Text = info.RemoteIPAddress; listView1.Items[i].SubItems[6].Text = info.Online ? "在线" : "离线"; listView1.Items[i].SubItems[7].Text = info.LastTickTime.ToString("yyyy-MM-dd HH:mm:ss"); listView1.Items[i].SubItems[8].Text = info.TickSpan.ToString(); StringBuilder sb = new StringBuilder(); foreach (string p2pImei in info.ListP2PDTU) { sb.Append(p2pImei); sb.Append(";"); } if (sb.Length > 0) { sb = sb.Remove(sb.Length - 1, 1); } listView1.Items[i].SubItems[9].Text = sb.ToString(); } } if (bExist == false) { ListViewItem item = new ListViewItem(info.IMEIString); item.SubItems.Add(info.DtuPosition); item.SubItems.Add(info.SimNumber); item.SubItems.Add(info.LoginTime.ToString("yyyy-MM-dd HH:mm:ss")); item.SubItems.Add(info.LogoffTime.ToString("yyyy-MM-dd HH:mm:ss")); item.SubItems.Add(info.RemoteIPAddress); item.SubItems.Add(info.Online ? "在线" : "离线"); item.SubItems.Add(info.LastTickTime.ToString("yyyy-MM-dd HH:mm:ss")); item.SubItems.Add(info.TickSpan.ToString()); StringBuilder sb = new StringBuilder(); foreach (string p2pImei in info.ListP2PDTU) { sb.Append(p2pImei); sb.Append(";"); } if (sb.Length > 0) { sb = sb.Remove(sb.Length - 1, 1); } item.SubItems.Add(sb.ToString()); listView1.Items.Add(item); } } }