You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Tiobon.Web.Core/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServi...

109 lines
4.0 KiB

using Elasticsearch.Net;
using NPOI.Util.Collections;
namespace Tiobon.Core.Services;
/// <summary>
/// 年度人力配置 (服务)
/// </summary>
public class Ghrh_YearHumanSettingsServices : BaseServices<Ghrh_YearHumanSettings, Ghrh_YearHumanSettingsDto, InsertGhrh_YearHumanSettingsInput, EditGhrh_YearHumanSettingsInput>, IGhrh_YearHumanSettingsServices
{
private readonly IBaseRepository<Ghrh_YearHumanSettings> _dal;
private readonly ICommonServices _commonServices;
public Ghrh_YearHumanSettingsServices(ICaching caching, IBaseRepository<Ghrh_YearHumanSettings> dal, ICommonServices commonServices)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
_commonServices = commonServices;
}
public override async Task<ServicePageResult<Ghrh_YearHumanSettingsDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{
var result = await base.QueryFilterPage(filter, condition, IsEnable);
var entitys = result.result.DT_TableDataT1;
int? year = null;
if (filter.jsonParam != null)
foreach (JProperty jProperty in filter.jsonParam.Properties())
{
var name = jProperty.Name;
var value = jProperty.Value.ToString();
if (name == "Year")
{
var jsonParam = JsonHelper.JsonToObj<JsonParam>(value);
year = jsonParam.columnValue.ObjToInt();
}
}
var deptIds = entitys.Where(x => x.DeptId != null).Select(x => x.DeptId).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 jobIds = entitys.Where(x => x.JobId != null).Select(x => x.JobId).ToList();
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;
});
}
result.result.DT_TableDataT1 = entitys;
ModuleParam param = new ModuleParam()
{
langId = filter.langId,
menuName = filter.menuName
};
var module = await _commonServices.GetModuleInfoAsync(param);
result.result.JM_TableColumnT1 = module.Data.JM_TableColumnT1;
var yearField = module.Data.JM_TableColumnT1.TableColumn.Where(x => x.field == "Year").SingleOrDefault();
if (year != yearField?.searchColumnDefaultValue.ObjToInt())
{
result.result.JM_TableColumnT1.TableColumn?.ForEach(x =>
{
int month = x.field.Replace("M", null).ObjToInt();
if (x.GroupName == "预算编制数")
x.label = year + "-" + x.field.Replace("M", null);
if (month == 12)
year++;
});
}
return result;
}
}