コード例 #1
0
        public List <Team> GetTeamList()
        {
            var teamList = (from team in _teamRepository.GetAll()
                            join user in _employeeRepository.GetAll() on team.TeamLeader equals user.EmployeeCode
                            join department in _departmentRepository.GetAll() on team.DepartmentID equals department.DeptCode1
                            select new
            {
                Id = team.Id,
                TeamName = team.TeamName,
                TeamLeader = team.TeamLeader,
                TeamLeaderName = user.EmployeeName + "(" + user.EmployeeCode + ")",
                DepartmentID = team.DepartmentID,
                DepartmentName = department.FullDeptName + "(" + department.DeptCode1 + ")"
            }).ToList();

            var list = new List <Team>();

            teamList.ForEach(team =>
            {
                list.Add(new Team
                {
                    Id             = team.Id,
                    TeamName       = team.TeamName,
                    TeamLeader     = team.TeamLeader,
                    TeamLeaderName = team.TeamLeaderName,
                    DepartmentID   = team.DepartmentID,
                    DepartmentName = team.DepartmentName
                });
            });

            return(list);
        }
コード例 #2
0
        public List <Role> GetRoleList(int start, int length, string sortColumnName, string sortDirection, out int totalCount)
        {
            totalCount = _roleRepository.Count();
            //var users = (from user in _userRepository.GetAll()
            //             join userRole in _userRoleRepository.GetAll() on user.Id equals userRole.UserId
            //             join role in _roleRepository.GetAll() on userRole.RoleId equals role.Id
            //             where role.Name == roleName
            //             select user.Id).Distinct().ToList();

            var roles = _roleRepository.GetAll().OrderBy(sortColumnName + " " + sortDirection).Skip(start).Take(length).ToList();

            var userRoles = (
                from role in roles
                join userRole in _userRoleRepository.GetAll() on role.Id equals userRole.RoleId
                select new { userRole.RoleId, userRole.UserId }).ToList();

            var users = (
                from userRole in userRoles
                join em in _employeeRepository.GetAll() on userRole.UserId equals em.EmployeeCode
                select new { userRole.RoleId, userRole.UserId, em.EmployeeName }
                ).ToList();


            users.ForEach(userRole =>
            {
                roles.ForEach(role =>
                {
                    if (role.Id == userRole.RoleId)
                    {
                        if (role.Users == null)
                        {
                            role.Users = new List <HREmployee>();
                        }
                        role.Users.Add(new HREmployee {
                            EmployeeCode = userRole.UserId, EmployeeName = userRole.EmployeeName
                        });
                        if (role.UserIds == null)
                        {
                            role.UserIds = new List <string>();
                        }
                        role.UserIds.Add(userRole.UserId);
                    }
                });
            });

            //var roles = (from role in _roleRepository.GetAll()
            //             let query = (from userRole in _userRoleRepository.GetAll()
            //                          where userRole.RoleId == role.Id
            //                          join em in _employeeRepository.GetAll() on userRole.UserId equals em.EmployeeCode
            //                          select new HREmployee { EmployeeCode = em.EmployeeCode, EmployeeName = em.EmployeeName })
            //             select new Role { Id = role.Id, RoleName = role.RoleName, Users = query.ToList() }).ToList();

            return(roles);
        }
コード例 #3
0
        public List <HREmployee> GetEmployeeList(string searchTerm, int pageSize, int pageNum, out int totalCount)
        {
            var current_date  = DateTime.Now;
            var tomorrow_date = current_date.AddDays(1);

            totalCount = _employeeRepository.GetAll()
                         .Where(
                x => (string.IsNullOrEmpty(searchTerm) || x.EmployeeName.Contains(searchTerm) || x.EmployeeCode.Contains(searchTerm)) &&
                current_date > x.EntryDate && current_date < (x.ExitDate ?? tomorrow_date)
                ).Count();

            var employeeList = (from user in _employeeRepository.GetAll()
                                join department in _departmentRepository.GetAll() on user.DeptCode equals department.DeptCode1
                                where (string.IsNullOrEmpty(searchTerm) || user.EmployeeName.Contains(searchTerm) || user.EmployeeCode.Contains(searchTerm)) &&
                                current_date > user.EntryDate && current_date < (user.ExitDate ?? tomorrow_date)
                                orderby user.EmployeeName
                                select new {
                EmployeeCode = user.EmployeeCode,
                EmployeeName = user.EmployeeName,
                DeptCode = user.DeptCode,
                DeptName = department.DeptName1,
                EntryDate = user.EntryDate,
                ExitDate = user.ExitDate
            }).Skip((pageNum - 1) * pageSize).Take(pageSize).ToList();

            var list = new List <HREmployee>();

            employeeList.ForEach(x =>
            {
                list.Add(new HREmployee
                {
                    EmployeeCode = x.EmployeeCode,
                    EmployeeName = x.EmployeeName,
                    DeptCode     = x.DeptCode,
                    DeptName     = x.DeptName,
                    EntryDate    = x.EntryDate,
                    ExitDate     = x.ExitDate
                });
            });

            return(list);
        }
コード例 #4
0
        /// <summary>
        /// 添加时,如果对应的WorkflowInstanceID+OperateTime已经存在则跳过
        /// </summary>
        /// <param name="al"></param>
        /// <returns></returns>
        public int AddApproveLog(ApproveLog al)
        {
            var isExists = _alRepository.GetAllList().Where(w => w.WorkflowInstanceID == al.WorkflowInstanceID && w.OperateTime == al.OperateTime).ToList();

            if (isExists.Count == 0)
            {
                if (al.OperateType == "提交" || al.OperateType == "审批通过" || al.OperateType == "驳回" || al.OperateType == "转办")
                {
                    var submitter = _userRepository.GetAll().Where(u => u.EmployeeCode == al.Creator).FirstOrDefault();
                    if (al.OperateType != "提交")
                    {
                        //如果不是提交,则需要先根据WorkflowInstanceID找到提交人,同一个WorkflowInstanceID操作日期最小的就是提交人记录的
                        var submitLog = _alRepository.GetAllList().Where(w => w.WorkflowInstanceID == al.WorkflowInstanceID).OrderBy(alog => alog.OperateTime).FirstOrDefault();
                        submitter = _userRepository.GetAll().Where(u => u.EmployeeCode == submitLog.Creator).FirstOrDefault();
                    }
                    var        setting  = _settingRepository.GetAll().Where(s => s.UserId == submitter.EmployeeCode).FirstOrDefault();
                    var        team     = _teamRepository.Get(setting.TeamId);
                    HREmployee approver = null;

                    if (al.OperateType == "提交")
                    {
                        approver = _userRepository.GetAll().Where(u => u.EmployeeCode == al.NextOperator).FirstOrDefault();
                        EmailSender.SendEmailForSubmitToApprover(team.TeamName, submitter.EmployeeName, approver.EmployeeName, approver.Email, al.Comment, al.OperateTime, al.StartDate, al.EndDate);
                    }
                    else if (al.OperateType == "审批通过")
                    {
                        approver = _userRepository.GetAll().Where(u => u.EmployeeCode == al.CurrentOperator).FirstOrDefault();
                        EmailSender.SendEmailForApproverCompleteApprove(team.TeamName, submitter.EmployeeName, approver.EmployeeName, submitter.Email, al.Comment, al.OperateTime);
                    }
                    else if (al.OperateType == "驳回")
                    {
                        approver = _userRepository.GetAll().Where(u => u.EmployeeCode == al.CurrentOperator).FirstOrDefault();
                        EmailSender.SendEmailForRollbackToSubmitter(team.TeamName, submitter.EmployeeName, approver.EmployeeName, submitter.Email, al.Comment, al.OperateTime);
                    }
                    else if (al.OperateType == "转办")
                    {
                        approver = _userRepository.GetAll().Where(u => u.EmployeeCode == al.NextOperator).FirstOrDefault();
                        EmailSender.SendEmailForApproverTransferToOther(team.TeamName, submitter.EmployeeName, approver.EmployeeName, approver.Email, al.Comment, al.OperateTime);
                    }
                }
                return(_alRepository.InsertAndGetId(al));
            }
            else
            {
                return(isExists[0].Id);
            }
        }