|
|
|
@ -1,5 +1,8 @@ |
|
|
|
|
using Tiobon.Core.Common.DB.Dapper.Extensions; |
|
|
|
|
using Tiobon.Core.IServices; |
|
|
|
|
using NPOI.SS.Formula.Functions; |
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
using System.Data; |
|
|
|
|
using System.Linq; |
|
|
|
|
using Tiobon.Core.Model; |
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
|
|
|
|
@ -15,10 +18,199 @@ public class Ghre_StaffGroupServices : BaseServices<Ghre_StaffGroup, Ghre_StaffG |
|
|
|
|
base.BaseDal = dal; |
|
|
|
|
base._caching = caching; |
|
|
|
|
} |
|
|
|
|
public override async Task<ServicePageResult<Ghre_StaffGroupDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) |
|
|
|
|
{ |
|
|
|
|
var result = await base.QueryFilterPage(filter, condition, IsEnable); |
|
|
|
|
|
|
|
|
|
var zoneIds = new List<int>(); |
|
|
|
|
var exclZoneIds = new List<int>(); |
|
|
|
|
var deptIds = new List<int>(); |
|
|
|
|
var exclDeptIds = new List<int>(); |
|
|
|
|
var titleIds = new List<int>(); |
|
|
|
|
var exclTitleIds = new List<int>(); |
|
|
|
|
var gradeIds = new List<int>(); |
|
|
|
|
var exclgGradeIds = new List<int>(); |
|
|
|
|
var jobIds = new List<int>(); |
|
|
|
|
var exclJobIds = new List<int>(); |
|
|
|
|
var staffIds = new List<int>(); |
|
|
|
|
var exclStaffIds = new List<int>(); |
|
|
|
|
result.result.DT_TableDataT1.ForEach(async x => |
|
|
|
|
{ |
|
|
|
|
x.StaffType1s = JsonHelper.JsonToObj<List<string>>(x.StaffType1); |
|
|
|
|
x.StaffType2s = JsonHelper.JsonToObj<List<string>>(x.StaffType2); |
|
|
|
|
x.ZoneIds = JsonHelper.JsonToObj<List<int>>(x.ZoneId); |
|
|
|
|
x.ExclZoneIds = JsonHelper.JsonToObj<List<int>>(x.ExclZoneId); |
|
|
|
|
x.DeptIds = JsonHelper.JsonToObj<List<int>>(x.DeptId); |
|
|
|
|
x.ExclDeptIds = JsonHelper.JsonToObj<List<int>>(x.ExclDeptId); |
|
|
|
|
x.TitleIds = JsonHelper.JsonToObj<List<int>>(x.TitleId); |
|
|
|
|
x.ExclTitleIds = JsonHelper.JsonToObj<List<int>>(x.ExclTitleId); |
|
|
|
|
x.GradeIds = JsonHelper.JsonToObj<List<int>>(x.GradeId); |
|
|
|
|
x.ExclGradeIds = JsonHelper.JsonToObj<List<int>>(x.ExclGradeId); |
|
|
|
|
x.JobIds = JsonHelper.JsonToObj<List<int>>(x.JobId); |
|
|
|
|
x.ExclJobIds = JsonHelper.JsonToObj<List<int>>(x.ExclJobId); |
|
|
|
|
x.StaffIds = JsonHelper.JsonToObj<List<int>>(x.StaffId); |
|
|
|
|
x.ExclStaffIds = JsonHelper.JsonToObj<List<int>>(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<Ghra_Zone>().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<Ghro_Dept>().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<Ghra_Title>().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<Ghra_Grade>().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<Ghra_Job>().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<Ghra_Staff>().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<Ghra_Staff>().Where(x => sponsorIds.Contains(x.StaffID)).ToListAsync(); |
|
|
|
|
//var users = await Db.Queryable<Ghrs_User>().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<long> 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); |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -27,8 +219,46 @@ public class Ghre_StaffGroupServices : BaseServices<Ghre_StaffGroup, Ghre_StaffG |
|
|
|
|
|
|
|
|
|
public override async Task<bool> Update(long Id, EditGhre_StaffGroupInput entity) |
|
|
|
|
{ |
|
|
|
|
var result = await base.Update(Id, entity, null, ["Status"]); |
|
|
|
|
|
|
|
|
|
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<ServiceFormResult<Ghre_StaffGroupDto>> QueryForm(QueryForm body) |
|
|
|
|
{ |
|
|
|
|
var result = await base.QueryForm(body); |
|
|
|
|
var DT_TableDataT1 = result.result.DT_TableDataT1[0]; |
|
|
|
|
DT_TableDataT1.StaffType1s = JsonHelper.JsonToObj<List<string>>(DT_TableDataT1.StaffType1); |
|
|
|
|
DT_TableDataT1.StaffType2s = JsonHelper.JsonToObj<List<string>>(DT_TableDataT1.StaffType2); |
|
|
|
|
DT_TableDataT1.ZoneIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.ZoneId); |
|
|
|
|
DT_TableDataT1.ExclZoneIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.ExclZoneId); |
|
|
|
|
DT_TableDataT1.DeptIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.DeptId); |
|
|
|
|
DT_TableDataT1.ExclDeptIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.ExclDeptId); |
|
|
|
|
DT_TableDataT1.TitleIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.TitleId); |
|
|
|
|
DT_TableDataT1.ExclTitleIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.ExclTitleId); |
|
|
|
|
DT_TableDataT1.GradeIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.GradeId); |
|
|
|
|
DT_TableDataT1.ExclGradeIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.ExclGradeId); |
|
|
|
|
DT_TableDataT1.JobIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.JobId); |
|
|
|
|
DT_TableDataT1.ExclJobIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.ExclJobId); |
|
|
|
|
DT_TableDataT1.StaffIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.StaffId); |
|
|
|
|
DT_TableDataT1.ExclStaffIds = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1.ExclStaffId); |
|
|
|
|
result.result.DT_TableDataT1[0] = DT_TableDataT1; |
|
|
|
|
return result; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |