using System.Data; namespace Tiobon.Core.Services; /// /// 人力需求维护 (服务) /// public class Ghrh_HumanRequestServices : BaseServices, IGhrh_HumanRequestServices { private readonly IBaseRepository _dal; public Ghrh_HumanRequestServices(ICaching caching, IBaseRepository dal) { this._dal = dal; base.BaseDal = dal; base._caching = caching; } public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) { var result = await base.QueryFilterPage(filter, condition, IsEnable); var entitys = result.result.DT_TableDataT1; var deptIds = entitys.Where(x => x.ApplyDeptId != null).Select(x => x.ApplyDeptId).ToList(); //var titleIds = entitys.Where(x => x.TitleId != null).Select(x => x.TitleId).ToList(); var gradeIds = entitys.Where(x => x.GradeId != null).Select(x => x.GradeId).ToList(); var titleIds = entitys.Where(x => x.TitleId != null).Select(x => x.TitleId).ToList(); deptIds.AddRange(entitys.Where(x => x.BelongDeptId != null).Select(x => x.BelongDeptId).ToList()); if (deptIds.Any()) { var depts = await Db.Queryable().Where(x => deptIds.Contains(x.DeptID)).ToListAsync(); entitys.ForEach(rule => { rule.ApplyDeptName = depts.FirstOrDefault(o => rule.ApplyDeptId == o.DeptID)?.DeptName; rule.BelongDeptName = depts.FirstOrDefault(o => rule.BelongDeptId == o.DeptID)?.DeptName; }); } //if (titleIds.Any()) //{ // var titles = await Db.Queryable().Where(x => titleIds.Contains(x.TitleID)).ToListAsync(); // entitys.ForEach(rule => // { // rule.TitleName = titles.FirstOrDefault(o => rule.TitleId == o.TitleID)?.TitleName; // }); //} //if (gradeIds.Any()) //{ // var grades = await Db.Queryable().Where(x => gradeIds.Contains(x.GradeID)).ToListAsync(); // entitys.ForEach(rule => // { // rule.GradeName = grades.FirstOrDefault(o => rule.GradeId == o.GradeID)?.GradeName; // }); //} //if (jobIds.Any()) //{ // var jobs = await Db.Queryable().Where(x => jobIds.Contains(x.JobID)).ToListAsync(); // entitys.ForEach(rule => // { // rule.JobName = jobs.FirstOrDefault(o => rule.JobId == o.JobID)?.JobName; // }); //} result.result.DT_TableDataT1 = entitys; return result; } public override async Task QueryById(object objId) { var result = await base.QueryById(objId); result.ApplyDeptName = (await Db.Queryable().FirstAsync(o => result.ApplyDeptId == o.DeptID))?.DeptName; result.BelongDeptName = (await Db.Queryable().FirstAsync(o => result.BelongDeptId == o.DeptID))?.DeptName; result.TitleName = (await Db.Queryable().FirstAsync(o => result.TitleId == o.TitleID))?.TitleName; return result; } }