/// <summary> /// 确定交班 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tbOK_Click(object sender, EventArgs e) { bool isNotExist = false; string user = Convert.ToString(this.ccbNextUser.Text); string pws = this.tbPassword.Text; if (string.IsNullOrEmpty(user) || string.IsNullOrEmpty(pws)) { MessageBox.Show("请选择接班人和输入接班人密码!", "接班提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } this.paramwin["交班人"] = BindManager.getUser().UserAccounts; this.paramwin["密码"] = pws; User user1 = new User(user, ref isNotExist); if (!isNotExist) { isNotExist = !user1.login(tbUserName.Text, pws); } if (isNotExist) { MessageBox.Show("密码不正确!", "系统提示"); return; } QueryDataRes query = new QueryDataRes(this.unitItem.DataSrcFile); this.paramwin["操作员"] = BindManager.getUser().UserName; this.paramwin["值班人"] = ccbNextUser.Text; IPHostEntry IpEntry = Dns.GetHostEntry(Dns.GetHostName()); string myip = IpEntry.AddressList[0].ToString(); this.paramwin["电脑IP"] = myip; bool isSuccess = query.ExecuteNonQuery("交接班", this.paramwin, this.paramwin, this.paramwin); if (!isSuccess) { MessageBox.Show("执行交接班时失败请与管理员联系!", "接班提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } BindManager.setUser(user); string operName = this.ccbNextUser.Text.Trim(); string workStartTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string ip = this.paramwin.AllValues.GetValue(2).ToString(); string tag = string.Empty; tag = basefun.setvaltag(tag, "值班人", operName); tag = basefun.setvaltag(tag, "接班时间", workStartTime); tag = basefun.setvaltag(tag, "电脑IP", ip); NameObjectList ps = ParamManager.createParam(tag); ParamManager.MergeParam(ps, this.paramwin, false); query.ExecuteNonQuery("当班状态", ps, ps, ps); MessageBox.Show("已经成功执行交接班!\r\n" + this.ccbNextUser.Text + " 开始工作!", "接班提示", MessageBoxButtons.OK, MessageBoxIcon.Information); this.DialogResult = DialogResult.Yes; this.Close(); }
/// <summary> /// 定时执行业务 /// </summary> /// <param name="obj"></param> void executeTimer(object obj) { DateTime dt = DateTime.Today.AddDays(-1); NameObjectList ps = new NameObjectList(); ps.Add("开始日期", dt); ps.Add("结束日期", dt); QueryDataRes query = new QueryDataRes("基础类"); DataTable tab = query.getTable("考勤人员列表", null); if (null == tab || tab.Rows.Count < 1) { isTmRunning = false; return; } NameValueCollection data = new NameValueCollection(); data["服务"] = "考勤作业"; DataColumnCollection cols = tab.Columns; foreach (DataRow dr in tab.Rows) { foreach (DataColumn c in cols) { ps[c.ColumnName] = Convert.ToString(dr[c]); } try { bool b = query.ExecuteNonQuery("考勤人员列表", ps, ps, ps); if (b) { continue; } } catch (Exception ex) { foreach (string key in ps.AllKeys) { data.Add(key, Convert.ToString(ps[key])); } LogMessage(ex, data, EventLogEntryType.Error); continue; } foreach (string key in ps.AllKeys) { data.Add(key, Convert.ToString(ps[key])); } LogMessage("考勤作业失败!", data, EventLogEntryType.Warning); } isTmRunning = false; }
/// <summary> /// 解挂 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCardUnLost_Click(object sender, EventArgs e) { getNewDataByCardNo(txtCardRealNo.Text); if (string.IsNullOrEmpty(txtCardRealNo.Text)) { XtraMessageBox.Show("请读卡!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (dsUnit.Tables["selectCard"].Rows.Count < 1) { XtraMessageBox.Show("此卡未发行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (status == "退卡") { XtraMessageBox.Show("此卡号状态为退卡,不能解挂!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (status != "挂失") { XtraMessageBox.Show("此卡未挂失,不能解挂!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } IPHostEntry IpEntry = Dns.GetHostEntry(Dns.GetHostName()); string myip = IpEntry.AddressList[0].ToString(); NameObjectList ps = this.buildParam(this, null); ps["设备"] = DevIdS; ps["LocalIP"] = myip; ps["Localhost"] = System.Net.Dns.GetHostName(); ps["UserAccounts"] = BindManager.getUser().UserName; QueryDataRes query = new QueryDataRes(this.unitItem.DataSrcFile); NameObjectList psnull = new NameObjectList(); if (query.ExecuteNonQuery("解挂", ps, ps, psnull)) { XtraMessageBox.Show("解挂成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { XtraMessageBox.Show("解挂失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } //刷新纪录 this.dsUnit.Tables["用户选择"].Clear(); this.Query.FillDataSet("用户选择", new NameObjectList(), this.dsUnit); this.dsUnit.Tables["日志"].Clear(); this.Query.FillDataSet("日志", new NameObjectList(), this.dsUnit); }
/// <summary> /// 重置密码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnReset_Click(object sender, EventArgs e) { if (this.dbUserView.RowCount < 1) { return; } DataRow dr = this.dbUserView.GetDataRow(this.dbUserView.FocusedRowHandle); NameObjectList ps = ParamManager.createParam(dr); QueryDataRes query = new QueryDataRes(this.unitItem.DataSrcFile); if (!query.ExecuteNonQuery("用户密码初始化", ps, ps, ps)) { MessageBox.Show("重置密码失败!", "重置密码", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show("成功重置密码为:abc123\r\n请及时修改密码确保安全", "重置密码", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// 直接采集一条数据,并自动存入数据库,返回获取数据的记录 /// 没有记录时恢复巡检 /// </summary> /// <param name="isfirst">是否首次提取,首次会补充采集当前记录以防漏采</param> public override string GatherData(bool isfirst) { if (null == this.commimgr || null == this.target || string.IsNullOrEmpty(this.devid) || this.station < 1) { return(""); } CmdProtocol cmdP = this.cmdGather; if (null == cmdP) { cmdP = new CmdProtocol(false); } string[] cols = { "{卡号}", "{卡类}", "{消费时间}", "{消费金额}", "{卡余额}", "{累计补助金额}", "{消费机号}", "{操作员号}" }; string tag = "@设备地址=" + Convert.ToString(this.station); this.reChecking(0); if (recordpos.ContainsKey(this.devid)) { tag = basefun.setvaltag(tag, "{记录值指针}", Convert.ToString(recordpos[this.devid])); cmdP.setCommand("消费", "取指定记录", tag); } else { if (isfirst) { this.getSubsidy(); cmdP.setCommand("消费", "取当前消费记录", tag); } else { cmdP.setCommand("消费", "取下一条消费记录", tag); } } string msg = getResponse(this.commimgr, this.target, cmdP, this.waitTime); string cardnum = basefun.valtag(msg, "{卡号}"); string suc = basefun.valtag(msg, "Success"); if ("true" != suc || string.IsNullOrEmpty(cardnum) || "16777215" == cardnum || "0" == cardnum) { this.reChecking(1); if ("false" == suc || "16777215" == cardnum || "0" == cardnum) { recordpos.Remove(this.devid); } return(msg); } string info = ""; for (int c = 0; c < cols.Length; c++) { info = basefun.setvaltag(info, cols[c], basefun.valtag(msg, cols[c])); } NameObjectList ps = ParamManager.createParam(info); ps["消费机"] = this.devid; bool success = this.query.ExecuteNonQuery("采集数据", ps, ps, ps); if (!success) { ServiceTool.LogMessage(info, null, EventLogEntryType.Warning); } if (recordpos.ContainsKey(this.devid)) { recordpos[this.devid]++; ps.Clear(); ps["消费机"] = this.devid; ps["记录位置"] = recordpos[this.devid]; query.ExecuteNonQuery("记录指针", ps, ps, ps); } DateTime dt = DateTime.MinValue; try { dt = Convert.ToDateTime(ps["消费时间"]); } catch { } this.AddRecord(info); DvRecordEventArgs arg = new DvRecordEventArgs(this.devid, this.station, dt, info); this.RaiseRecord(arg); return(msg); }
/// <summary> /// 写入记录 /// </summary> /// <param name="msg">tag格式信息:{卡号}、状态编号,读卡器号,{刷卡时间}</param> private string writeRecord(string msg) { string cardnum = basefun.valtag(msg, "{卡号}"); string suc = basefun.valtag(msg, "Success"); if ("true" != suc || "16777215" == cardnum || "0" == cardnum || string.IsNullOrEmpty(cardnum)) { return(msg); } NameObjectList ps = new NameObjectList(); ps["卡号"] = cardnum; DataTable tabuser = null; try { Monitor.Enter(objquery); tabuser = this.qyemp.getTable("卡用户信息", ps); } finally { Monitor.PulseAll(objquery); Monitor.Exit(objquery); } if (null != tabuser && tabuser.Rows.Count > 0) { DataRow dr = tabuser.Rows[0]; string[] strcol = { "部门ID", "部门代码", "部门", "姓名", "用户编号", "照片", "卡号", "卡号NUM", "卡片序列号", "卡片SN" }; foreach (string c in strcol) { msg = basefun.setvaltag(msg, "{" + c + "}", Convert.ToString(dr[c])); } if (DBNull.Value != dr["进入时间"]) { msg = basefun.setvaltag(msg, "{进入时间}", Convert.ToDateTime(dr["进入时间"]).ToString("yyyy-MM-dd HH:mm:ss")); } } string info = ""; string[] cols = { "{卡号}", "{卡号NUM}", "{卡片序列号}", "{卡片SN}", "{部门}", "{部门ID}", "{部门代码}", "{姓名}", "{照片}", "{用户编号}", "状态编号", "读卡器", "{刷卡时间}", "{进入时间}" }; for (int c = 0; c < cols.Length; c++) { info = basefun.setvaltag(info, cols[c], basefun.valtag(msg, cols[c])); } string idx = basefun.valtag(info, "读卡器"); string chname = channels[0]; if ("进出口" == devtype || "出入口" == devtype) { chname = "2" == idx || "3" == idx ? channels[1] : chname; } info = basefun.setvaltag(info, "通道", chname); info = basefun.setvaltag(info, "区域", region); info = basefun.setvaltag(info, "区域ID", regionID); info = basefun.setvaltag(info, "控制器类型", devtype); string strstate = this.getStateDoorCard(cardnum, basefun.valtag(info, "状态编号"), idx); msg = basefun.setvaltag(msg, "状态", strstate); info = basefun.setvaltag(info, "状态", strstate); ps = ParamManager.createParam(info); ps["控制器"] = this.devid; ps["时间"] = ps["刷卡时间"] = DateTime.MinValue; DateTime dt = DateTime.MinValue; try { string dtstr = basefun.valtag(msg, "{刷卡时间}"); if (!string.IsNullOrEmpty(dtstr) && "0001-1-1 0:00:00" != dtstr) { ps["时间"] = ps["刷卡时间"] = dt = Convert.ToDateTime(dtstr); } } catch { dt = DateTime.MinValue; } if (dt < DateTime.Today.AddYears(-3) || dt > DateTime.Today.AddYears(3)) { if (null == dtobj) { return(msg); } try { dt = Convert.ToDateTime(dtobj); } catch { return(msg); } if (dt < DateTime.Today.AddYears(-3) || dt > DateTime.Today.AddYears(3)) { return(msg); } ps["时间"] = ps["刷卡时间"] = dtobj; } else { dtobj = ps["时间"]; } bool success = true; try { Monitor.Enter(objquery); success = qydata.ExecuteNonQuery("采集道闸数据", ps, ps, ps); } finally { Monitor.PulseAll(objquery); Monitor.Exit(objquery); } if (!success) { NameValueCollection attr = new NameValueCollection(); attr["功能"] = "采集道闸数据保存失败"; ServiceTool.LogMessage(info, null, EventLogEntryType.Warning); } this.AddRecord(info); DvRecordEventArgs arg = new DvRecordEventArgs(this.devid, this.station, dt, info); this.RaiseRecord(arg); return(msg); }
/// <summary> /// 对同一个target循环执行数据记录关联的指令,执行成功后执行sql更新 /// </summary> /// <param name="drs">指令数据数组</param> /// <param name="colmap">字段与指令的映射</param> /// <param name="tpl">指令协议类别:停车场/消费/门禁/考勤/卡务中心</param> /// <param name="cmd">指令命令名称</param> /// <param name="target">通讯目标位置</param> /// <param name="deviceID">设备下位机地址</param> /// <param name="query">数据更新执行实例</param> /// <param name="dbItem">执行更新的数据项</param> /// <returns>成功执行返回空,失败返回错误原因</returns> public static string ExecuteDataRows(DataRow[] drs, string[,] colmap, string tpl, string cmd, CommiTarget target, string deviceID, QueryDataRes query, string dbItem) { if (null == drs || drs.Length < 1 || null == colmap || colmap.GetLength(1) < 2 || string.IsNullOrEmpty(tpl) || string.IsNullOrEmpty(cmd)) { return(""); } if (null == target || string.IsNullOrEmpty(deviceID)) { return(""); } //声明一个集合来储存数据 List <DataRow> drList = new List <DataRow>(); string msg = ""; //执行指令 CmdProtocol cmdP = new CmdProtocol(deviceID, false); //循环得到传过来的数据 foreach (DataRow dr in drs) { if (null == dr) { continue; } string tagdata = "@设备地址=" + deviceID; for (int c = 0; c < colmap.GetLength(0); c++) { object val = dr[colmap[c, 1]]; if (true.Equals(val)) { val = "1"; } if (false.Equals(val)) { val = "0"; } tagdata = basefun.setvaltag(tagdata, colmap[c, 0], Convert.ToString(val)); } //设置指令 cmdP.setCommand(tpl, cmd, tagdata); cmdP.ResetState(); //发送指令 CommiManager.GlobalManager.SendCommand(target, cmdP); if (!cmdP.EventWh.WaitOne(2000, false)) { msg = basefun.setvaltag(tagdata, "{状态}", "通讯超时失败!"); break; } if (string.IsNullOrEmpty(cmdP.ResponseFormat)) { msg = basefun.setvaltag(tagdata, "{状态}", tagdata + "指令错误!"); break; } drList.Add(dr); } //更新数据库 //判断数据源和存储过程是否为空 if (null == query || string.IsNullOrEmpty(dbItem)) { return(msg); } //得到数据的数量 Estar.Common.Tools.NameObjectList[] ps = new Estar.Common.Tools.NameObjectList[drList.Count]; for (int i = 0; i < drList.Count; i++) { ps[i] = ParamManager.createParam(drList[i]); } //得到数据与配置的数据已经保持一致,但发现没有执行存储过程。。。 //执行数据库操作(方法封装在query内) bool success = query.ExecuteNonQuery(dbItem, ps, ps, ps); if (!success) { msg = basefun.setvaltag(msg, "{状态}", basefun.valtag(msg, "{状态}") + "更新数据库失败!"); } return(msg); }
/// <summary> /// 写入记录,分补助或消费分别保存 /// </summary> /// <param name="msg">tag格式信息:{卡号}、状态编号,读卡器号,{刷卡时间}</param> private string writeRecord(string msg) { string cardnum = basefun.valtag(msg, "{卡号}"); string suc = basefun.valtag(msg, "Success"); if ("true" != suc || "16777215" == cardnum || "0" == cardnum || string.IsNullOrEmpty(cardnum)) { return(msg); } string info = ""; string[] cols = { "{卡号}", "{卡类}", "{消费时间}", "{消费金额}", "{卡余额}", "{累计补助金额}", "{消费机号}", "{操作员号}" }; if ("补助机" == this.devName) { cols = new string[] { "{卡号}", "{卡类}", "{充值时间}", "{本次补助金额}", "{补助后总额}" } } ; for (int c = 0; c < cols.Length; c++) { info = basefun.setvaltag(info, cols[c], basefun.valtag(msg, cols[c])); } NameObjectList ps = ParamManager.createParam(info); ps["消费机"] = this.devid; //msg = "@{帧头}=C0,@{设备地址}=17,@{控制场}=01,@{长度场}=25,@Success=true,@{状态}=操作成功!,@{命令长度}=23,@{消费机号}=17,@{操作员号}=255,@{卡号}=16777215,@{卡类}=255,@{消费时间}=0001/1/1 0:00:00,@{卡余额}=1677721.5,@{累计补助金额}=6553.5,@{消费金额}=6553.5,@{记录指针}=11297,@{校验字}=32,@{帧尾}=C0"; ///*************************查看时间格式是否正确 2012-06-20 string dtTime = Convert.ToString(basefun.valtag(msg, "{消费时间}")); try { DateTime s = Convert.ToDateTime(dtTime); if (dtTime.ToString() == "0001/1/1 0:00:00" || Convert.ToDateTime(dtTime) < Convert.ToDateTime("2000-01-01 00:00:00")) { ps["设备ID"] = this.devid; ps["卡号"] = cardnum; ps["日期"] = dtTime; ps["金额"] = basefun.valtag(msg, "{卡余额}"); this.query.ExecuteNonQuery("错误记录", ps, ps, ps); } } catch { ps["设备ID"] = this.devid; ps["卡号"] = cardnum; ps["日期"] = dtTime; ps["金额"] = basefun.valtag(msg, "{卡余额}"); this.query.ExecuteNonQuery("错误记录", ps, ps, ps); } ///*************************查看时间格式是否正确 2012-06-20 DateTime dt = DateTime.MinValue; string fld = "补助机" == this.devName ? "充值时间" : "消费时间"; try { dt = Convert.ToDateTime(ps[fld]); } catch { } if (dt < DateTime.Today.AddYears(-3) || dt > DateTime.Today.AddYears(3)) { if (null == dtobj) { return(msg); } try { dt = Convert.ToDateTime(dtobj); } catch { return(msg); } ps[fld] = dtobj; } else { dtobj = ps[fld]; } bool success = false; if ("补助机" == this.devName) { success = this.query.ExecuteNonQuery("消费接收补助", ps, ps, ps); } else { success = this.query.ExecuteNonQuery("采集数据", ps, ps, ps); } Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 保存:" + this.devName + " " + this.station.ToString()); myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 保存:" + this.devName + " " + this.station.ToString()); if (!success) { ServiceTool.LogMessage(info, null, EventLogEntryType.Warning); } if (recordpos.ContainsKey(this.devid)) { recordpos[this.devid]++; ps.Clear(); ps["消费机"] = this.devid; ps["记录位置"] = recordpos[this.devid]; query.ExecuteNonQuery("记录指针", ps, ps, ps); } this.AddRecord(info); DvRecordEventArgs arg = new DvRecordEventArgs(this.devid, this.station, dt, info); this.RaiseRecord(arg); return(msg); } object dtobj = null;
/// <summary> /// 写入记录 /// </summary> /// <param name="tagmsg">tag格式信息:{卡号}、状态编号,读卡器号,{刷卡时间}</param> /// <param name="isevent">是否触发事件</param> private string writeRecord(string tagmsg, bool isevent) { string cardnum = basefun.valtag(tagmsg, "{卡号}"); string suc = basefun.valtag(tagmsg, "Success"); // if ("true" != suc || "16777215" == cardnum || "0" == cardnum || string.IsNullOrEmpty(cardnum)) if ("16777215" == cardnum || "0" == cardnum || string.IsNullOrEmpty(cardnum)) { return(tagmsg); } NameObjectList ps = new NameObjectList(); ps["卡号"] = cardnum; DataTable tabuser = null; try { Monitor.Enter(objquery); tabuser = this.qyemp.getTable("卡用户信息", ps); } finally { Monitor.PulseAll(objquery); Monitor.Exit(objquery); } if (null != tabuser && tabuser.Rows.Count > 0) { DataRow dr = tabuser.Rows[0]; tagmsg = basefun.setvaltag(tagmsg, "{部门ID}", Convert.ToString(dr["部门ID"])); tagmsg = basefun.setvaltag(tagmsg, "{部门代码}", Convert.ToString(dr["部门代码"])); tagmsg = basefun.setvaltag(tagmsg, "{部门}", Convert.ToString(dr["部门"])); tagmsg = basefun.setvaltag(tagmsg, "{姓名}", Convert.ToString(dr["姓名"])); } string info = ""; string[] cols = { "{卡号}", "{部门}", "{部门ID}", "{部门代码}", "{姓名}", "状态编号", "读卡器", "{刷卡时间}" }; for (int c = 0; c < cols.Length; c++) { info = basefun.setvaltag(info, cols[c], basefun.valtag(tagmsg, cols[c])); } string strstate = this.getStateDoorCard(cardnum, basefun.valtag(info, "状态编号"), basefun.valtag(info, "读卡器")); tagmsg = basefun.setvaltag(tagmsg, "状态", strstate); info = basefun.setvaltag(info, "状态", strstate); ps = ParamManager.createParam(info); ps["控制器"] = this.devid; ps["时间"] = ps["刷卡时间"] = DateTime.MinValue; DateTime dt = DateTime.MinValue; try { string dtstr = basefun.valtag(tagmsg, "{刷卡时间}"); if (!string.IsNullOrEmpty(dtstr) && "0001-1-1 0:00:00" != dtstr) { ps["时间"] = ps["刷卡时间"] = dt = Convert.ToDateTime(dtstr); } } catch { dt = DateTime.MinValue; } if (dt < DateTime.Today.AddYears(-3) || dt > DateTime.Today.AddYears(3)) { if (null == dtobj) { return(tagmsg); } try { dt = Convert.ToDateTime(dtobj); } catch { ServiceTool.LogMessage(info, null, EventLogEntryType.Warning); return(tagmsg); } if (dt < DateTime.Today.AddYears(-3) || dt > DateTime.Today.AddYears(3)) { ServiceTool.LogMessage(info, null, EventLogEntryType.Warning); return(tagmsg); } ps["时间"] = ps["刷卡时间"] = dtobj; } else { dtobj = ps["时间"]; } bool success = false; try { Monitor.Enter(objquery); success = qydata.ExecuteNonQuery("采集门禁数据", ps, ps, ps); } finally { Monitor.PulseAll(objquery); Monitor.Exit(objquery); } if (!success) { ServiceTool.LogMessage(info, null, EventLogEntryType.Warning); } if (isevent) { this.AddRecord(info); DvRecordEventArgs arg = new DvRecordEventArgs(this.devid, this.station, dt, info); this.RaiseRecord(arg); } return(tagmsg); }
/// <summary> /// 退卡 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCardQuit_Click(object sender, EventArgs e) { getNewDataByCardNo(cardno); if (string.IsNullOrEmpty(cardno)) { XtraMessageBox.Show("请读卡!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (dsUnit.Tables["selectCard"].Rows.Count < 1) { XtraMessageBox.Show("此卡未发行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (status == "挂失") { XtraMessageBox.Show("此卡号状态为挂失,不能退卡!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } #region Ic卡清空数及退卡 if (radic.Checked) { string CardStatus = ""; //消费 if (Etime.Enabled) { CardStatus = cmdCard.ClearData(CardArea.Eatery); CardStatus = basefun.valtag(CardStatus, "{状态}"); if (CardStatus != "操作成功!") { MessageBox.Show(CardStatus, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } //停车场 if (Ptime.Enabled) { CardStatus = cmdCard.ClearData(CardArea.Park); CardStatus = basefun.valtag(CardStatus, "{状态}"); if (CardStatus != "操作成功!") { MessageBox.Show(CardStatus, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } //蜂鸣提示 cmdCard.Buzz(true); } #endregion IPHostEntry IpEntry = Dns.GetHostEntry(Dns.GetHostName()); string myip = IpEntry.AddressList[0].ToString(); NameObjectList ps = this.buildParam(this, null); if (this.radYou.Checked) { ps["是否有卡"] = 0; } else if (this.radWu.Checked) { ps["是否有卡"] = 1; } ps["UserAccounts"] = BindManager.getUser().UserName; ps["设备"] = DevIdS; ps["LocalIP"] = myip; ps["Localhost"] = System.Net.Dns.GetHostName(); QueryDataRes query = new QueryDataRes(this.unitItem.DataSrcFile); NameObjectList psnull = new NameObjectList(); if (query.ExecuteNonQuery("退卡", ps, ps, ps)) { XtraMessageBox.Show("退卡成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { XtraMessageBox.Show("退卡失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } //刷新纪录 this.dsUnit.Tables["用户选择"].Clear(); this.Query.FillDataSet("用户选择", new NameObjectList(), this.dsUnit); this.dsUnit.Tables["日志"].Clear(); this.Query.FillDataSet("日志", new NameObjectList(), this.dsUnit); }
/// <summary> /// 充值延期 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCardPay_Click(object sender, EventArgs e) { getNewDataByCardNo(txtCardRealNo.Text); if (string.IsNullOrEmpty(txtCardRealNo.Text)) { XtraMessageBox.Show("请读卡!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (dsUnit.Tables["selectCard"].Rows.Count < 1) { XtraMessageBox.Show("此卡未发行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (status == "退卡") { XtraMessageBox.Show("此卡号状态为退卡,不能充值!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (status == "挂失") { XtraMessageBox.Show("此卡号状态为挂失,不能充值!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (radic.Checked) { if (WriteInfo("充值") == false) { return; } } IPHostEntry IpEntry = Dns.GetHostEntry(Dns.GetHostName()); string myip = IpEntry.AddressList[0].ToString(); NameObjectList ps = this.buildParam(this, null); if (this.radYou.Checked) { ps["是否有卡"] = 0; } else if (this.radWu.Checked) { ps["是否有卡"] = 1; } if (!this.Etime.Enabled) { ps["消费"] = ""; } else { ps["消费"] = "消费"; } if (!this.Dtime.Enabled) { ps["门禁"] = ""; } else { ps["门禁"] = "门禁"; } if (!this.Ptime.Enabled) { ps["停车场"] = ""; } else { ps["停车场"] = "停车场"; } if (dtime1 == DateTime.Now.ToString("yyyy-MM-dd")) { dtime1 = this.txtdtime.Text; } if (etime1 == DateTime.Now.ToString("yyyy-MM-dd")) { etime1 = this.txtEtime.Text; } if (ptime1 == DateTime.Now.ToString("yyyy-MM-dd")) { ptime1 = this.txtptime.Text; } if (string.IsNullOrEmpty(dtime1)) { dtime1 = DateTime.Now.ToString("yyyy-MM-dd"); } if (string.IsNullOrEmpty(etime1)) { etime1 = DateTime.Now.ToString("yyyy-MM-dd"); } if (string.IsNullOrEmpty(ptime1)) { ptime1 = DateTime.Now.ToString("yyyy-MM-dd"); } ps["门禁延期"] = dtime1; ps["消费延期"] = etime1; ps["停车场延期"] = ptime1; ps["现金充值"] = txtXJmoney.Text; ps["补助充值"] = txtBZmoney.Text; ps["补助累加"] = IsaddBZMoney; ps["UserAccounts"] = BindManager.getUser().UserName; ps["设备"] = DevIdS; ps["LocalIP"] = myip; ps["Localhost"] = System.Net.Dns.GetHostName(); QueryDataRes query = new QueryDataRes(this.unitItem.DataSrcFile); NameObjectList psnull = new NameObjectList(); if (query.ExecuteNonQuery("充值", ps, ps, ps)) { XtraMessageBox.Show("充值成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { XtraMessageBox.Show("充值失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } //刷新纪录 this.dsUnit.Tables["用户选择"].Clear(); this.Query.FillDataSet("用户选择", new NameObjectList(), this.dsUnit); this.dsUnit.Tables["日志"].Clear(); this.Query.FillDataSet("日志", new NameObjectList(), this.dsUnit); getNewDataByCardNo(txtCardRealNo.Text); }
/// <summary> /// 初始化硬件设备 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void InitBtn_Click(object sender, EventArgs e) { int[] indexlist = this.getCheckedList(); if (indexlist.Length < 1) { MessageBox.Show("请选择一个设备", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (DialogResult.Yes != MessageBox.Show("初始化设备会清空设备存储的数据,是否确认需要初始化!", "设备初始化", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { return; } string strdevIDs = "", msg = "", strdevNames = ""; string tpl = "停车场", cmd = "格式化"; DataTable tab = this.dbGrid.DataSource as DataTable; foreach (int i in indexlist) { DataRow dr = tab.Rows[i]; CommiTarget target = this.getTarget(dr); CmdProtocol cmdP = new CmdProtocol(Convert.ToString(dr["名称"]), false); string devid = Convert.ToString(dr["站址"]); string tagdata = "@设备地址=" + devid; cmdP.setCommand(tpl, cmd, tagdata); CommiManager.GlobalManager.SendCommand(target, cmdP); if (!cmdP.EventWh.WaitOne(2000, false)) { msg = cmdP.CmdId + ":通讯失败,请检查设备连接或通讯参数后重试!"; } string rpmsg = basefun.valtag(cmdP.ResponseFormat, "{状态}"); if (string.IsNullOrEmpty(msg) && !string.IsNullOrEmpty(rpmsg) && "操作成功!" != rpmsg) { msg = cmdP.CmdId + ":" + rpmsg; } if (!string.IsNullOrEmpty(msg)) { break; } strdevIDs += "," + devid; strdevNames += cmdP.CmdId + ","; } //形成参数 string[] devids = strdevIDs.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); NameObjectList[] psList = new NameObjectList[devids.Length]; for (int i = 0; i < devids.Length; i++) { psList[i] = new NameObjectList(); psList[i]["devID"] = devids[i]; } QueryDataRes query = new QueryDataRes(this.unitItem.DataSrcFile); if (psList.Length > 0) { query.ExecuteNonQuery("删除设备白名单", psList, psList, psList); } if (string.IsNullOrEmpty(msg)) { MessageBox.Show("设备初始化成功!", "设备初始化", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { msg = string.IsNullOrEmpty(strdevNames) ? msg : strdevNames + "成功执行初始化,\r\n" + msg; MessageBox.Show(msg, "设备初始化", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }