예제 #1
0
 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;
 }
예제 #2
0
 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;
 }
예제 #3
0
        /// <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);
        }