public AdminController(IAdministratorContract administratorContract, IAttendanceContract attendanceContract, IMemberContract memberContract, IDepartmentContract departmentContract, IHolidayContract holidayContract, IAttendanceStatisticsContract attStatisticsContract, IResignationContract resignationContract, IStoreStatisticsContract statContract, IWorkTimeDetaileContract workTimeDetaileContract, IMemberDepositContract memberDepositContract, IMemberConsumeContract memberConsumContract, IMsgNotificationContract msgNotificationContract, IMessagerContract messagerContract, IWorkOrderDealtWithContract workOrderDealtWithContract, IExamRecordContract examRecordContract) { _administratorContract = administratorContract; _attendanceContract = attendanceContract; _memberContract = memberContract; _departmentContract = departmentContract; _holidayContract = holidayContract; _attStatisticsContract = attStatisticsContract; _resignationContract = resignationContract; _statContract = statContract; _workTimeDetaileContract = workTimeDetaileContract; _memberDepositContract = memberDepositContract; _memberConsumContract = memberConsumContract; _msgNotificationContract = msgNotificationContract; _messagerContract = messagerContract; _workOrderDealtWithContract = workOrderDealtWithContract; _examRecordContract = examRecordContract; }
public AttenController(IAdministratorContract administratorContract, IAttendanceContract attendanceContract, IMemberContract memberContract, IDepartmentContract departmentContract, IHolidayContract holidayContract, IAttendanceStatisticsContract attStatisticsContract, IOvertimeContract overtimeContract, IFieldContract fieldContract, ILeaveInfoContract leaveInfoContract, IRestContract restContract, IAttendanceRepairContract attendanceRepairContract, IWorkTimeDetaileContract workTimeDetaileContract, IClassApplicationContract classApplicationContract, IConfigureContract configureContract) { _administratorContract = administratorContract; _attendanceContract = attendanceContract; _memberContract = memberContract; _departmentContract = departmentContract; _holidayContract = holidayContract; _attStatisticsContract = attStatisticsContract; _overtimeContract = overtimeContract; _fieldContract = fieldContract; _leaveInfoContract = leaveInfoContract; _restContract = restContract; _attendanceRepairContract = attendanceRepairContract; _workTimeDetaileContract = workTimeDetaileContract; _classApplicationContract = classApplicationContract; _configureContract = configureContract; }
/// <summary> /// 统计考勤 /// </summary> public static void Atten() { IAdministratorContract _adminContract = EntityContract._adminContract; IAttendanceContract _attenContract = EntityContract._attenContract; IAttendanceStatisticsContract _attenStatisticsContract = EntityContract._attenStatisticsContract; DateTime current = DateTime.Now; List <Administrator> listAdmin = _adminContract.Administrators.Where(x => x.IsDeleted == false && x.IsEnabled == true).ToList(); List <Attendance> listAtten = _attenContract.Attendances.Where(x => x.IsDeleted == false && x.IsEnabled == true && x.AttendanceTime.Year == current.Year && x.AttendanceTime.Month == current.Month && x.AttendanceTime.Day == current.Day).ToList(); List <int> listAdminId = listAdmin.Select(x => x.Id).ToList(); List <AttendanceStatistics> listStatistics = _attenStatisticsContract.AttendanceStatisticses.Where(x => listAdminId.Contains(x.AdminId)).ToList(); Dictionary <string, int> dic = GetHoliday(); WorkTime workTime; List <Attendance> listEntity = new List <Attendance>(); List <AttendanceStatistics> listStatisticsAdd = new List <AttendanceStatistics>(); List <AttendanceStatistics> listStatisticsUpdate = new List <AttendanceStatistics>(); foreach (Administrator admin in listAdmin) { workTime = GetWorkTime(admin); bool res = OfficeHelper.IsWorkDay(current, workTime, dic); if (res == true) { Attendance atten = GetAtten(listAtten, current, admin.Id, workTime.IsPersonalTime); if (atten.Id == 0) { listEntity.Add(atten); } AttendanceStatistics statistics = GetAttenStatistics(listStatistics, workTime, atten, admin.Id); if (statistics.Id == 0) { listStatisticsAdd.Add(statistics); } else { listStatisticsUpdate.Add(statistics); } } else { string strDate = current.ToString("yyyy/MM/dd 00:00:00"); DateTime date = DateTime.Parse(strDate); IOvertimeContract _overTimeContract = DependencyResolver.Current.GetService <IOvertimeContract>(); int count = _overTimeContract.Overtimes.Where(x => x.AdminId == admin.Id && x.VerifyType == (int)VerifyFlag.Pass && date.CompareTo(x.StartTime) >= 0 && date.CompareTo(x.EndTime) <= 0).Count(); if (count > 0) { Attendance atten = GetAtten(listAtten, current, admin.Id, workTime.IsPersonalTime); if (atten != null) { listEntity.Add(atten); } } } } _attenContract.Add(listEntity, listStatisticsAdd, listStatisticsUpdate); }