private void ExecDeviceCommand(int AutoType, string AutoName) { DateTime dt = new DateTime(); if (!db.GetServerDate(ref dt)) { return; } DataTable dtBlack = null; DataTable dtPower = null; byte devType = 0; string devName = ""; QHKS.TConnInfo connInfo; QHKS.TMJConnInfo mjConn; TConnInfoNewMJ mjNewConn; TConnInfoFinger connFinger; string msg = ""; bool state = false; string MacVer = ""; int RecordCount = 0; int RecordIndex = 0; string dataMsg = ""; progBar.Style = ProgressBarStyle.Marquee; progBar.Value = 50; if ((AutoType == 2) || (AutoType == 4)) { progBar.Style = ProgressBarStyle.Blocks; progBar.Value = 0; } if (AutoType == 3) { try { dtBlack = db.GetDataTable(Pub.GetSQL(DBCode.DB_001003, new string[] { "501" })); } catch (Exception E) { Pub.ShowErrorMsg(E); return; } } for (int i = 0; i < tvMac.Nodes.Count; i++) { Application.DoEvents(); if (!isRealing) { break; } if (tvMac.StateImageList == null) { if (!tvMac.Nodes[i].Checked) { continue; } } else { if (tvMac.Nodes[i].StateImageIndex == 0) { continue; } } devType = Convert.ToByte(tvMac.Nodes[i].Tag); devName = tvMac.Nodes[i].Text; for (int j = 0; j < tvMac.Nodes[i].Nodes.Count; j++) { Application.DoEvents(); if (!isRealing) { break; } if (tvMac.StateImageList == null) { if (!tvMac.Nodes[i].Nodes[j].Checked) { continue; } } else { if (tvMac.Nodes[i].Nodes[j].StateImageIndex != 1) { continue; } } switch (devType) { case 0: connInfo = (QHKS.TConnInfo)tvMac.Nodes[i].Nodes[j].Tag; switch (AutoType) { case 1://同步时间 msg = string.Format(Pub.GetResText(formCode, "MsgSyncTime", ""), devName, connInfo.MacSN); break; case 2://回收数据 msg = string.Format(Pub.GetResText(formCode, "MsgGetData", ""), devName, connInfo.MacSN); break; case 3://下载黑名单 msg = string.Format(Pub.GetResText(formCode, "MsgBlackKQ", ""), connInfo.MacSN); break; case 4://下载权限 msg = string.Format(Pub.GetResText(formCode, "MsgDownPower", ""), devName, connInfo.MacSN); break; } MsgString = msg; ShowMsg(msg); DeviceObject.objKS.Init(ref connInfo); state = DeviceObject.objKS.SysDeviceInfoGet(ref MacVer); if (state) { DeviceObject.objKS.InitMacVer(MacVer); } switch (AutoType) { case 1://同步时间 if (state) { state = DeviceObject.objKS.PubTimeSet(dt); } UpdateMsg(state); break; case 2://回收数据 DeviceObject.objKS.SysSetState(false); KQReadData readData = new KQReadData(this.Text + "[" + AutoName + "]", true); if (state) { state = readData.ReadData(db, textFormat, connInfo.MacSN, ref RecordCount, ref RecordIndex, false, ShowReadDataProcess); } DeviceObject.objKS.SysSetState(true); UpdateMsg(state, string.Format("{0}/{1}", RecordIndex, RecordCount)); break; case 3://下载黑名单 if (state) { KQDownBlack kqBlack = new KQDownBlack(dtBlack, connInfo); if (state) { state = kqBlack.Down(); } } UpdateMsg(state); break; case 4://下载权限 break; } break; case 1: if (SystemInfo.IsNewMJ) { mjNewConn = (TConnInfoNewMJ)tvMac.Nodes[i].Nodes[j].Tag; switch (AutoType) { case 1://同步时间 msg = string.Format(Pub.GetResText(formCode, "MsgSyncTime", ""), devName, mjNewConn.MacSN); break; case 2://回收数据 msg = string.Format(Pub.GetResText(formCode, "MsgGetData", ""), devName, mjNewConn.MacSN); break; case 3://下载黑名单 msg = string.Format(Pub.GetResText(formCode, "MsgBlackMJ", ""), mjNewConn.MacSN); break; case 4://下载权限 msg = string.Format(Pub.GetResText(formCode, "MsgDownPower", ""), devName, mjNewConn.MacSN); break; } MsgString = msg; ShowMsg(msg); DeviceObject.objMJNew.NewDevice(mjNewConn); switch (AutoType) { case 1://同步时间 AccessV2API.TYPE_Setting setting = new AccessV2API.TYPE_Setting(); state = DeviceObject.objMJNew.ReadSetting(out setting); if (state) { DeviceObject.objMJNew.DateTimeToMJDateTime(dt, ref setting.DateTime); state = DeviceObject.objMJNew.SetSetting(setting); } UpdateMsg(state); break; case 2://回收数据 MJReadData readData = new MJReadData(this.Text + "[" + AutoName + "]"); state = readData.ReadDataNew(db, mjNewConn.MacSN.ToString(), ref RecordCount, ref RecordIndex, ShowReadDataProcess); UpdateMsg(state, string.Format("{0}/{1}", RecordIndex, RecordCount)); break; case 3://下载黑名单 MJDownBlack mjBlack = new MJDownBlack(dtBlack, mjNewConn); state = mjBlack.DownNew(); UpdateMsg(state); break; case 4://下载权限 RecordIndex = 0; RecordCount = 0; try { dtPower = db.GetDataTable(Pub.GetSQL(DBCode.DB_003004, new string[] { "0", "" })); state = DeviceObject.objMJNew.ClearRegister(); if (state) { bool IsE = false; byte DoorID = 0; UInt32 cardNo = 0; UInt32 OtherCardNo = 0; string EmpNo = ""; string EmpName = ""; string EmpPass = ""; AccessV2API.TYPE_Register Register; RecordCount = dtPower.Rows.Count; for (int k = 0; k < RecordCount; k++) { ShowReadDataProcess(RecordCount, k + 1); IsE = dtPower.Rows[k]["IsEnable"].ToString().ToUpper() == "Y"; DoorID = Convert.ToByte(dtPower.Rows[k]["MacDoorID"].ToString()); UInt32.TryParse(dtPower.Rows[k]["CardPhysicsNo10"].ToString(), out cardNo); UInt32.TryParse(dtPower.Rows[k]["OtherCardNo"].ToString(), out OtherCardNo); EmpNo = DeviceObject.objMJNew.GetLengthText(dtPower.Rows[k]["EmpNo"].ToString(), 16); EmpName = DeviceObject.objMJNew.GetLengthText(dtPower.Rows[k]["EmpName"].ToString(), 16); EmpPass = DeviceObject.objMJNew.GetLengthText(dtPower.Rows[k]["CardPWD"].ToString(), 8); if (EmpPass == null) { EmpPass = ""; } EmpPass = EmpPass.Length > 8 ? EmpPass.Substring(0, 8) : EmpPass; if (IsE) { if (cardNo > 0) { Register = new AccessV2API.TYPE_Register(); Register.CardNo = cardNo; Register.Door = DoorID; Register.Password = EmpPass; UInt32.TryParse(dtPower.Rows[k]["MacTimeNo"].ToString(), out Register.TimeGroup); DeviceObject.objMJNew.DateTimeToMJDateTime(Convert.ToDateTime(dtPower.Rows[k]["CardStartDate"].ToString()), ref Register.DateBegin); DeviceObject.objMJNew.DateTimeToMJDateTime(Convert.ToDateTime(dtPower.Rows[k]["CardEndDate"].ToString()), ref Register.DateEnd); Register.UserID = EmpNo; Register.UserName = EmpName; state = DeviceObject.objMJNew.AddRegister(Register); } if (state && OtherCardNo > 0) { Register = new AccessV2API.TYPE_Register(); Register.CardNo = OtherCardNo; Register.Door = DoorID; Register.Password = EmpPass; UInt32.TryParse(dtPower.Rows[k]["MacTimeNo"].ToString(), out Register.TimeGroup); DeviceObject.objMJNew.DateTimeToMJDateTime(Convert.ToDateTime(dtPower.Rows[k]["CardStartDate"].ToString()), ref Register.DateBegin); DeviceObject.objMJNew.DateTimeToMJDateTime(Convert.ToDateTime(dtPower.Rows[k]["CardEndDate"].ToString()), ref Register.DateEnd); Register.UserID = EmpNo; Register.UserName = EmpName; state = DeviceObject.objMJNew.AddRegister(Register); } } else { state = true; } if (!state) { break; } RecordIndex++; } } } catch (Exception E) { state = false; Pub.ShowErrorMsg(E); } UpdateMsg(state, string.Format("{0}/{1}", RecordIndex, RecordCount)); break; } } else { mjConn = (QHKS.TMJConnInfo)tvMac.Nodes[i].Nodes[j].Tag; switch (AutoType) { case 1://同步时间 msg = string.Format(Pub.GetResText(formCode, "MsgSyncTime", ""), devName, mjConn.MacSN); break; case 2://回收数据 msg = string.Format(Pub.GetResText(formCode, "MsgGetData", ""), devName, mjConn.MacSN); break; case 3://下载黑名单 msg = string.Format(Pub.GetResText(formCode, "MsgBlackMJ", ""), mjConn.MacSN); break; case 4://下载权限 msg = string.Format(Pub.GetResText(formCode, "MsgDownPower", ""), devName, mjConn.MacSN); break; } MsgString = msg; ShowMsg(msg); DeviceObject.objMJ.Init(ref mjConn); switch (AutoType) { case 1://同步时间 state = DeviceObject.objMJ.SetMacTime(dt); UpdateMsg(state); break; case 2://回收数据 MJReadData readData = new MJReadData(this.Text + "[" + AutoName + "]"); state = readData.ReadData(db, mjConn.MacSN, ref RecordCount, ref RecordIndex, ShowReadDataProcess); UpdateMsg(state, string.Format("{0}/{1}", RecordIndex, RecordCount)); break; case 3://下载黑名单 MJDownBlack mjBlack = new MJDownBlack(dtBlack, mjConn); state = mjBlack.Down(); UpdateMsg(state); break; case 4://下载权限 RecordIndex = 0; RecordCount = 0; try { dtPower = db.GetDataTable(Pub.GetSQL(DBCode.DB_003004, new string[] { "0", "" })); state = DeviceObject.objMJ.ClearMacPower(); if (state) { bool IsE = false; byte DoorID = 0; string cardNo = ""; string OtherCardNo = ""; QHKS.TMJUpPowerInfo power; RecordCount = dtPower.Rows.Count; for (int k = 0; k < RecordCount; k++) { ShowReadDataProcess(RecordCount, k + 1); IsE = dtPower.Rows[k]["IsEnable"].ToString().ToUpper() == "Y"; DoorID = Convert.ToByte(dtPower.Rows[k]["MacDoorID"].ToString()); cardNo = dtPower.Rows[k]["CardPhysicsNo10"].ToString(); OtherCardNo = dtPower.Rows[k]["OtherCardNo"].ToString(); if (IsE) { power = new QHKS.TMJUpPowerInfo(); power.CardNo = cardNo; power.OtherCardNo = OtherCardNo; power.StartDate = Convert.ToDateTime(dtPower.Rows[k]["CardStartDate"].ToString()); power.EndDate = Convert.ToDateTime(dtPower.Rows[k]["CardEndDate"].ToString()); power.Password = dtPower.Rows[k]["CardPWD"].ToString(); power.EmpNo = dtPower.Rows[k]["EmpNo"].ToString(); power.EmpName = dtPower.Rows[k]["EmpName"].ToString(); power.DoorID = DoorID; byte.TryParse(dtPower.Rows[k]["MacTimeNo"].ToString(), out power.TimeID); state = DeviceObject.objMJ.SetMacUpPowerInfo(ref power); } else { state = true; } if (!state) { break; } RecordIndex++; } } } catch (Exception E) { state = false; Pub.ShowErrorMsg(E); } UpdateMsg(state, string.Format("{0}/{1}", RecordIndex, RecordCount)); break; } } break; case 2: connInfo = (QHKS.TConnInfo)tvMac.Nodes[i].Nodes[j].Tag; switch (AutoType) { case 1://同步时间 msg = string.Format(Pub.GetResText(formCode, "MsgSyncTime", ""), devName, connInfo.MacSN); break; case 2://回收数据 msg = string.Format(Pub.GetResText(formCode, "MsgGetData", ""), devName, connInfo.MacSN); break; case 3://下载黑名单 msg = string.Format(Pub.GetResText(formCode, "MsgBlackSF", ""), connInfo.MacSN); break; case 4://下载权限 msg = string.Format(Pub.GetResText(formCode, "MsgDownPower", ""), devName, connInfo.MacSN); break; } MsgString = msg; ShowMsg(msg); DeviceObject.objKS.Init(ref connInfo); state = DeviceObject.objKS.SysDeviceInfoGet(ref MacVer); if (state) { DeviceObject.objKS.InitMacVer(MacVer); } switch (AutoType) { case 1://同步时间 if (state) { state = DeviceObject.objKS.PubTimeSet(dt); } UpdateMsg(state); break; case 2://回收数据 DeviceObject.objKS.SysSetState(false); SFReadData readData = new SFReadData(this.Text + "[" + AutoName + "]", true); if (state) { state = readData.ReadData(db, connInfo.MacSN, connInfo.MacType, ref dataMsg, false, ShowSFReadDataProcess); } DeviceObject.objKS.SysSetState(true); UpdateMsg(state, dataMsg); break; case 3://下载黑名单 if (state) { SFDownBlack sfBlack = new SFDownBlack(dtBlack, connInfo); if (state) { state = sfBlack.Down(); } } UpdateMsg(state); break; case 4://下载权限 break; } break; case 3: connFinger = (TConnInfoFinger)tvMac.Nodes[i].Nodes[j].Tag; switch (AutoType) { case 1://同步时间 msg = string.Format(Pub.GetResText(formCode, "MsgSyncTime", ""), devName, connFinger.MacSN); break; case 2://回收数据 msg = string.Format(Pub.GetResText(formCode, "MsgGetData", ""), devName, connFinger.MacSN); break; case 3://下载黑名单 break; case 4://下载权限 break; } MsgString = msg; ShowMsg(msg); DeviceObject.objFK623.InitConn(connFinger); switch (AutoType) { case 1://同步时间 DeviceObject.objFK623.Open(); state = DeviceObject.objFK623.IsOpen; if (state) { state = DeviceObject.objFK623.SetDeviceTime(dt); } DeviceObject.objFK623.Close(); UpdateMsg(state); break; case 2://回收数据 FingerReadData readData = new FingerReadData(this.Text + "[" + AutoName + "]", 1); state = readData.FK623ReadData(db, textFormat, connFinger.MacSN, ref RecordCount, ref RecordIndex, ShowReadDataProcess); UpdateMsg(state, string.Format("{0}/{1}", RecordIndex, RecordCount)); break; case 3://下载黑名单 break; case 4://下载权限 break; } break; } } } if (dtBlack != null) { dtBlack.Reset(); } if (dtPower != null) { dtPower.Reset(); } db.WriteSYLog(this.Text, AutoName, lblMsg.Text); }
protected override void ExecItemTAG1() { base.ExecItemTAG1(); IsDowning = true; RefreshForm(true); string msg = Pub.GetResText(formCode, "Msg001", ""); bool IsE = false; lblMsg.Text = msg; progBar.Value = 0; Report.DetailGrid.Recordset.First(); int Count = Report.DetailGrid.Recordset.RecordCount; int Index = 0; AccessV2API.TYPE_Register Register; bool ret = false; byte DoorID = 0; UInt32 cardNo = 0; UInt32 OtherCardNo = 0; int suCount = 0; string EmpNo = ""; string EmpName = ""; string EmpPass = ""; string tmp = ""; string err = Pub.GetResText(formCode, "Error002", ""); string errMsg = ""; TConnInfoNewMJ connInfo = new TConnInfoNewMJ(); int RecNo = Report.DetailGrid.Recordset.RecordNo; Report.DetailGrid.Recordset.First(); while (!Report.DetailGrid.Recordset.Eof()) { if (Report.FieldByName("Checked").AsInteger == (int)GRSystemImage.grsi3DChecked) { IsE = Report.FieldByName("IsEnable").AsString.ToUpper() == "Y"; byte.TryParse(Report.FieldByName("MacDoorID").AsString, out DoorID); UInt32.TryParse(Report.FieldByName("CardPhysicsNo10").AsString, out cardNo); UInt32.TryParse(Report.FieldByName("OtherCardNo").AsString, out OtherCardNo); EmpNo = DeviceObject.objMJNew.GetLengthText(Report.FieldByName("EmpNo").AsString, 16); EmpName = DeviceObject.objMJNew.GetLengthText(Report.FieldByName("EmpName").AsString, 16); EmpPass = DeviceObject.objMJNew.GetLengthText(Report.FieldByName("CardPWD").AsString, 8); tmp = "[" + EmpNo + "]" + EmpName + " [" + Report.FieldByName("MacSN").AsString + ": " + Report.FieldByName("MacDoorName").AsString + "]"; lblMsg.Text = msg + tmp; if (GetConnInfo(Report.FieldByName("MacSysID").AsString, ref connInfo)) { DeviceObject.objMJNew.NewDevice(connInfo); if (IsE) { ret = true; if (cardNo > 0) { Register = new AccessV2API.TYPE_Register(); Register.CardNo = cardNo; Register.Door = DoorID; Register.Password = EmpPass; UInt32.TryParse(Report.FieldByName("MacTimeNo").AsString, out Register.TimeGroup); DeviceObject.objMJNew.DateTimeToMJDateTime(Report.FieldByName("CardStartDate").AsDateTime, ref Register.DateBegin); DeviceObject.objMJNew.DateTimeToMJDateTime(Report.FieldByName("CardEndDate").AsDateTime, ref Register.DateEnd); Register.UserID = EmpNo; Register.UserName = EmpName; ret = DeviceObject.objMJNew.AddRegister(Register); } if (ret && OtherCardNo > 0) { Register = new AccessV2API.TYPE_Register(); Register.CardNo = OtherCardNo; Register.Door = DoorID; Register.Password = EmpPass; UInt32.TryParse(Report.FieldByName("MacTimeNo").AsString, out Register.TimeGroup); DeviceObject.objMJNew.DateTimeToMJDateTime(Report.FieldByName("CardStartDate").AsDateTime, ref Register.DateBegin); DeviceObject.objMJNew.DateTimeToMJDateTime(Report.FieldByName("CardEndDate").AsDateTime, ref Register.DateEnd); Register.UserID = EmpNo; Register.UserName = EmpName; ret = DeviceObject.objMJNew.AddRegister(Register); } } else { ret = true; if (cardNo > 0) { ret = DeviceObject.objMJNew.RemoveRegister(DoorID, cardNo); } if (ret && OtherCardNo > 0) { ret = DeviceObject.objMJNew.RemoveRegister(DoorID, OtherCardNo); } } if (!ret) { errMsg = string.Format(err, tmp, GetErrMsg(ret)); if (Pub.MessageBoxQuestion(errMsg, MessageBoxButtons.YesNo) == DialogResult.No) { break; } } else { db.WriteSYLog(this.Text, CurrentTool, tmp + GetErrMsg(ret)); suCount += 1; } if (!IsDowning) { break; } } else { break; } } Report.DetailGrid.Recordset.Next(); Index += 1; if (!IsDowning || (Index >= Count)) { break; } progBar.Value = Index * 100 / Count; Application.DoEvents(); } IsDowning = false; RefreshForm(true); lblMsg.Text = string.Format(Pub.GetResText(formCode, "Msg002", ""), suCount); progBar.Value = 0; Report.DetailGrid.Recordset.MoveTo(RecNo); }