Exemple #1
0
 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
 }
Exemple #2
0
        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());
            }


        }
Exemple #3
0
        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());
            }
        }
Exemple #4
0
        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());
            }
        }
Exemple #5
0
        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());
            }
        }
Exemple #6
0
 public string AddNewClockInRd(T_HR_EMPLOYEECLOCKINRECORD entClockInRd)
 {
     using (ClockInRecordBLL bllClockInRecord = new ClockInRecordBLL())
     {
         return bllClockInRecord.AddClockInRecord(entClockInRd);
     }
 }
Exemple #7
0
        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());
            }
        }
Exemple #8
0
        /// <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;
        }
Exemple #9
0
        /// <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;
        }
Exemple #10
0
 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
 }
Exemple #11
0
        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());
            }

        }