using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Hg.Core.Domain { public class EmployeeDomain : IEmployeeDomain { private readonly IBaseRepository _zxdRepository; private readonly IDepartmentDomain _departmentDomain; private readonly IBaseRepository _compaybaseconfdb; public EmployeeDomain(IBaseRepository zxdRepository, IDepartmentDomain departmentDomain, IBaseRepository compaybaseconfdb) { _zxdRepository = zxdRepository; this._departmentDomain = departmentDomain; this._compaybaseconfdb = compaybaseconfdb; } /// /// 根据工号获取所在部门信息 /// /// /// public List GetEmployee_Department_Details(int eid) { var query = _zxdRepository.GetRepository().Query().Where(x => x.eid == eid); return query.ToList(); } public async Task GetCenterNameAsync(int eid) { CenterInfo info = new CenterInfo() { centerName = "", deptId = 0 }; var list = GetEmployee_Department_Details(eid); if (list.Count() > 0) { var departments = await _departmentDomain.GetDeptmentAll(); var deptmentIds = list.Select(m => m.department_id); var deptInfo = departments.Where(m => m.Id != 0).Where(m => deptmentIds.Contains(m.DepartmentId)).FirstOrDefault(); if (deptInfo != null) { info.deptId = deptInfo.Id; info.centerName = deptInfo.Title; } } return info; } public string GetAllDeptName(int eid) { string name = ""; var list = GetEmployee_Department_Details(eid); if (list.Count() > 0) { name = string.Join('/', list.Where(m => m.level != 0).OrderBy(m => m.level).Select(m => m.department_name).ToArray()); } return name; } public DepartmentInfo GetAllDeptInfos(int eid) { DepartmentInfo info = new DepartmentInfo(); string name = ""; var list = GetEmployee_Department_Details(eid); if (list.Count() > 0) { info.deptmentNames = string.Join('/', list.Where(m => m.level != 0).OrderBy(m => m.level).Select(m => m.department_name).ToArray()); info.deptmentIds = string.Join(',', list.Where(m => m.level != 0).OrderBy(m => m.level).Select(m => m.department_id).ToArray()); } return info; } /// /// 获取员工姓名 /// /// /// public string GetEmpoyeeName(int eid) { var query = _compaybaseconfdb.GetRepository().Query().Where(x => x.EmployeeID == eid).FirstOrDefault(); if (query != null) return query.EmployeeName; return ""; } } /// /// 中心信息 /// public class CenterInfo { public int deptId { get; set; } public string centerName { get; set; } } public class DepartmentInfo { public string deptmentIds { get; set; } public string deptmentNames { get; set; } } }