|
|
|
@ -1,4 +1,6 @@ |
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
using Microsoft.IdentityModel.Tokens; |
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
/// 录用审批单 (服务) |
|
|
|
@ -6,10 +8,123 @@ |
|
|
|
|
public class Ghrh_OfferApplyOrderServices : BaseServices<Ghrh_OfferApplyOrder, Ghrh_OfferApplyOrderDto, InsertGhrh_OfferApplyOrderInput, EditGhrh_OfferApplyOrderInput>, IGhrh_OfferApplyOrderServices |
|
|
|
|
{ |
|
|
|
|
private readonly IBaseRepository<Ghrh_OfferApplyOrder> _dal; |
|
|
|
|
public Ghrh_OfferApplyOrderServices(ICaching caching, IBaseRepository<Ghrh_OfferApplyOrder> dal) |
|
|
|
|
private readonly IGhrh_OfferApplyOrderSalaryServices _ghrh_OfferApplyOrderSalaryServices; |
|
|
|
|
public Ghrh_OfferApplyOrderServices(ICaching caching, IBaseRepository<Ghrh_OfferApplyOrder> dal, IGhrh_OfferApplyOrderSalaryServices ghrh_OfferApplyOrderSalaryServices) |
|
|
|
|
{ |
|
|
|
|
this._dal = dal; |
|
|
|
|
base.BaseDal = dal; |
|
|
|
|
base._caching = caching; |
|
|
|
|
_ghrh_OfferApplyOrderSalaryServices = ghrh_OfferApplyOrderSalaryServices; |
|
|
|
|
} |
|
|
|
|
private async Task SetLabel(Ghrh_OfferApplyOrderDto x) |
|
|
|
|
{ |
|
|
|
|
if (x != null) |
|
|
|
|
{ |
|
|
|
|
x.InDate1 = DateTimeHelper.ConvertToDayString(x.InDate); |
|
|
|
|
x.ChannelLabel = await GetParaLabel("ResumeChannel", x.Channel); |
|
|
|
|
x.StaffTypeLabel = await GetParaLabel("StaffType2", x.StaffType); |
|
|
|
|
if (x.WorkState.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
if (x.WorkState == 0) x.WorkStateLabel = "审批中"; |
|
|
|
|
if (x.WorkState == 1) x.WorkStateLabel = "审批通过"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<ServicePageResult<Ghrh_OfferApplyOrderDto>> 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.DeptId != null).Select(x => x.DeptId).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(); |
|
|
|
|
var jobIds = entitys.Where(x => x.JobId != null).Select(x => x.JobId).ToList(); |
|
|
|
|
var reportIds = entitys.Where(x => x.ReportId != null).Select(x => x.ReportId).ToList(); |
|
|
|
|
reportIds.AddRange(entitys.Where(x => x.ApplicantId != null).Select(x => x.ApplicantId).ToList()); |
|
|
|
|
|
|
|
|
|
if (reportIds.Any()) |
|
|
|
|
{ |
|
|
|
|
var staffs = await Db.Queryable<Ghra_Staff>().Where(x => reportIds.Contains(x.StaffID)).ToListAsync(); |
|
|
|
|
|
|
|
|
|
entitys.ForEach(rule => |
|
|
|
|
{ |
|
|
|
|
rule.ReportName = staffs.FirstOrDefault(o => rule.ReportId == o.StaffID)?.StaffName; |
|
|
|
|
rule.ApplicantName = staffs.FirstOrDefault(o => rule.ApplicantId == o.StaffID)?.StaffName; |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (deptIds.Any()) |
|
|
|
|
{ |
|
|
|
|
var depts = await Db.Queryable<Ghro_Dept>().Where(x => deptIds.Contains(x.DeptID)).ToListAsync(); |
|
|
|
|
|
|
|
|
|
entitys.ForEach(rule => |
|
|
|
|
{ |
|
|
|
|
rule.DeptName = depts.FirstOrDefault(o => rule.DeptId == o.DeptID)?.DeptName; |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (titleIds.Any()) |
|
|
|
|
{ |
|
|
|
|
var titles = await Db.Queryable<Ghra_Title>().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<Ghra_Grade>().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<Ghra_Job>().Where(x => jobIds.Contains(x.JobID)).ToListAsync(); |
|
|
|
|
|
|
|
|
|
entitys.ForEach(rule => |
|
|
|
|
{ |
|
|
|
|
rule.JobName = jobs.FirstOrDefault(o => rule.JobId == o.JobID)?.JobName; |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < entitys.Count; i++) |
|
|
|
|
{ |
|
|
|
|
await SetLabel(entitys[i]); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
result.result.DT_TableDataT1 = entitys; |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<long> Add(InsertGhrh_OfferApplyOrderInput entity) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
entity.OrderNo = await GenerateContinuousSequence("Ghrh_OfferApplyOrder", "OrderNo", "LYSQ"); |
|
|
|
|
entity.ApplicantId = GetStaffId(); |
|
|
|
|
entity.ApplyTime = DateTime.Now; |
|
|
|
|
var id = await base.Add(entity); |
|
|
|
|
|
|
|
|
|
if (entity.Items.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
entity.Items.ForEach(x => |
|
|
|
|
{ |
|
|
|
|
x.OrderId = id; |
|
|
|
|
}); |
|
|
|
|
await _ghrh_OfferApplyOrderSalaryServices.Add(entity.Items); |
|
|
|
|
} |
|
|
|
|
return id; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<bool> Update(long Id, EditGhrh_OfferApplyOrderInput editModel) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
return await base.Update(Id, editModel); |
|
|
|
|
} |
|
|
|
|
} |