namespace Tiobon.Core.Services;
///
/// 员工群组 (服务)
///
public class Ghre_StaffGroupServices : BaseServices, IGhre_StaffGroupServices
{
private readonly IBaseRepository _dal;
public Ghre_StaffGroupServices(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 zoneIds = new List();
var exclZoneIds = new List();
var deptIds = new List();
var exclDeptIds = new List();
var titleIds = new List();
var exclTitleIds = new List();
var gradeIds = new List();
var exclgGradeIds = new List();
var jobIds = new List();
var exclJobIds = new List();
var staffIds = new List();
var exclStaffIds = new List();
result.result.DT_TableDataT1.ForEach(async x =>
{
x.StaffType1s = JsonHelper.JsonToObj>(x.StaffType1);
x.StaffType2s = JsonHelper.JsonToObj>(x.StaffType2);
x.ZoneIds = JsonHelper.JsonToObj>(x.ZoneId);
x.ExclZoneIds = JsonHelper.JsonToObj>(x.ExclZoneId);
x.DeptIds = JsonHelper.JsonToObj>(x.DeptId);
x.ExclDeptIds = JsonHelper.JsonToObj>(x.ExclDeptId);
x.TitleIds = JsonHelper.JsonToObj>(x.TitleId);
x.ExclTitleIds = JsonHelper.JsonToObj>(x.ExclTitleId);
x.GradeIds = JsonHelper.JsonToObj>(x.GradeId);
x.ExclGradeIds = JsonHelper.JsonToObj>(x.ExclGradeId);
x.JobIds = JsonHelper.JsonToObj>(x.JobId);
x.ExclJobIds = JsonHelper.JsonToObj>(x.ExclJobId);
x.StaffIds = JsonHelper.JsonToObj>(x.StaffId);
x.ExclStaffIds = JsonHelper.JsonToObj>(x.ExclStaffId);
zoneIds.AddRange(x.ZoneIds);
zoneIds.AddRange(x.ExclZoneIds);
deptIds.AddRange(x.DeptIds);
deptIds.AddRange(x.ExclDeptIds);
titleIds.AddRange(x.TitleIds);
titleIds.AddRange(x.ExclTitleIds);
gradeIds.AddRange(x.GradeIds);
gradeIds.AddRange(x.ExclGradeIds);
jobIds.AddRange(x.JobIds);
jobIds.AddRange(x.ExclJobIds);
staffIds.AddRange(x.StaffIds);
staffIds.AddRange(x.ExclStaffIds);
x.GroupType = await GetParaLabel("TrainingGroupType", x.GroupType);
for (int i = 0; i < x.StaffType1s.Count; i++)
{
x.StaffType1s[i] = await GetParaLabel("StaffType1", x.StaffType1s[i]);
}
for (int i = 0; i < x.StaffType2s.Count; i++)
{
x.StaffType2s[i] = await GetParaLabel("StaffType2", x.StaffType2s[i]);
}
x.StaffType1 = string.Join(",", x.StaffType1s);
x.StaffType2 = string.Join(",", x.StaffType2s);
});
if (zoneIds.Any())
{
var zones = await Db.Queryable().Where(x => zoneIds.Contains(x.ZoneID.Value)).ToListAsync();
result.result.DT_TableDataT1.ForEach(rule =>
{
rule.ZoneId = string.Join(",", zones.Where(o => rule.ZoneIds.Contains(o.ZoneID.Value)).Select(o => o.ZoneName));
rule.ExclZoneId = string.Join(",", zones.Where(o => rule.ExclZoneIds.Contains(o.ZoneID.Value)).Select(o => o.ZoneName));
});
}
if (deptIds.Any())
{
var depts = await Db.Queryable().Where(x => deptIds.Contains(x.DeptID.Value)).ToListAsync();
result.result.DT_TableDataT1.ForEach(rule =>
{
rule.DeptId = string.Join(",", depts.Where(o => rule.DeptIds.Contains(o.DeptID.Value)).Select(o => o.DeptName));
rule.ExclDeptId = string.Join(",", depts.Where(o => rule.ExclDeptIds.Contains(o.DeptID.Value)).Select(o => o.DeptName));
});
}
if (titleIds.Any())
{
var titles = await Db.Queryable().Where(x => titleIds.Contains(x.TitleID.Value)).ToListAsync();
result.result.DT_TableDataT1.ForEach(rule =>
{
rule.TitleId = string.Join(",", titles.Where(o => rule.TitleIds.Contains(o.TitleID.Value)).Select(o => o.TitleName));
rule.ExclTitleId = string.Join(",", titles.Where(o => rule.ExclTitleIds.Contains(o.TitleID.Value)).Select(o => o.TitleName));
});
}
if (gradeIds.Any())
{
var grades = await Db.Queryable().Where(x => gradeIds.Contains(x.GradeID)).ToListAsync();
result.result.DT_TableDataT1.ForEach(rule =>
{
rule.GradeId = string.Join(",", grades.Where(o => rule.GradeIds.Contains(o.GradeID)).Select(o => o.GradeName));
rule.ExclGradeId = string.Join(",", grades.Where(o => rule.ExclGradeIds.Contains(o.GradeID)).Select(o => o.GradeName));
});
}
if (jobIds.Any())
{
var jobs = await Db.Queryable().Where(x => jobIds.Contains(x.JobID.Value)).ToListAsync();
result.result.DT_TableDataT1.ForEach(rule =>
{
rule.JobId = string.Join(",", jobs.Where(o => rule.JobIds.Contains(o.JobID.Value)).Select(o => o.JobName));
rule.ExclJobId = string.Join(",", jobs.Where(o => rule.ExclJobIds.Contains(o.JobID.Value)).Select(o => o.JobName));
});
}
if (staffIds.Any())
{
var staffs = await Db.Queryable().Where(x => staffIds.Contains(x.StaffID)).ToListAsync();
result.result.DT_TableDataT1.ForEach(rule =>
{
rule.StaffId = string.Join(",", staffs.Where(o => rule.StaffIds.Contains(o.StaffID)).Select(o => o.StaffName));
rule.ExclStaffId = string.Join(",", staffs.Where(o => rule.ExclStaffIds.Contains(o.StaffID)).Select(o => o.StaffName));
});
}
//sponsorIds = sponsorIds.Distinct().ToList();
//var staffs = await Db.Queryable().Where(x => sponsorIds.Contains(x.StaffID)).ToListAsync();
//var users = await Db.Queryable().Where(x => userIds.Contains(x.UserId)).ToListAsync();
//result.result.DT_TableDataT1.ForEach(async x =>
//{
// x.StaffType1s
// x.CourseSourceLabel = await GetParaLabel("TrainingRequestCourseSource", x.CourseSource);
// x.RequestSourceLabel = await GetParaLabel("TrainingRequestRequestSource", x.RequestSource);
// x.TrainClassLabel = await GetParaLabel("TrainingRequestTrainClass", x.TrainClass);
// x.TrainLevelLabel = await GetParaLabel("TrainingRequestTrainLevel", x.TrainLevel);
// x.InOrOutLabel = await GetParaLabel("CourseInOrOut", x.InOrOut);
// x.TeacherClassLabel = await GetParaLabel("TrainingTeacherType", x.InOrOut);
// //if (x.CourseId != null)
// // x.CourseName = courses.Where(o => x.CourseId == o.Id).FirstOrDefault()?.CourseName;
// if (x.DeptId != null)
// x.DeptName = depts.Where(o => x.DeptId == o.DeptID).FirstOrDefault()?.DeptName;
// if (x.SponsorId != null)
// x.SponsorName = staffs.Where(o => x.SponsorId == o.StaffID).FirstOrDefault()?.StaffName;
// if (x.TrainStaffIds.IsNotEmptyOrNull())
// x.TrainStaffNames = string.Join("、", staffs.Where(o => x.TrainStaffIds.Contains(o.StaffID)).Select(o => o.StaffName));
// if (x.AgreeUserId != null)
// x.AgreeUserName = users.Where(o => x.AgreeUserId == o.UserId).FirstOrDefault()?.UserName;
// if (x.RefuseUserId != null)
// x.RefuseUserName = users.Where(o => x.RefuseUserId == o.UserId).FirstOrDefault()?.UserName;
// if (x.WorkState.IsNotEmptyOrNull())
// {
// if (x.WorkState == 0) x.WorkStateLabel = "审批中";
// if (x.WorkState == 1) x.WorkStateLabel = "审批通过";
// }
// if (x.RequestNum.IsNotEmptyOrNull() && x.RequestNum > 0)
// if (x.TrainDays.IsNotEmptyOrNull() && x.TrainDays > 0)
// {
// var TotalTrainDays = x.TrainDays * x.RequestNum;
// x.TotalTrainDays = StringHelper.TrimDecimalString(TotalTrainDays);
// }
//});
return result;
}
public override async Task Add(InsertGhre_StaffGroupInput entity)
{
entity.StaffType1 = JsonHelper.ObjToJson(entity.StaffType1s);
entity.StaffType2 = JsonHelper.ObjToJson(entity.StaffType2s);
entity.ZoneId = JsonHelper.ObjToJson(entity.ZoneIds);
entity.ExclZoneId = JsonHelper.ObjToJson(entity.ExclZoneIds);
entity.DeptId = JsonHelper.ObjToJson(entity.DeptIds);
entity.ExclDeptId = JsonHelper.ObjToJson(entity.ExclDeptIds);
entity.TitleId = JsonHelper.ObjToJson(entity.TitleIds);
entity.ExclTitleId = JsonHelper.ObjToJson(entity.ExclTitleIds);
entity.GradeId = JsonHelper.ObjToJson(entity.GradeIds);
entity.ExclGradeId = JsonHelper.ObjToJson(entity.ExclGradeIds);
entity.JobId = JsonHelper.ObjToJson(entity.JobIds);
entity.ExclJobId = JsonHelper.ObjToJson(entity.ExclJobIds);
entity.StaffId = JsonHelper.ObjToJson(entity.StaffIds);
entity.ExclStaffId = JsonHelper.ObjToJson(entity.ExclStaffIds);
var result = await base.Add(entity);
return result;
}
public override async Task Update(long Id, EditGhre_StaffGroupInput entity)
{
entity.StaffType1 = JsonHelper.ObjToJson(entity.StaffType1s);
entity.StaffType2 = JsonHelper.ObjToJson(entity.StaffType2s);
entity.ZoneId = JsonHelper.ObjToJson(entity.ZoneIds);
entity.ExclZoneId = JsonHelper.ObjToJson(entity.ExclZoneIds);
entity.DeptId = JsonHelper.ObjToJson(entity.DeptIds);
entity.ExclDeptId = JsonHelper.ObjToJson(entity.ExclDeptIds);
entity.TitleId = JsonHelper.ObjToJson(entity.TitleIds);
entity.ExclTitleId = JsonHelper.ObjToJson(entity.ExclTitleIds);
entity.GradeId = JsonHelper.ObjToJson(entity.GradeIds);
entity.ExclGradeId = JsonHelper.ObjToJson(entity.ExclGradeIds);
entity.JobId = JsonHelper.ObjToJson(entity.JobIds);
entity.ExclJobId = JsonHelper.ObjToJson(entity.ExclJobIds);
entity.StaffId = JsonHelper.ObjToJson(entity.StaffIds);
entity.ExclStaffId = JsonHelper.ObjToJson(entity.ExclStaffIds);
var result = await base.Update(Id, entity);
return result;
}
public override async Task> QueryForm(QueryForm body)
{
var result = await base.QueryForm(body);
var DT_TableDataT1 = result.result.DT_TableDataT1[0];
DT_TableDataT1.StaffType1s = JsonHelper.JsonToObj>(DT_TableDataT1.StaffType1);
DT_TableDataT1.StaffType2s = JsonHelper.JsonToObj>(DT_TableDataT1.StaffType2);
DT_TableDataT1.ZoneIds = JsonHelper.JsonToObj>(DT_TableDataT1.ZoneId);
DT_TableDataT1.ExclZoneIds = JsonHelper.JsonToObj>(DT_TableDataT1.ExclZoneId);
DT_TableDataT1.DeptIds = JsonHelper.JsonToObj>(DT_TableDataT1.DeptId);
DT_TableDataT1.ExclDeptIds = JsonHelper.JsonToObj>(DT_TableDataT1.ExclDeptId);
DT_TableDataT1.TitleIds = JsonHelper.JsonToObj>(DT_TableDataT1.TitleId);
DT_TableDataT1.ExclTitleIds = JsonHelper.JsonToObj>(DT_TableDataT1.ExclTitleId);
DT_TableDataT1.GradeIds = JsonHelper.JsonToObj>(DT_TableDataT1.GradeId);
DT_TableDataT1.ExclGradeIds = JsonHelper.JsonToObj>(DT_TableDataT1.ExclGradeId);
DT_TableDataT1.JobIds = JsonHelper.JsonToObj>(DT_TableDataT1.JobId);
DT_TableDataT1.ExclJobIds = JsonHelper.JsonToObj>(DT_TableDataT1.ExclJobId);
DT_TableDataT1.StaffIds = JsonHelper.JsonToObj>(DT_TableDataT1.StaffId);
DT_TableDataT1.ExclStaffIds = JsonHelper.JsonToObj>(DT_TableDataT1.ExclStaffId);
result.result.DT_TableDataT1[0] = DT_TableDataT1;
return result;
}
}