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); }
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); }
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); }
/// <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); } }