private void btnGetAttPrintRecord_Click(object sender, EventArgs e) { #region 打卡记录 //打卡记录时间格式带小时分钟,需特殊处理 string sql = @"select * from smthrm.t_hr_employeeclockinrecord c where c.employeeid='" + txtEmployeeId.Text + @"' and c.punchdate>=to_date('" + GlobalParameters.StartDate + @"','yyyy-mm-dd') and c.punchdate<=to_date('" + GlobalParameters.EndDate + @"','yyyy-mm-dd') order by c.punchdate"; DataTable dt = OracleHelp.getTable(sql); if (dt != null) { this.dtAttRecord.DataSource = dt; foreach (DataRow dr in dt.Rows) { T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = dr["CLOCKINRECORDID"].ToString(); entTemp.FINGERPRINTID = dr["FINGERPRINTID"].ToString(); entTemp.CLOCKID = dr["CLOCKID"].ToString(); entTemp.PUNCHDATE = DateTime.Parse(dr["PUNCHDATE"].ToString()); entTemp.PUNCHTIME = dr["PUNCHTIME"].ToString(); entTempListAgain.Add(entTemp); } OracleHelp.close(); //txtMessagebox.Text = "查询员工打卡记录完成,共:" + dt.Rows.Count.ToString() + "条数据" + System.Environment.NewLine + txtMessagebox.Text; } else { //txtMessagebox.Text = "查询员工打卡记录完成,共:0条数据" + System.Environment.NewLine + txtMessagebox.Text; } #endregion }
public void GetAttendRecord() { try { if (clientAtt == null) clientAtt = new AttendRecordImportHelper.AttendanceWS.AttendanceServiceClient(); DateTime From = new DateTime(); DateTime To = new DateTime(); DateTime.TryParse(dtFrom.Text, out From); DateTime.TryParse(dtTo.Text, out To); entTempList.Clear(); using (hrEntities db = new hrEntities()) { var data = from ent in db.kqjl where ent.checktime >= From && ent.checktime <= To select ent; foreach (var item in data) { T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = item.badgenumber; entTemp.CLOCKID = item.machine_sn.ToString(); entTemp.PUNCHDATE = item.checktime; entTemp.PUNCHTIME = item.checktime.Value.Hour.ToString() + ":" + item.checktime.Value.Minute.ToString(); entTempList.Add(entTemp); } } }catch(Exception ex) { Tracer.Debug("导入打卡记录失败,失败原因为:" + ex.ToString()); } }
public void GetAttendRecord() { try { if (clientAtt == null) { clientAtt = new AttendRecordImportHelper.AttendanceWS.AttendanceServiceClient(); } DateTime From = new DateTime(); DateTime To = new DateTime(); DateTime.TryParse(dtFrom.Text, out From); DateTime.TryParse(dtTo.Text, out To); entTempList.Clear(); using (hrEntities db = new hrEntities()) { var data = from ent in db.kqjl where ent.checktime >= From && ent.checktime <= To select ent; foreach (var item in data) { T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = item.badgenumber; entTemp.CLOCKID = item.machine_sn.ToString(); entTemp.PUNCHDATE = item.checktime; entTemp.PUNCHTIME = item.checktime.Value.Hour.ToString() + ":" + item.checktime.Value.Minute.ToString(); entTempList.Add(entTemp); } } }catch (Exception ex) { Tracer.Debug("导入打卡记录失败,失败原因为:" + ex.ToString()); } }
private void GetGeneralLogDataAndUpload(bool bIsConnected, string strCurIP) { try { if (bIsConnected == false) { Tracer.Debug("连接打卡机失败,打卡机IP为:" + strCurIP); return; } DateTime dtFrom = new DateTime(); DateTime dtTo = new DateTime(); DateTime.TryParse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"), out dtFrom); dtTo = dtFrom.AddDays(1).AddSeconds(-1); if (TestMode == "true") { Tracer.Debug("测试模式下开始下载打卡记录:下载时间段:" + dtFrom.ToString("yyyy-MM-dd HH:mm:ss") + " 截止日期:" + dtTo.ToString("yyyy-MM-dd HH:mm:ss")); } //DateTime.TryParse(DateTime.Now.AddSeconds(-1).ToString(), out dtTo); int idwTMachineNumber = 0; int idwEnrollNumber = 0; int idwEMachineNumber = 0; int idwVerifyMode = 0; int idwInOutMode = 0; int idwYear = 0; int idwMonth = 0; int idwDay = 0; int idwHour = 0; int idwMinute = 0; List<T_HR_EMPLOYEECLOCKINRECORD> entTempList = new List<T_HR_EMPLOYEECLOCKINRECORD>(); entTempList.Clear(); axCZKEM1.EnableDevice(iMachineNumber, false);//disable the device if (axCZKEM1.ReadGeneralLogData(iMachineNumber))//read all the attendance records to the memory { if (bIsNewDevice) { string sdwEnrollNumber = string.Empty; int idwSecond = 0; int idwWorkcode = 0; while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, out sdwEnrollNumber, out idwVerifyMode, out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode))//get records from the memory { DateTime dtCurrent = new DateTime(); DateTime.TryParse(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString(), out dtCurrent); if (dtCurrent < dtFrom) { continue; } if (dtCurrent >= dtTo) { continue; } T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = sdwEnrollNumber; entTemp.CLOCKID = idwWorkcode.ToString(); entTemp.PUNCHDATE = DateTime.Parse(dtCurrent.ToString("yyyy-MM-dd") + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":" + idwSecond.ToString()); entTemp.PUNCHTIME = idwHour.ToString() + ":" + idwMinute.ToString(); entTempList.Add(entTemp); } } else { while (axCZKEM1.GetGeneralLogData(iMachineNumber, ref idwTMachineNumber, ref idwEnrollNumber, ref idwEMachineNumber, ref idwVerifyMode, ref idwInOutMode, ref idwYear, ref idwMonth, ref idwDay, ref idwHour, ref idwMinute))//get records from the memory { DateTime dtCurrent = new DateTime(); DateTime.TryParse(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString(), out dtCurrent); if (dtCurrent < dtFrom) { continue; } if (dtCurrent >= dtTo) { continue; } T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = idwEnrollNumber.ToString(); entTemp.CLOCKID = idwTMachineNumber.ToString(); entTemp.PUNCHDATE = DateTime.Parse(dtCurrent.ToString("yyyy-MM-dd") + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":00"); entTemp.PUNCHTIME = idwHour.ToString() + ":" + idwMinute.ToString(); entTempList.Add(entTemp); } } } axCZKEM1.EnableDevice(iMachineNumber, true);//enable the device axCZKEM1.Disconnect(); Tracer.Debug("下载打卡记录成功,打卡机IP为:" + strCurIP + "。已断开打卡机连接。下载记录数:"+entTempList.Count()); string strMsg = string.Empty; List<string> companyIds = new List<string>(); companyIds = GetCompanyID(strCurIP); foreach (var strCompanyId in companyIds) { if (TestMode == "true") { foreach (var ent in entTempList) { Tracer.Debug("员工指纹编码:"+ent.FINGERPRINTID + " 打卡时间:"+ ent.PUNCHDATE +":"+ ent.PUNCHTIME); } } else { clientAtt.ImportClockInRdListByWSRealTime(strCompanyId, entTempList.ToArray(), dtFrom, dtTo, strCurIP, ref strMsg); } Tracer.Debug("导入打卡记录成功,打卡机IP为:" + strCurIP + "。导入的公司ID为:" + strCompanyId); } } catch (Exception ex) { Tracer.Debug("导入打卡记录失败,打卡机IP为:" + strCurIP + "。失败原因为:" + ex.ToString()); } }
public void ImportRdHuNanHangXing() { DateTime dtCur = DateTime.Now; if (dtCur.Hour != Convert.ToInt32(ConfigurationManager.AppSettings["ElapsedHour"])) { Tracer.Debug(DateTime.Now.ToString() + ",导入打卡记录未在指定时间内"); return; } Tracer.Debug(DateTime.Now.ToString() + ",开始导入打卡记录,设置的导入时间点为每天:" + strElapsedHour + " 点,导入的端口为:" + iPort); if (clientAtt == null) { clientAtt = new AttendanceServiceClient(); } List <T_HR_EMPLOYEECLOCKINRECORD> entTempList = new List <T_HR_EMPLOYEECLOCKINRECORD>(); DateTime dtFrom = new DateTime(); DateTime dtTo = new DateTime(); DateTime.TryParse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"), out dtFrom); dtTo = dtFrom.AddDays(1).AddSeconds(-1); entTempList.Clear(); using (hrEntities db = new hrEntities()) { var data = from ent in db.kqjl where ent.checktime >= dtFrom && ent.checktime < dtTo select ent; foreach (var item in data) { T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = item.badgenumber; entTemp.CLOCKID = item.machine_sn.ToString(); entTemp.PUNCHDATE = item.checktime; entTemp.PUNCHTIME = item.checktime.Value.Hour.ToString() + ":" + item.checktime.Value.Minute.ToString(); entTempList.Add(entTemp); } } try { Tracer.Debug("航信获取打卡记录成功,下载记录数:" + entTempList.Count()); string strMsg = string.Empty; string[] companyIds = ConfigurationManager.AppSettings["HangXingcompanyID"].Split(','); foreach (var strCompanyId in companyIds) { if (TestMode == "true") { foreach (var ent in entTempList) { Tracer.Debug("员工指纹编码:" + ent.FINGERPRINTID + " 打卡时间:" + ent.PUNCHDATE + ":" + ent.PUNCHTIME); } } else { string strCurIP = "数据库读取"; clientAtt.ImportClockInRdListByWSRealTime(strCompanyId, entTempList.ToArray(), dtFrom, dtTo, strCurIP, ref strMsg); } Tracer.Debug("导入打卡记录成功,导入的公司ID为:" + strCompanyId); } } catch (Exception ex) { Tracer.Debug("航信导入打卡记录失败,失败原因为:" + ex.ToString()); } }
public string AddNewClockInRd(T_HR_EMPLOYEECLOCKINRECORD entClockInRd) { using (ClockInRecordBLL bllClockInRecord = new ClockInRecordBLL()) { return bllClockInRecord.AddClockInRecord(entClockInRd); } }
private void GetGeneralLogDataAndUpload(bool bIsConnected, string strCurIP) { try { if (bIsConnected == false) { Tracer.Debug("连接打卡机失败,打卡机IP为:" + strCurIP); return; } DateTime dtFrom = new DateTime(); DateTime dtTo = new DateTime(); DateTime.TryParse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"), out dtFrom); dtTo = dtFrom.AddDays(1).AddSeconds(-1); if (TestMode == "true") { Tracer.Debug("测试模式下开始下载打卡记录:下载时间段:" + dtFrom.ToString("yyyy-MM-dd HH:mm:ss") + " 截止日期:" + dtTo.ToString("yyyy-MM-dd HH:mm:ss")); } //DateTime.TryParse(DateTime.Now.AddSeconds(-1).ToString(), out dtTo); int idwTMachineNumber = 0; int idwEnrollNumber = 0; int idwEMachineNumber = 0; int idwVerifyMode = 0; int idwInOutMode = 0; int idwYear = 0; int idwMonth = 0; int idwDay = 0; int idwHour = 0; int idwMinute = 0; List <T_HR_EMPLOYEECLOCKINRECORD> entTempList = new List <T_HR_EMPLOYEECLOCKINRECORD>(); entTempList.Clear(); axCZKEM1.EnableDevice(iMachineNumber, false); //disable the device if (axCZKEM1.ReadGeneralLogData(iMachineNumber)) //read all the attendance records to the memory { if (bIsNewDevice) { string sdwEnrollNumber = string.Empty; int idwSecond = 0; int idwWorkcode = 0; while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, out sdwEnrollNumber, out idwVerifyMode, out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode))//get records from the memory { DateTime dtCurrent = new DateTime(); DateTime.TryParse(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString(), out dtCurrent); if (dtCurrent < dtFrom) { continue; } if (dtCurrent >= dtTo) { continue; } T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = sdwEnrollNumber; entTemp.CLOCKID = idwWorkcode.ToString(); entTemp.PUNCHDATE = DateTime.Parse(dtCurrent.ToString("yyyy-MM-dd") + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":" + idwSecond.ToString()); entTemp.PUNCHTIME = idwHour.ToString() + ":" + idwMinute.ToString(); entTempList.Add(entTemp); } } else { while (axCZKEM1.GetGeneralLogData(iMachineNumber, ref idwTMachineNumber, ref idwEnrollNumber, ref idwEMachineNumber, ref idwVerifyMode, ref idwInOutMode, ref idwYear, ref idwMonth, ref idwDay, ref idwHour, ref idwMinute))//get records from the memory { DateTime dtCurrent = new DateTime(); DateTime.TryParse(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString(), out dtCurrent); if (dtCurrent < dtFrom) { continue; } if (dtCurrent >= dtTo) { continue; } T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = idwEnrollNumber.ToString(); entTemp.CLOCKID = idwTMachineNumber.ToString(); entTemp.PUNCHDATE = DateTime.Parse(dtCurrent.ToString("yyyy-MM-dd") + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":00"); entTemp.PUNCHTIME = idwHour.ToString() + ":" + idwMinute.ToString(); entTempList.Add(entTemp); } } } axCZKEM1.EnableDevice(iMachineNumber, true);//enable the device axCZKEM1.Disconnect(); Tracer.Debug("下载打卡记录成功,打卡机IP为:" + strCurIP + "。已断开打卡机连接。下载记录数:" + entTempList.Count()); string strMsg = string.Empty; List <string> companyIds = new List <string>(); companyIds = GetCompanyID(strCurIP); foreach (var strCompanyId in companyIds) { if (TestMode == "true") { foreach (var ent in entTempList) { Tracer.Debug("员工指纹编码:" + ent.FINGERPRINTID + " 打卡时间:" + ent.PUNCHDATE + ":" + ent.PUNCHTIME); } } else { clientAtt.ImportClockInRdListByWSRealTime(strCompanyId, entTempList.ToArray(), dtFrom, dtTo, strCurIP, ref strMsg); } Tracer.Debug("导入打卡记录成功,打卡机IP为:" + strCurIP + "。导入的公司ID为:" + strCompanyId); } } catch (Exception ex) { Tracer.Debug("导入打卡记录失败,打卡机IP为:" + strCurIP + "。失败原因为:" + ex.ToString()); } }
/// <summary> /// 下载打卡记录 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGetGeneralLogData_Click(object sender, EventArgs e) { DateTime dtFrom = new DateTime(); DateTime dtTo = new DateTime(); DateTime.TryParse(dpDateFrom.Value.ToString("yyyy-MM-dd"), out dtFrom); DateTime.TryParse(dpDateTo.Value.AddDays(1).ToString("yyyy-MM-dd"), out dtTo); if (bIsConnected == false) { MessageBox.Show("请先连接考勤机以便下载打卡记录。", "Error"); return; } int idwTMachineNumber = 0; int idwEnrollNumber = 0; int idwEMachineNumber = 0; int idwVerifyMode = 0; int idwInOutMode = 0; int idwYear = 0; int idwMonth = 0; int idwDay = 0; int idwHour = 0; int idwMinute = 0; int idwErrorCode = 0; int iGLCount = 0; int iIndex = 0; Cursor = Cursors.WaitCursor; lvLogs.Items.Clear(); entTempList.Clear(); axCZKEM1.EnableDevice(iMachineNumber, false); //disable the device if (axCZKEM1.ReadGeneralLogData(iMachineNumber)) //read all the attendance records to the memory { if (bIsNewDevice) { string sdwEnrollNumber = string.Empty; int idwSecond = 0; int idwWorkcode = 0; while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, out sdwEnrollNumber, out idwVerifyMode, out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode))//get records from the memory { DateTime dtCurrent = new DateTime(); DateTime.TryParse(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString(), out dtCurrent); if (dtCurrent < dtFrom) { continue; } if (dtCurrent >= dtTo) { continue; } //根据员工指纹编号,取指定员工的打卡记录 if (!string.IsNullOrEmpty(txtFingerPrintID.Text)) { if (!txtFingerPrintID.Text.Contains(sdwEnrollNumber)) { continue; } } iGLCount++; lvLogs.Items.Add(iGLCount.ToString()); lvLogs.Items[iIndex].SubItems.Add(sdwEnrollNumber); switch (idwVerifyMode) { case 0: lvLogs.Items[iIndex].SubItems.Add("密码验证"); break; case 1: lvLogs.Items[iIndex].SubItems.Add("指纹验证"); break; case 2: lvLogs.Items[iIndex].SubItems.Add("刷卡验证"); break; default: lvLogs.Items[iIndex].SubItems.Add("-"); break; } lvLogs.Items[iIndex].SubItems.Add(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString() + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":" + idwSecond.ToString()); iIndex++; T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = sdwEnrollNumber.ToString(); entTemp.CLOCKID = idwTMachineNumber.ToString(); entTemp.PUNCHDATE = DateTime.Parse(dtCurrent.ToString("yyyy-MM-dd") + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":00"); entTemp.PUNCHTIME = idwHour.ToString() + ":" + idwMinute.ToString(); entTempList.Add(entTemp); } } else { while (axCZKEM1.GetGeneralLogData(iMachineNumber, ref idwTMachineNumber, ref idwEnrollNumber, ref idwEMachineNumber, ref idwVerifyMode, ref idwInOutMode, ref idwYear, ref idwMonth, ref idwDay, ref idwHour, ref idwMinute))//get records from the memory { DateTime dtCurrent = new DateTime(); DateTime.TryParse(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString(), out dtCurrent); if (dtCurrent < dtFrom) { continue; } if (dtCurrent >= dtTo) { continue; } //根据员工指纹编号,取指定员工的打卡记录 if (!string.IsNullOrEmpty(txtFingerPrintID.Text)) { if (!txtFingerPrintID.Text.Contains(idwEnrollNumber.ToString())) { continue; } } iGLCount++; lvLogs.Items.Add(iGLCount.ToString()); lvLogs.Items[iIndex].SubItems.Add(idwEnrollNumber.ToString()); switch (idwVerifyMode) { case 0: lvLogs.Items[iIndex].SubItems.Add("密码验证"); break; case 1: lvLogs.Items[iIndex].SubItems.Add("指纹验证"); break; case 2: lvLogs.Items[iIndex].SubItems.Add("刷卡验证"); break; default: lvLogs.Items[iIndex].SubItems.Add("-"); break; } lvLogs.Items[iIndex].SubItems.Add(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString() + " " + idwHour.ToString() + ":" + idwMinute.ToString()); iIndex++; T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = idwEnrollNumber.ToString(); entTemp.CLOCKID = idwTMachineNumber.ToString(); entTemp.PUNCHDATE = DateTime.Parse(dtCurrent.ToString("yyyy-MM-dd") + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":00"); entTemp.PUNCHTIME = idwHour.ToString() + ":" + idwMinute.ToString(); entTempList.Add(entTemp); } } } else { Cursor = Cursors.Default; axCZKEM1.GetLastError(ref idwErrorCode); if (idwErrorCode != 0) { MessageBox.Show("下载打卡记录失败,错误代码: " + idwErrorCode.ToString(), "Error"); } else { MessageBox.Show("指定时间段内无打卡记录!", "Error"); } } axCZKEM1.EnableDevice(iMachineNumber, true);//enable the device Cursor = Cursors.Default; }
/// <summary> /// 下载打卡记录 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGetGeneralLogData_Click(object sender, EventArgs e) { DateTime dtFrom = new DateTime(); DateTime dtTo = new DateTime(); DateTime.TryParse(dpDateFrom.Value.ToString("yyyy-MM-dd"), out dtFrom); DateTime.TryParse(dpDateTo.Value.AddDays(1).ToString("yyyy-MM-dd"), out dtTo); if (bIsConnected == false) { MessageBox.Show("请先连接考勤机以便下载打卡记录。", "Error"); return; } int idwTMachineNumber = 0; int idwEnrollNumber = 0; int idwEMachineNumber = 0; int idwVerifyMode = 0; int idwInOutMode = 0; int idwYear = 0; int idwMonth = 0; int idwDay = 0; int idwHour = 0; int idwMinute = 0; int idwErrorCode = 0; int iGLCount = 0; int iIndex = 0; Cursor = Cursors.WaitCursor; lvLogs.Items.Clear(); entTempList.Clear(); axCZKEM1.EnableDevice(iMachineNumber, false);//disable the device if (axCZKEM1.ReadGeneralLogData(iMachineNumber))//read all the attendance records to the memory { if (bIsNewDevice) { string sdwEnrollNumber = string.Empty; int idwSecond = 0; int idwWorkcode = 0; while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, out sdwEnrollNumber, out idwVerifyMode, out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode))//get records from the memory { DateTime dtCurrent = new DateTime(); DateTime.TryParse(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString(), out dtCurrent); if (dtCurrent < dtFrom) { continue; } if (dtCurrent >= dtTo) { continue; } //根据员工指纹编号,取指定员工的打卡记录 if (!string.IsNullOrEmpty(txtFingerPrintID.Text)) { if (!txtFingerPrintID.Text.Contains(sdwEnrollNumber)) { continue; } } iGLCount++; lvLogs.Items.Add(iGLCount.ToString()); lvLogs.Items[iIndex].SubItems.Add(sdwEnrollNumber); switch (idwVerifyMode) { case 0: lvLogs.Items[iIndex].SubItems.Add("密码验证"); break; case 1: lvLogs.Items[iIndex].SubItems.Add("指纹验证"); break; case 2: lvLogs.Items[iIndex].SubItems.Add("刷卡验证"); break; default: lvLogs.Items[iIndex].SubItems.Add("-"); break; } lvLogs.Items[iIndex].SubItems.Add(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString() + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":" + idwSecond.ToString()); iIndex++; T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = sdwEnrollNumber.ToString(); entTemp.CLOCKID = idwTMachineNumber.ToString(); entTemp.PUNCHDATE = DateTime.Parse(dtCurrent.ToString("yyyy-MM-dd") + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":00"); entTemp.PUNCHTIME = idwHour.ToString() + ":" + idwMinute.ToString(); entTempList.Add(entTemp); } } else { while (axCZKEM1.GetGeneralLogData(iMachineNumber, ref idwTMachineNumber, ref idwEnrollNumber, ref idwEMachineNumber, ref idwVerifyMode, ref idwInOutMode, ref idwYear, ref idwMonth, ref idwDay, ref idwHour, ref idwMinute))//get records from the memory { DateTime dtCurrent = new DateTime(); DateTime.TryParse(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString(), out dtCurrent); if (dtCurrent < dtFrom) { continue; } if (dtCurrent >= dtTo) { continue; } //根据员工指纹编号,取指定员工的打卡记录 if (!string.IsNullOrEmpty(txtFingerPrintID.Text)) { if (!txtFingerPrintID.Text.Contains(idwEnrollNumber.ToString())) { continue; } } iGLCount++; lvLogs.Items.Add(iGLCount.ToString()); lvLogs.Items[iIndex].SubItems.Add(idwEnrollNumber.ToString()); switch (idwVerifyMode) { case 0: lvLogs.Items[iIndex].SubItems.Add("密码验证"); break; case 1: lvLogs.Items[iIndex].SubItems.Add("指纹验证"); break; case 2: lvLogs.Items[iIndex].SubItems.Add("刷卡验证"); break; default: lvLogs.Items[iIndex].SubItems.Add("-"); break; } lvLogs.Items[iIndex].SubItems.Add(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString() + " " + idwHour.ToString() + ":" + idwMinute.ToString()); iIndex++; T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = idwEnrollNumber.ToString(); entTemp.CLOCKID = idwTMachineNumber.ToString(); entTemp.PUNCHDATE = DateTime.Parse(dtCurrent.ToString("yyyy-MM-dd") + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":00"); entTemp.PUNCHTIME = idwHour.ToString() + ":" + idwMinute.ToString(); entTempList.Add(entTemp); } } } else { Cursor = Cursors.Default; axCZKEM1.GetLastError(ref idwErrorCode); if (idwErrorCode != 0) { MessageBox.Show("下载打卡记录失败,错误代码: " + idwErrorCode.ToString(), "Error"); } else { MessageBox.Show("指定时间段内无打卡记录!", "Error"); } } axCZKEM1.EnableDevice(iMachineNumber, true);//enable the device Cursor = Cursors.Default; }
private void btnGetAttPrintRecord_Click(object sender, EventArgs e) { #region 打卡记录 //打卡记录时间格式带小时分钟,需特殊处理 string sql = @"select * from smthrm.t_hr_employeeclockinrecord c where c.employeeid='" + txtEmployeeId.Text + @"' and c.punchdate>=to_date('" + GlobalParameters.StartDate + @"','yyyy-mm-dd') and c.punchdate<=to_date('" + GlobalParameters.EndDate + @"','yyyy-mm-dd') order by c.punchdate"; DataTable dt = OracleHelp.getTable(sql); if (dt != null) { this.dtAttRecord.DataSource = dt; foreach (DataRow dr in dt.Rows) { T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = dr["CLOCKINRECORDID"].ToString(); entTemp.FINGERPRINTID = dr["FINGERPRINTID"].ToString(); entTemp.CLOCKID = dr["CLOCKID"].ToString(); entTemp.PUNCHDATE =DateTime.Parse(dr["PUNCHDATE"].ToString()); entTemp.PUNCHTIME = dr["PUNCHTIME"].ToString(); entTempListAgain.Add(entTemp); } OracleHelp.close(); //txtMessagebox.Text = "查询员工打卡记录完成,共:" + dt.Rows.Count.ToString() + "条数据" + System.Environment.NewLine + txtMessagebox.Text; } else { //txtMessagebox.Text = "查询员工打卡记录完成,共:0条数据" + System.Environment.NewLine + txtMessagebox.Text; } #endregion }
public void ImportRdHuNanHangXing() { DateTime dtCur = DateTime.Now; if (dtCur.Hour != Convert.ToInt32(ConfigurationManager.AppSettings["ElapsedHour"])) { Tracer.Debug(DateTime.Now.ToString() + ",导入打卡记录未在指定时间内"); return; } Tracer.Debug(DateTime.Now.ToString() + ",开始导入打卡记录,设置的导入时间点为每天:" + strElapsedHour + " 点,导入的端口为:" + iPort); if (clientAtt == null) clientAtt = new AttendanceServiceClient(); List<T_HR_EMPLOYEECLOCKINRECORD> entTempList = new List<T_HR_EMPLOYEECLOCKINRECORD>(); DateTime dtFrom = new DateTime(); DateTime dtTo = new DateTime(); DateTime.TryParse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"), out dtFrom); dtTo = dtFrom.AddDays(1).AddSeconds(-1); entTempList.Clear(); using (hrEntities db = new hrEntities()) { var data = from ent in db.kqjl where ent.checktime >= dtFrom && ent.checktime<dtTo select ent; foreach (var item in data) { T_HR_EMPLOYEECLOCKINRECORD entTemp = new T_HR_EMPLOYEECLOCKINRECORD(); entTemp.CLOCKINRECORDID = System.Guid.NewGuid().ToString().ToUpper(); entTemp.FINGERPRINTID = item.badgenumber; entTemp.CLOCKID = item.machine_sn.ToString(); entTemp.PUNCHDATE = item.checktime; entTemp.PUNCHTIME = item.checktime.Value.Hour.ToString() + ":" + item.checktime.Value.Minute.ToString(); entTempList.Add(entTemp); } } try { Tracer.Debug("航信获取打卡记录成功,下载记录数:" + entTempList.Count()); string strMsg = string.Empty; string[] companyIds = ConfigurationManager.AppSettings["HangXingcompanyID"].Split(','); foreach (var strCompanyId in companyIds) { if (TestMode == "true") { foreach (var ent in entTempList) { Tracer.Debug("员工指纹编码:" + ent.FINGERPRINTID + " 打卡时间:" + ent.PUNCHDATE + ":" + ent.PUNCHTIME); } } else { string strCurIP = "数据库读取"; clientAtt.ImportClockInRdListByWSRealTime(strCompanyId, entTempList.ToArray(), dtFrom, dtTo, strCurIP, ref strMsg); } Tracer.Debug("导入打卡记录成功,导入的公司ID为:" + strCompanyId); } } catch (Exception ex) { Tracer.Debug("航信导入打卡记录失败,失败原因为:" + ex.ToString()); } }