Esempio n. 1
0
    public async Task <IActionResult> GetEmployeesAsync([FromQuery] GetEmployeesInput input)
    {
        var request = new PaginateEmployeesRequest
        {
            PageIndex    = input.PageIndex,
            PageSize     = input.PageSize,
            DepartmentId = input.DepartmentId,
        };
        var response = await _organizationClient.PaginateEmployeesAsync(request);

        var result = new PaginationResult <EmployeeSummary>
        {
            PageIndex = response.PageIndex,
            PageSize  = response.PageSize,
            ItemCount = response.ItemCount,
            Items     = response.Items
                        .Select(x => new EmployeeSummary
            {
                Id           = x.Id,
                Name         = x.Name,
                DisplayName  = x.DisplayName,
                DepartmentId = x.DepartmentId,
                JobId        = x.JobId,
            })
                        .ToList(),
        };

        return(Ok(result));
    }
Esempio n. 2
0
        public async Task <List <EmployeeDto> > GetAllAsync(GetEmployeesInput input)
        {
            var employees = await _employeeRepository
                            .GetAll()
                            .Include("Salary.Currency")
                            .Include("Nationality")
                            .Include("PhoneNumbers.CountryCode")
                            .Skip((input.PageNumber - 1) * input.ItemsToFetch)
                            .Take(input.ItemsToFetch)
                            .ToListAsync();

            return(_objectMapper.Map <List <EmployeeDto> >(employees));
        }
Esempio n. 3
0
        /// <summary>
        /// 获取Excel数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        private async Task <List <EmployeeListDto> > GeEmployeesNoPage(GetEmployeesInput input)
        {
            var mid   = UserManager.GetControlEmployeeId();
            var query = _employeeRepository.GetAll()
                        .WhereIf(!string.IsNullOrEmpty(input.Filter) && input.Filter != "null", e => e.Name.Contains(input.Filter) || e.Code.Contains(input.Filter))
                        .WhereIf(input.Position.HasValue, e => e.Position == input.Position)
                        .WhereIf(mid.HasValue, e => e.Id == mid);
            //TODO:根据传入的参数添加过滤条件

            var employees = await query
                            .OrderBy(input.Sorting)
                            .ToListAsync();

            var employeeListDtos = employees.MapTo <List <EmployeeListDto> >();

            return(employeeListDtos);
        }
Esempio n. 4
0
        public async Task <PagedResultOutput <EmployeeDto> > GetEmployees(GetEmployeesInput input)
        {
            try
            {
                IQueryable <Employee> query;

                if (IsGranted(AppPermissions.Pages_Pim_Eployees_List))
                {
                    query = _employeeRepository.GetAll()
                            .WhereIf(
                        !input.Filter.IsNullOrWhiteSpace(),
                        u =>
                        u.Number.Contains(input.Filter) ||
                        (u.FirstName + " " + u.MiddleName + " " + u.LastName).Contains(input.Filter) ||
                        u.FirstName.Contains(input.Filter) ||
                        u.LastName.Contains(input.Filter) ||
                        u.Contact.MobilePhoneNumber.Contains(input.Filter) ||
                        u.MiddleName.Contains(input.Filter)
                        );
                }
                else
                {
                    var currentEmployeeId = GetCurrentUser().Id;
                    query = _employeeRepository.GetAll().Where(e => e.Id == currentEmployeeId).AsQueryable();
                }

                var employeeCount = await query.CountAsync();

                var emplyeeList = await query
                                  .OrderBy(input.Sorting)
                                  .PageBy(input)
                                  .ToListAsync();

                var emplyeeListDtos = emplyeeList.MapTo <List <EmployeeDto> >();

                return(new PagedResultOutput <EmployeeDto>(
                           employeeCount,
                           emplyeeListDtos
                           ));
            }
            catch (Exception exception)
            {
                return(new PagedResultOutput <EmployeeDto>());
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 获取Employee的分页列表信息
        ///</summary>
        /// <param name="input"></param>
        /// <returns></returns>

        public async Task <PagedResultDto <EmployeeListDto> > GetPagedAsync(GetEmployeesInput input)
        {
            var query = _entityRepository.GetAll();
            // TODO:根据传入的参数添加过滤条件


            var count = await query.CountAsync();

            var entityList = await query
                             .OrderBy(input.Sorting).AsNoTracking()
                             .PageBy(input)
                             .ToListAsync();

            // var entityListDtos = ObjectMapper.Map<List<EmployeeListDto>>(entityList);
            var entityListDtos = entityList.MapTo <List <EmployeeListDto> >();

            return(new PagedResultDto <EmployeeListDto>(count, entityListDtos));
        }
Esempio n. 6
0
        public async Task <APIResultDto> ExportEmployeesExcel(GetEmployeesInput input)
        {
            try
            {
                var exportData = await GeEmployeesNoPage(input);

                var result = new APIResultDto();
                result.Code = 0;
                result.Data = SaveEmployeeExcel("公司员工.xlsx", exportData);
                return(result);
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("ExportEmployeesExcel errormsg{0} Exception{1}", ex.Message, ex);
                return(new APIResultDto()
                {
                    Code = 901, Msg = "网络忙...请待会儿再试!"
                });
            }
        }
Esempio n. 7
0
        /// <summary>
        /// 列表
        /// </summary>
        /// <param name="input">查询条件</param>
        /// <returns>结果</returns>
        public virtual async Task <PagedResultDto <EmployeeListDto> > GetListAsync(GetEmployeesInput input)
        {
            await NormalizeMaxResultCountAsync(input);

            var queryable = await _employeeRepository.GetQueryableAsync();

            queryable = queryable
                        .Where(e => e.InServiceStatus == input.InServiceStatus);

            long totalCount = await AsyncExecuter.CountAsync(queryable);

            var entities = await AsyncExecuter.ToListAsync(queryable
                                                           .OrderBy(input.Sorting ?? "Id DESC")
                                                           .Skip(input.SkipCount)
                                                           .Take(input.MaxResultCount));

            var dtos = ObjectMapper.Map <List <Employee>, List <EmployeeListDto> >(entities);

            return(new PagedResultDto <EmployeeListDto>(totalCount, dtos));
        }
Esempio n. 8
0
        /// <summary>
        /// 获取Employee的分页列表信息
        ///</summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <EmployeeListDto> > GetPagedEmployeeAsync(GetEmployeesInput input)
        {
            var query = _employeeRepository.GetAll()
                        .WhereIf(!string.IsNullOrEmpty(input.Mobile), u => u.Mobile.Contains(input.Mobile))
                        .WhereIf(!string.IsNullOrEmpty(input.Name), u => u.Name.Contains(input.Name))
                        .WhereIf(!string.IsNullOrEmpty(input.DepartId), u => u.Department.Contains(input.DepartId));
            // TODO:根据传入的参数添加过滤条件

            var employeeCount = await query.CountAsync();

            var employees = await query
                            .OrderBy(v => v.Department)
                            .ThenBy(v => v.Id).AsNoTracking()
                            .PageBy(input)
                            .ToListAsync();

            var employeeListDtos = employees.MapTo <List <EmployeeListDto> >();

            return(new PagedResultDto <EmployeeListDto>(
                       employeeCount,
                       employeeListDtos
                       ));
        }
Esempio n. 9
0
        /// <summary>
        /// 获取Employee的分页列表信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <EmployeeListDto> > GetPagedEmployees(GetEmployeesInput input)
        {
            var mid   = UserManager.GetControlEmployeeId();
            var query = _employeeRepository.GetAll()
                        .WhereIf(!string.IsNullOrEmpty(input.Filter) && input.Filter != "null", e => e.Name.Contains(input.Filter) || e.Code.Contains(input.Filter))
                        .WhereIf(input.Position.HasValue, e => e.Position == input.Position)
                        .WhereIf(mid.HasValue, e => e.Id == mid);
            //TODO:根据传入的参数添加过滤条件
            var employeeCount = await query.CountAsync();

            var employees = await query
                            .OrderBy(input.Sorting)
                            .PageBy(input)
                            .ToListAsync();

            //var employeeListDtos = ObjectMapper.Map<List <EmployeeListDto>>(employees);
            var employeeListDtos = employees.MapTo <List <EmployeeListDto> >();

            return(new PagedResultDto <EmployeeListDto>(
                       employeeCount,
                       employeeListDtos
                       ));
        }
Esempio n. 10
0
        /// <summary>
        /// 用于员工模态框的数据获取
        /// </summary>
        /// <param name="input">员工姓名或编号</param>
        /// <returns></returns>
        public async Task <PagedResultDto <EmployeeListDto> > GetPagedEmployeesModal(GetEmployeesInput input)
        {
            var query = _employeeRepository.GetAll()
                        .WhereIf(!string.IsNullOrEmpty(input.Filter), e => e.Name.Contains(input.Filter) || e.Code.Contains(input.Filter))
                        .WhereIf(input.IsManger, e => e.Position == UserPositionEnum.客户经理);

            //TODO:根据传入的参数添加过滤条件
            var employeeCount = await query.CountAsync();

            input.MaxResultCount = 10;
            input.SkipCount      = 0;
            var employees = await query
                            .OrderBy(input.Sorting)
                            .PageBy(input)
                            .ToListAsync();

            //var employeeListDtos = ObjectMapper.Map<List <EmployeeListDto>>(employees);
            var employeeListDtos = employees.MapTo <List <EmployeeListDto> >();

            return(new PagedResultDto <EmployeeListDto>(
                       employeeCount,
                       employeeListDtos
                       ));
        }
Esempio n. 11
0
        public async Task <ActionResult> Index(GetEmployeesInput input)
        {
            var result = await _employeeAppService.GetAllAsync(input);

            return(View("GetAll", result));
        }
Esempio n. 12
0
        /// <summary>
        /// 根据部门节点获取员工信息
        /// </summary>
        public async Task <PagedResultDto <EmployeeListDto> > GetEmployeeListByIdAsync(GetEmployeesInput input)
        {
            if (input.DepartId == "1" || input.DepartId == null)
            {
                var deptArr = await _employeeManager.GetAreaDeptIdArrayAsync(input.AreaCode);//获取该区县下的部门和子部门列表

                var query = _employeeRepository.GetAll()
                            .WhereIf(input.AreaCode.HasValue, e => e.AreaCode == input.AreaCode || deptArr.Contains(e.Department))
                            .WhereIf(!string.IsNullOrEmpty(input.Mobile), u => u.Mobile.Contains(input.Mobile))
                            .WhereIf(!string.IsNullOrEmpty(input.Name), u => u.Name.Contains(input.Name));

                var employeeCount = await query.CountAsync();

                var employees = await query
                                .OrderBy(v => v.Department)
                                .ThenBy(v => v.Id).AsNoTracking()
                                .PageBy(input)
                                .ToListAsync();

                var employeeListDtos = employees.MapTo <List <EmployeeListDto> >();

                return(new PagedResultDto <EmployeeListDto>(
                           employeeCount,
                           employeeListDtos
                           ));
            }
            else
            {
                var query = _employeeRepository.GetAll()
                            .WhereIf(!string.IsNullOrEmpty(input.Mobile), u => u.Mobile.Contains(input.Mobile))
                            .WhereIf(!string.IsNullOrEmpty(input.Name), u => u.Name.Contains(input.Name))
                            .Where(v => v.Department.Contains(input.DepartId));
                var employeeCount = await query.CountAsync();

                var employees = await query
                                .OrderBy(v => v.Id).AsNoTracking()
                                .PageBy(input)
                                .ToListAsync();

                var employeeListDtos = employees.MapTo <List <EmployeeListDto> >();

                return(new PagedResultDto <EmployeeListDto>(
                           employeeCount,
                           employeeListDtos
                           ));
            }
        }
Esempio n. 13
0
 public virtual async Task <PagedResultDto <EmployeeListDto> > GetListAsync(GetEmployeesInput input)
 {
     return(await _employeeAppService.GetListAsync(input));
 }