private static List <Employee> CleanAttendanceInAndOutList(IList <AttendanceInAndOutRecord> attendances) { List <Employee> employeeList = new List <Employee>(); for (int i = 0; i < attendances.Count; i++) { List <AttendanceInAndOutRecord> records = new List <AttendanceInAndOutRecord>(); records.Add(attendances[i]); string employeename = attendances[i].EmployeeName; DateTime time = attendances[i].IOTime; for (int j = i + 1; j < attendances.Count; j++) { if (attendances[j].EmployeeName == employeename && attendances[j].IOTime.Date == time.Date) { records.Add(attendances[j]); attendances.RemoveAt(j); j--; } } Employee emp = new Employee(); emp.Account = new Account(0, "", employeename); emp.EmployeeAttendance = new EmployeeAttendance(); DateTime intime = AttendanceInAndOutRecord.FindEarlistTime(records); DateTime outtime = AttendanceInAndOutRecord.FindLatestTime(records); emp.EmployeeAttendance.AttendanceInAndOutStatistics = new AttendanceInAndOutStatistics(intime, outtime, ""); employeeList.Add(emp); } return(employeeList); }
public static List <CalendarADay> Turn(List <AttendanceInAndOutRecord> originalDataList, List <CalendarADay> retList , List <PlanDutyDetail> planDutyDetailList , DateTime from, DateTime to) { for (int i = 0; from.AddDays(i).Date <= to.Date; i++) { PlanDutyDetail planDutyDetail = PlanDutyDetail.GetPlanDutyDetailByDate(planDutyDetailList, from.AddDays(i).Date); if (planDutyDetail == null || planDutyDetail.PlanDutyClass.IsWeek) { continue; } CalendarADay calendarADay = CalendarADay.CreateOrGetCalendarADayByDate(retList, from.AddDays(i).Date); List <AttendanceInAndOutRecord> dtOriginalDataList = AttendanceInAndOutRecord.GetAttendanceInAndOutRecordByDate(originalDataList, from.AddDays(i).Date); if (dtOriginalDataList.Count == 0) { MonthItem monthNoRecord = new MonthItem(); monthNoRecord.CType = CalendarShowType.Attendance; monthNoRecord.Title = "无打卡记录"; monthNoRecord.Date = from.AddDays(i).Date; monthNoRecord.Detail = "无打卡记录"; calendarADay.MonthItems.Add(monthNoRecord); Utility.Clean(calendarADay); continue; } DateTime dtStart = AttendanceInAndOutRecord.FindEarlistTime(dtOriginalDataList); DateTime dtEnd = AttendanceInAndOutRecord.FindLatestTime(dtOriginalDataList); if (!IsInitTime(dtStart)) { DayItem day = new DayItem(); day.CType = CalendarShowType.Attendance; day.Start = day.End = dtStart; day.DayDetail = "打卡 " + dtStart.ToShortTimeString(); calendarADay.DayItems.Add(day); } if (!IsInitTime(dtEnd)) { DayItem day = new DayItem(); day.CType = CalendarShowType.Attendance; day.Start = day.End = dtEnd; day.DayDetail = "打卡 " + dtEnd.ToShortTimeString(); calendarADay.DayItems.Add(day); } MonthItem month = new MonthItem(); month.CType = CalendarShowType.Attendance; month.Title = "打卡 " + (!IsInitTime(dtStart) ? dtStart.ToShortTimeString() : "") + "--" + (!IsInitTime(dtEnd) ? dtEnd.ToShortTimeString() : ""); month.Date = from.AddDays(i).Date; month.Detail = "最早打卡时间:" + (!IsInitTime(dtStart) ? dtStart.ToString() : "--") + "<br>" + "最晚打卡时间:" + (!IsInitTime(dtEnd) ? dtEnd.ToString() : "--"); calendarADay.MonthItems.Add(month); Utility.Clean(calendarADay); } return(retList); }
/// <summary> /// 从Accesss中读取时间,有读取时间段2009-09-28,add by liudan /// </summary> private void ReadRecordsWithReadTime(DateTime readFromTime, DateTime readToTime) { //取员工的原始考勤数据 for (int i = 0; i < EmployeeList.Count; i++) { EmployeeList[i] = _DalEmployee.GetEmployeeByAccountID(EmployeeList[i].Account.Id); EmployeeList[i].EmployeeAttendance = new EmployeeAttendance(_SearchFrom, _SearchTo); EmployeeList[i].EmployeeAttendance.DoorCardNo = _DalEmployee.GetEmployeeBasicInfoByAccountID(EmployeeList[i].Account.Id).EmployeeAttendance. DoorCardNo; EmployeeList[i].EmployeeAttendance.PlanDutyDetailList = new PlanDutyDal().GetPlanDutyDetailByAccount(EmployeeList[i].Account.Id, _SearchFrom, _SearchTo); EmployeeList[i].EmployeeAttendance.AttendanceInAndOutRecordList = new List <AttendanceInAndOutRecord>(); } //从ACCESS读数据 ReadAccessData _ReadIODataFromAccess = new ReadAccessData(); List <DataFromAccess> returnList = _ReadIODataFromAccess.ReadRecords(readFromTime, readToTime); for (int k = 0; k < returnList.Count; k++) { for (int i = 0; i < EmployeeList.Count; i++) { //如果考勤卡号相对应,则增条考勤数据 string cardNo = returnList[k].CardNo; if (!string.IsNullOrEmpty(EmployeeList[i].EmployeeAttendance.DoorCardNo) && EmployeeList[i].EmployeeAttendance.DoorCardNo == cardNo) { //判断读取中是否有重复记录 add by liudan 2009-09-19 List <AttendanceInAndOutRecord> sqlRecords = _DalRecord.GetAttendanceInAndOutRecordByCondition(EmployeeList[i].Account.Id, cardNo, readFromTime, readToTime, InOutStatusEnum.All, OutInRecordOperateStatusEnum.All, Convert.ToDateTime("1900-12-31"), Convert.ToDateTime("2999-12-31")); bool isFind = false; foreach (AttendanceInAndOutRecord records in sqlRecords) { if (returnList[k].InOrOut.Equals(records.IOStatus) && returnList[k].IOTime.Equals(records.IOTime)) { isFind = true; } } if (!isFind) { AttendanceInAndOutRecord attendanceInAndOutRecord = new AttendanceInAndOutRecord(); attendanceInAndOutRecord.DoorCardNo = returnList[k].CardNo; attendanceInAndOutRecord.IOStatus = returnList[k].InOrOut; attendanceInAndOutRecord.IOTime = returnList[k].IOTime; attendanceInAndOutRecord.OperateStatus = OutInRecordOperateStatusEnum.ReadFromDataBase; attendanceInAndOutRecord.OperateTime = DateTime.Now; EmployeeList[i].EmployeeAttendance.AttendanceInAndOutRecordList.Add(attendanceInAndOutRecord); } } } } }
protected override void Validation() { AttendanceInAndOutRecord temp = _Employee.EmployeeAttendance.FindInAndOutRecordByRecordId(_RecordId); if (temp == null) { BllUtility.ThrowException(BllExceptionConst._AttendanceInAndOut_Not_Exist); } }
/// <summary> /// 查找这次读取的考勤记录,范围为一天 /// </summary> private bool FindNewAttendanceInAndOutRecord(AttendanceInAndOutRecord attendanceInAndOutRecord) { if ((DateTime.Compare(attendanceInAndOutRecord.IOTime, new DateTime(_TheDate.Year, _TheDate.Month, _TheDate.Day, 0, 0, 0))) >= 0 && (DateTime.Compare(attendanceInAndOutRecord.IOTime, new DateTime(_TheDate.Year, _TheDate.Month, _TheDate.Day, 23, 59, 59))) <= 0) { return(true); } return(false); }
/// <summary> /// /// </summary> public InsertAttendanceInOutRecord(int employeeId, AttendanceInAndOutRecord record, AttendanceInAndOutRecordLog attendanceInAndOutRecordLog, Account loginUser) { _LoginUser = loginUser; //updateEmployeeAttendance = new UpdateEmployeeAttendance(_LoginUser); _AttendanceInAndOutRecordLog = attendanceInAndOutRecordLog; _InsertLog = new InsertInAndOutRecordLog(_AttendanceInAndOutRecordLog, _LoginUser); _EmployeeId = employeeId; _Record = record; _TheDate = record.IOTime; GetInAndOutRecords(); }
/// <summary> /// /// </summary> public UpdateAttendanceInOutRecord(int employeeId, AttendanceInAndOutRecord record, DateTime oldDate, AttendanceInAndOutRecordLog log, Account loginUser) { _LoginUser = loginUser; //updateEmployeeAttendance = new UpdateEmployeeAttendance(loginUser); _OldDate = oldDate; _AttendanceInAndOutRecordLog = log; _InsertLog = new InsertInAndOutRecordLog(_AttendanceInAndOutRecordLog, loginUser); _EmployeeId = employeeId; _Record = record; _TheDate = _Record.IOTime; GetInAndOutRecords(); }
/// <summary> /// 测试用 /// </summary> public UpdateAttendanceInOutRecord(int employeeId, AttendanceInAndOutRecord record, DateTime oldDate, IAttendanceInAndOutRecord mock, Transaction logmock, //UpdateEmployeeAttendance mockUpdateEmployeeAttendance, Account loginUser) { _LoginUser = loginUser; //updateEmployeeAttendance = mockUpdateEmployeeAttendance; _OldDate = oldDate; _EmployeeId = employeeId; _Record = record; _TheDate = _Record.IOTime; _IRecord = mock; _InsertLog = logmock; GetInAndOutRecordsForTest(); }
public void SendEmailForEmployees() { try { string[] temp = _IShowCalendarDetail.EmployeeInfo.Split(';'); string employeeName = temp[1]; string status = ""; if (temp.Length > 2) { status = temp[3]; } int.TryParse(temp[0], out _EmployeeID); List <string> cc = new List <string>(); IBll.Accounts.IAccountBll _IGetEmployee = BllInstance.AccountBllInstance; Account account = _IGetEmployee.GetAccountById(_EmployeeID); if (account == null) { return; } List <string> to = new List <string>(); to.Add(account.Email1); if (!string.IsNullOrEmpty(account.Email2)) { to.Add(account.Email2); } if (!DateTime.TryParse(_IShowCalendarDetail.Date, out _Date)) { _IShowCalendarDetail.ResultMessage = "请选择一个日期!"; return; } List <AttendanceInAndOutRecord> _AttendanceInAndOutRecordList = _IAttendanceInOutRecordFacade.GetSelfAttendanceInAndOutRecordByCondition(_EmployeeID, _Date, _Date.AddDays(1).AddMinutes(-1)); DateTime e = AttendanceInAndOutRecord.FindEarlistTime(_AttendanceInAndOutRecordList); DateTime l = AttendanceInAndOutRecord.FindLatestTime(_AttendanceInAndOutRecordList); string inTime = e == Convert.ToDateTime("2999-12-31") ? "无" : e.ToString(); string outTime = l == Convert.ToDateTime("1900-1-1") ? "无" : l.ToString(); IAttendanceReadDataFacade _IAttendanceReadDataFacade = new AttendanceReadDataFacade(); _IAttendanceReadDataFacade.AttendanceSendEmailToEmployee(employeeName, inTime, outTime, status, new DateTime(_Date.Year, _Date.Month, _Date.Day, 0, 0, 0).ToString(), new DateTime(_Date.Year, _Date.Month, _Date.Day, 23, 59, 59).ToString(), to, cc, _LoginUser); _IShowCalendarDetail.ResultMessage = "邮件已发送"; } catch (Exception ex) { _IShowCalendarDetail.ResultMessage = ex.Message; } }
/// <summary> /// 收集日志数据 /// </summary> /// <param name="record"></param> /// <returns></returns> private AttendanceInAndOutRecordLog CompleteLogData(AttendanceInAndOutRecord record) { AttendanceInAndOutRecordLog log = new AttendanceInAndOutRecordLog(); log.EmployeeID = Convert.ToInt32(_View.EmployeeId); log.EmployeeName = _View.EmployeeName; log.OldIOStatus = InOutStatusEnum.All; log.OldIOTime = Convert.ToDateTime("2000-12-31 0:00:00"); log.NewIOStatus = record.IOStatus; log.NewIOTime = record.IOTime; log.OperateReason = _View.Reason; log.OperateTime = record.OperateTime; log.OperateStatus = record.OperateStatus; log.Operator = LoginUser.Name; return(log); }
/// <summary> /// 收集日志数据 /// </summary> /// <returns></returns> private AttendanceInAndOutRecordLog CompleteLogData() { AttendanceInAndOutRecordLog log = new AttendanceInAndOutRecordLog(); log.EmployeeID = Convert.ToInt32(_View.EmployeeId); log.EmployeeName = _View.EmployeeName; log.OldIOStatus = AttendanceInAndOutRecord.GetInOutStatusByInOutName(_View.IOStatusId); log.OldIOTime = Convert.ToDateTime(_View.IOTime); log.OperateReason = _View.Reason; log.OperateTime = DateTime.Now; log.OperateStatus = OutInRecordOperateStatusEnum.DeleteByOperator; log.Operator = LoginUser.Name; log.NewIOStatus = InOutStatusEnum.All; log.NewIOTime = Convert.ToDateTime("2999-12-31"); return(log); }
public void DataBind() { _View.ErrorMessage = string.Empty; if (ValidateEmployeeId() && ValidateTimeFrom() && ValidateTimeTo() && ValidateOperateTimeFrom() && ValidateOperateTimeTo()) { _View.InAndOutRecords = InstanceFactory.AttendanceInOutRecordFacade().GetEmployeeInAndOutRecordByCondition( Convert.ToInt32(_View.EmployeeId), _View.EmployeeName, -1, string.Empty, _SearchFrom, _SearchTo, AttendanceInAndOutRecord.GetInOutStatusByInOutName( _View.IOStatusId), AttendanceInAndOutRecord.GetOutInRecordOperateStatus (_View.OperateStatusId), _OperatTimeFrom, _OperatTimeTo, _LoginUser); } }
/// <summary> /// 测试用 /// </summary> public InsertAttendanceInOutRecord(int employeeId, AttendanceInAndOutRecord record, AttendanceInAndOutRecordLog attendanceInAndOutRecordLog, IAttendanceInAndOutRecord mock, Transaction mockLog, //UpdateEmployeeAttendance mockUpdateEmployeeAttendance, Employee employee, Account loginUser) { _LoginUser = loginUser; //updateEmployeeAttendance = mockUpdateEmployeeAttendance; _AttendanceInAndOutRecordLog = attendanceInAndOutRecordLog; _InsertLog = mockLog; _EmployeeId = employeeId; _Record = record; _IRecord = mock; _TheDate = record.IOTime; //_DalEmployee = mockEmployee; //GetInAndOutRecords(); _Employee = employee; }
private static List <UnKownTimeSpan> CaculateAbsentTimes(DateTime theday, PlanDutyDetail thedayPlanDutyDetail, List <OutApplication> outApplicationList, List <LeaveRequest> leaveRequestList, List <AttendanceInAndOutRecord> attendanceInAndOutRecordList) { List <UnKownTimeSpan> uktsList = new List <UnKownTimeSpan>(); uktsList.Add( new UnKownTimeSpan( new DateTime(theday.Year, theday.Month, theday.Day, thedayPlanDutyDetail.PlanDutyClass.FirstStartFromTime.Hour, thedayPlanDutyDetail.PlanDutyClass.FirstStartFromTime.Minute, thedayPlanDutyDetail.PlanDutyClass.FirstStartFromTime.Second), new DateTime(theday.Year, theday.Month, theday.Day, thedayPlanDutyDetail.PlanDutyClass.FirstEndTime.Hour, thedayPlanDutyDetail.PlanDutyClass.FirstEndTime.Minute, thedayPlanDutyDetail.PlanDutyClass.FirstEndTime.Second))); uktsList.Add( new UnKownTimeSpan( new DateTime(theday.Year, theday.Month, theday.Day, thedayPlanDutyDetail.PlanDutyClass.SecondStartTime.Hour, thedayPlanDutyDetail.PlanDutyClass.SecondStartTime.Minute, thedayPlanDutyDetail.PlanDutyClass.SecondStartTime.Second), new DateTime(theday.Year, theday.Month, theday.Day, thedayPlanDutyDetail.PlanDutyClass.SecondEndTime.Hour, thedayPlanDutyDetail.PlanDutyClass.SecondEndTime.Minute, thedayPlanDutyDetail.PlanDutyClass.SecondEndTime.Second))); foreach (LeaveRequest leaveRequest in leaveRequestList) { foreach (LeaveRequestItem leaveRequestItem in leaveRequest.LeaveRequestItems) { UpdateAbsentTimesForKownTimeSpan(uktsList, leaveRequestItem.FromDate, leaveRequestItem.ToDate); } } foreach (OutApplication outApplication in outApplicationList) { foreach (OutApplicationItem outApplicationItem in outApplication.Item) { UpdateAbsentTimesForKownTimeSpan(uktsList, outApplicationItem.FromDate, outApplicationItem.ToDate); } } UpdateAbsentTimesForKownTimeSpan(uktsList, AttendanceInAndOutRecord.FindEarlistTime(attendanceInAndOutRecordList), AttendanceInAndOutRecord.FindLatestTime(attendanceInAndOutRecordList)); return(uktsList); }
public void UpdateEvent() { if (!_Utility.Validate()) { return; } Employee employee = InstanceFactory.AttendanceInOutRecordFacade().GetEmployeeInAndOutRecordByEmployeeId(Convert.ToInt32(_View.EmployeeId), LoginUser); AttendanceInAndOutRecord oldRecord = employee.EmployeeAttendance.FindInAndOutRecordByRecordId(Convert.ToInt32(_View.RecordId)); #region 收集log 中考勤的旧数据 AttendanceInAndOutRecordLog log = new AttendanceInAndOutRecordLog(); log.EmployeeID = Convert.ToInt32(_View.EmployeeId); log.EmployeeName = _View.EmployeeName; log.OldIOStatus = oldRecord.IOStatus; log.OldIOTime = oldRecord.IOTime; DateTime oldDate = oldRecord.IOTime; log.OperateReason = _View.Reason; log.Operator = LoginUser.Name; #endregion //转为新数据 _Utility.CompleteTheObject(oldRecord); oldRecord.OperateStatus = OutInRecordOperateStatusEnum.ModifyByOperator; //插入日志 ,收集考勤中新数据 log.NewIOStatus = oldRecord.IOStatus; log.NewIOTime = oldRecord.IOTime; log.OperateStatus = oldRecord.OperateStatus; log.OperateTime = oldRecord.OperateTime; try { InstanceFactory.AttendanceInOutRecordFacade().UpdateAttendanceInOutRecord( Convert.ToInt32(_View.EmployeeId), oldRecord, oldDate, log, LoginUser); _View.ActionSuccess = true; } catch (ApplicationException ae) { _View.Message = ae.Message; } }
public void AddEvent() { if (!_Utility.Validate()) { return; } AttendanceInAndOutRecord record = new AttendanceInAndOutRecord(); _Utility.CompleteTheObject(record); record.OperateStatus = OutInRecordOperateStatusEnum.AddByOperator; try { InstanceFactory.AttendanceInOutRecordFacade().InsertAttendanceInOutRecord( Convert.ToInt32(_View.EmployeeId), record, CompleteLogData(record), LoginUser); _View.ActionSuccess = true; } catch (ApplicationException ae) { _View.Message = ae.Message; } }
public List <AttendanceInAndOutRecord> GetAttendanceInAndOutRecordByCondition(int employeeID, string doorCardNo, DateTime iOTimeFrom, DateTime iOTimeTo, InOutStatusEnum iOStatus, OutInRecordOperateStatusEnum operateStatus, DateTime operateTimeFrom, DateTime operateTimeTo) { List <AttendanceInAndOutRecord> records = new List <AttendanceInAndOutRecord>(); SqlCommand sqlCommmand = new SqlCommand(); sqlCommmand.Parameters.Add(_EmployeeId, SqlDbType.Int).Value = employeeID; sqlCommmand.Parameters.Add(_IOTimeStart, SqlDbType.DateTime).Value = iOTimeFrom; sqlCommmand.Parameters.Add(_IOTimeEnd, SqlDbType.DateTime).Value = iOTimeTo; sqlCommmand.Parameters.Add(_IOStatus, SqlDbType.Int).Value = iOStatus; sqlCommmand.Parameters.Add(_OperateStatus, SqlDbType.Int).Value = operateStatus; sqlCommmand.Parameters.Add(_OperateTimeStart, SqlDbType.DateTime).Value = operateTimeFrom; sqlCommmand.Parameters.Add(_OperateTimeEnd, SqlDbType.DateTime).Value = operateTimeTo; sqlCommmand.Parameters.Add(_DoorCardNo, SqlDbType.NVarChar, 50).Value = doorCardNo; using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetEmployeeInAndOutByCondition", sqlCommmand)) { while (sdr.Read()) { AttendanceInAndOutRecord record = new AttendanceInAndOutRecord(); record.RecordID = (Int32)sdr[_DBRecordID]; record.EmployeeId = (Int32)sdr[_DBEmployeeId]; record.DoorCardNo = sdr[_DBDoorCardNo].ToString(); record.IOStatus = (InOutStatusEnum)sdr[_DBIOStatus]; record.IOTime = Convert.ToDateTime(sdr[_DBIOTime]); record.OperateStatus = (OutInRecordOperateStatusEnum)sdr[_DBOperateStatus]; record.OperateTime = Convert.ToDateTime(sdr[_DBOperateTime]); records.Add(record); } } return(records); }
private static int InsertAttendanceInAndOutRecord(Employee employee, AttendanceInAndOutRecord record) { int pkid; SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction = ParameterDirection.Output; cmd.Parameters.Add(_EmployeeId, SqlDbType.Int).Value = employee.Account.Id; cmd.Parameters.Add(_IOTime, SqlDbType.DateTime).Value = record.IOTime; cmd.Parameters.Add(_IOStatus, SqlDbType.Int).Value = record.IOStatus; if (string.IsNullOrEmpty(employee.EmployeeAttendance.DoorCardNo)) { cmd.Parameters.Add(_DoorCardNo, SqlDbType.NVarChar, 50).Value = record.DoorCardNo; } else { cmd.Parameters.Add(_DoorCardNo, SqlDbType.NVarChar, 50).Value = employee.EmployeeAttendance.DoorCardNo; } cmd.Parameters.Add(_OperateStatus, SqlDbType.Int).Value = record.OperateStatus; cmd.Parameters.Add(_OperateTime, SqlDbType.DateTime).Value = record.OperateTime; SqlHelper.ExecuteNonQueryReturnPKID("InsertEmployeeInAndOutRecord", cmd, out pkid); return(pkid); }
public void UpdateAttendanceInOutRecord(int employeeId, AttendanceInAndOutRecord record, DateTime oldDate, AttendanceInAndOutRecordLog log, Account loginUser) { new UpdateAttendanceInOutRecord(employeeId, record, oldDate, log, loginUser).Excute(); }
public void DataBind() { if (ValidateTimeFrom() && ValidateTimeTo() && ValidateOperateTimeFrom() && ValidateOperateTimeTo()) { _View.InAndOutRecords = InstanceFactory.AttendanceInOutRecordFacade().GetEmployeeInAndOutRecordByCondition(-1, _View.EmployeeName, _View.Department, string.Empty, _SearchFrom, _SearchTo, AttendanceInAndOutRecord . GetInOutStatusByInOutName ( _View. IOStatusId), AttendanceInAndOutRecord . GetOutInRecordOperateStatus (_View. OperateStatusId), _OperatTimeFrom, _OperatTimeTo, _LoginUser); } }
private int ImportDate(DataTable dt) { List <Employee> employeeList = new List <Employee>(); DateTime dt_Now = DateTime.Now; //Employee employee for (int i = 0; i < dt.Rows.Count; i++) { _Name = GetItem(dt, i, _NameColumn); if (string.IsNullOrEmpty(_Name)) { continue; } Employee employee = employeeList.Find(FindEmployee); if (employee == null) { Account account = _IAccountBll.GetAccountByName(_Name); //如果系统里没有该员工或者该员工在系统中没有门禁卡卡号 if (account == null) { continue; } employee = getEmployee.GetEmployeeAttendenceInfoByAccountID(account.Id); if (employee == null) { continue; } if (string.IsNullOrEmpty(employee.EmployeeAttendance.DoorCardNo)) { continue; } employee.EmployeeAttendance.AttendanceInAndOutRecordList = new List <AttendanceInAndOutRecord>(); employeeList.Add(employee); } AttendanceInAndOutRecord attendanceInAndOutRecord = new AttendanceInAndOutRecord(); attendanceInAndOutRecord.IOStatus = GetInOutStatusByInOutName(GetItem(dt, i, _InOutColumn)); try { var date = Convert.ToDateTime(GetItem(dt, i, _DateColumn)); DateTime time; if (DateTime.TryParse(GetItem(dt, i, _TimeColumn), out time)) { attendanceInAndOutRecord.IOTime = new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second); } else { attendanceInAndOutRecord.IOTime = Convert.ToDateTime(date.ToString("yyyy-MM-dd") + " " + GetItem(dt, i, _TimeColumn)); } } catch { continue; } attendanceInAndOutRecord.OperateStatus = OutInRecordOperateStatusEnum.ImportByOperator; attendanceInAndOutRecord.OperateTime = dt_Now; //判断读取中是否有重复记录 add by liudan 2009-09-19 List <AttendanceInAndOutRecord> sqlRecords = attendanceInAndOutRecordDal.GetAttendanceInAndOutRecordByCondition(employee.Account.Id, employee.EmployeeAttendance. DoorCardNo, Convert.ToDateTime("1900-12-31"), Convert.ToDateTime("2999-12-31"), InOutStatusEnum.All, OutInRecordOperateStatusEnum.All, Convert.ToDateTime("1900-12-31"), Convert.ToDateTime("2999-12-31")); bool isFind = false; foreach (AttendanceInAndOutRecord records in sqlRecords) { if (attendanceInAndOutRecord.IOStatus.Equals(records.IOStatus) && attendanceInAndOutRecord.IOTime.Equals(records.IOTime)) { isFind = true; } } if (!isFind) { employee.EmployeeAttendance.AttendanceInAndOutRecordList.Add(attendanceInAndOutRecord); count = count + 1; } } attendanceInAndOutRecordDal.InsertAttendanceInAndOutRecordList(employeeList); return(employeeList.Count); }
public void InsertAttendanceInOutRecord(int employeeId, AttendanceInAndOutRecord record, AttendanceInAndOutRecordLog attendanceInAndOutRecordLog, Account loginUser) { new InsertAttendanceInOutRecord(employeeId, record, attendanceInAndOutRecordLog, loginUser).Excute(); }