diff --git a/Tiobon.Core.Api/Controllers/Ghre/Ghre_StaffGroupController.cs b/Tiobon.Core.Api/Controllers/Ghre/Ghre_StaffGroupController.cs index 11d8849b..a70b1b56 100644 --- a/Tiobon.Core.Api/Controllers/Ghre/Ghre_StaffGroupController.cs +++ b/Tiobon.Core.Api/Controllers/Ghre/Ghre_StaffGroupController.cs @@ -11,4 +11,8 @@ public class Ghre_StaffGroupController : BaseController> QueryStaff([FromBody] QueryBody body, long id) => await _service.QueryStaff(id, body, null); + } \ No newline at end of file diff --git a/Tiobon.Core.IServices/Ghre/IGhre_StaffGroupServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_StaffGroupServices.cs index 49a9874d..9296d55f 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_StaffGroupServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_StaffGroupServices.cs @@ -1,8 +1,12 @@ -namespace Tiobon.Core.IServices; +using Tiobon.Core.Common; +using Tiobon.Core.Model; + +namespace Tiobon.Core.IServices; /// /// 员工群组(自定义服务接口) /// public interface IGhre_StaffGroupServices : IBaseServices { + Task> QueryStaff(long id, QueryBody filter, string condition, bool? IsEnable = true); } \ No newline at end of file diff --git a/Tiobon.Core.Model/View/Ghre/Ghre_StaffGroup.Dto.View.cs b/Tiobon.Core.Model/View/Ghre/Ghre_StaffGroup.Dto.View.cs index bb3f79d8..6c80fa40 100644 --- a/Tiobon.Core.Model/View/Ghre/Ghre_StaffGroup.Dto.View.cs +++ b/Tiobon.Core.Model/View/Ghre/Ghre_StaffGroup.Dto.View.cs @@ -35,12 +35,12 @@ public class Ghre_StaffGroupDto : Ghre_StaffGroup /// /// 直间接 /// - public List StaffType1s { get; set; } = new List(); + public List StaffType1s { get; set; } = new List(); /// /// 用工形式 /// - public List StaffType2s { get; set; } = new List(); + public List StaffType2s { get; set; } = new List(); /// /// 厂区 diff --git a/Tiobon.Core.Services/BASE/BaseServices.cs b/Tiobon.Core.Services/BASE/BaseServices.cs index fdb2e9b3..c8af02f9 100644 --- a/Tiobon.Core.Services/BASE/BaseServices.cs +++ b/Tiobon.Core.Services/BASE/BaseServices.cs @@ -1376,6 +1376,42 @@ ORDER BY SortNo ASC"; } return list; } + + + public async Task GetParaLabel(int? id) + { + string label = string.Empty; + + if (id.IsNullOrEmpty()) + return null; + var ParaMasterNo = DbAccess.ExecuteScalar(@$"SELECT ParaMasterNo +FROM Ghrs_ParaDetail +WHERE ParaDetailId ='{id}'"); + + var list = await _caching.GetAsync>(ParaMasterNo.ObjToString()); + if (list == null || (list != null && !list.Any())) + { + string sql = $@"SELECT * +FROM Ghrs_ParaDetail +WHERE ParaMasterId IN (SELECT ParaMasterId + FROM Ghrs_ParaMaster + WHERE ParaMasterNo = '{ParaMasterNo}' + AND ParaTypeNo IN ('GhrStaff', + 'GHRPara', + 'Train', + 'Resume', + 'GHRAttend')) + AND IsEnable = 1 +ORDER BY SortNo ASC"; + list = DbAccess.QueryList(sql); + if (list.Any()) + await _caching.SetAsync(ParaMasterNo.ObjToString(), list); + } + + if (list.Any(x => x.ParaDetailId == id)) + label = list.FirstOrDefault(x => x.ParaDetailId == id)?.ParaDetailName; + return label; + } #endregion #region 处理json查询条件 diff --git a/Tiobon.Core.Services/CommonServices.cs b/Tiobon.Core.Services/CommonServices.cs index cd25b793..62752ae1 100644 --- a/Tiobon.Core.Services/CommonServices.cs +++ b/Tiobon.Core.Services/CommonServices.cs @@ -2059,6 +2059,15 @@ public partial class CommonServices : BaseServices>, ICommon icon = "ghr-clear", position = "left" }); + result.JM_PageControlT1.Toolbar.Add(new Toolbar() + { + display = true, + fnKey = "TBD6YN", + fnTitle = "查看人员", + fnType = "row", + icon = "ghr-preview", + position = "left" + }); break; } diff --git a/Tiobon.Core.Services/Ghre/Ghre_StaffGroupServices.cs b/Tiobon.Core.Services/Ghre/Ghre_StaffGroupServices.cs index 0534fc84..f6aeb3ac 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_StaffGroupServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_StaffGroupServices.cs @@ -30,8 +30,8 @@ public class Ghre_StaffGroupServices : BaseServices(); result.result.DT_TableDataT1.ForEach(async x => { - x.StaffType1s = JsonHelper.JsonToObj>(x.StaffType1); - x.StaffType2s = JsonHelper.JsonToObj>(x.StaffType2); + 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); @@ -61,17 +61,19 @@ public class Ghre_StaffGroupServices : BaseServices(); + var StaffType2s = new List(); for (int i = 0; i < x.StaffType1s.Count; i++) { - x.StaffType1s[i] = await GetParaLabel("StaffType1", x.StaffType1s[i]); + StaffType1s.Add(await GetParaLabel(x.StaffType1s[i])); } for (int i = 0; i < x.StaffType2s.Count; i++) { - x.StaffType2s[i] = await GetParaLabel("StaffType2", x.StaffType2s[i]); + StaffType2s.Add(await GetParaLabel(x.StaffType2s[i])); } - x.StaffType1 = string.Join(",", x.StaffType1s); - x.StaffType2 = string.Join(",", x.StaffType2s); + x.StaffType1 = string.Join(",", StaffType1s); + x.StaffType2 = string.Join(",", StaffType2s); }); @@ -237,8 +239,8 @@ public class Ghre_StaffGroupServices : BaseServices>(DT_TableDataT1.StaffType1); - DT_TableDataT1.StaffType2s = JsonHelper.JsonToObj>(DT_TableDataT1.StaffType2); + 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); @@ -255,4 +257,106 @@ public class Ghre_StaffGroupServices : BaseServices> QueryStaff(long id, QueryBody filter, string condition, bool? IsEnable = true) + { + var x = await base.QueryById(id); + + 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); + + var query = Db.Queryable(); + + #region 处理查询条件 + var whereExpression = Expressionable.Create(); + foreach (JProperty jProperty in filter.jsonParam.Properties()) + { + var name = jProperty.Name; + var value = jProperty.Value.ToString(); + if (name == "page" || name == "pageSize") + continue; + if (value.IsNotEmptyOrNull()) + { + var jsonParam = JsonHelper.JsonToObj(value); + + switch (name) + { + //case "WaitRecommend": + // if (jsonParam.columnValue.ObjToInt() == 1) + // whereExpression.And(x => x.Status == DIC_INTERVIEW_ORDER_STATUS.WaitRecommended); + // break; + + + + // break; + default: + break; + } + } + } + + if (x.StaffType1s.Any()) + whereExpression.And(o => x.StaffType1s.Contains(o.StaffType1)); + if (x.StaffType2s.Any()) + whereExpression.And(o => x.StaffType1s.Contains(o.StaffType2)); + + if (x.ZoneIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.ZoneIds.Contains(o.ZoneID.Value)); + if (x.ExclZoneIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.ExclZoneIds.Contains(o.ZoneID.Value)); + + if (x.DeptIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.DeptIds.Contains(o.DeptID.Value)); + if (x.ExclDeptIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.ExclDeptIds.Contains(o.DeptID.Value)); + + if (x.TitleIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.TitleIds.Contains(o.TitleID.Value)); + if (x.ExclTitleIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.ExclTitleIds.Contains(o.TitleID.Value)); + + if (x.GradeIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.GradeIds.Contains(o.GradeID.Value)); + if (x.ExclGradeIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.ExclGradeIds.Contains(o.GradeID.Value)); + + if (x.GradeIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.GradeIds.Contains(o.GradeID.Value)); + if (x.ExclGradeIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.ExclGradeIds.Contains(o.GradeID.Value)); + + if (x.JobIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.JobIds.Contains(o.JobID.Value)); + if (x.ExclJobIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.ExclJobIds.Contains(o.JobID.Value)); + + if (x.StaffIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.StaffIds.Contains(o.StaffID)); + if (x.ExclStaffIds.Any()) + whereExpression.And(o => o.ZoneID != null && x.ExclStaffIds.Contains(o.StaffID)); + #endregion + + RefAsync total = 0; + var entitys = await query + .WhereIF(condition.IsNotEmptyOrNull(), condition) + .Where(whereExpression.ToExpression()) + .OrderBy(it => new { UpdateTime = SqlFunc.Desc(it.UpdateTime), CreateTime = SqlFunc.Desc(it.CreateTime) }) + .ToPageListAsync(filter.pageNum, filter.pageSize, total); + var result = new ServicePageResult(filter.pageNum, total, filter.pageSize, Mapper.Map(entitys).ToANew>()); + + + return result; + } } \ No newline at end of file