Files
kunshan-bzfm-mes-backend/DOAN.Service/MES/Group/GroupPersonService.cs
2025-03-12 15:32:38 +08:00

137 lines
4.2 KiB
C#

using System;
using SqlSugar;
using Infrastructure.Attribute;
using Infrastructure.Extensions;
using DOAN.Model;
using DOAN.Model.Dto;
using DOAN.Model.MES.group;
using DOAN.Model.MES.group.Dto;
using DOAN.Repository;
using DOAN.Service.group.IService;
using System.Linq;
namespace DOAN.Service.group
{
/// <summary>
/// 人员Service业务层处理
/// </summary>
[AppService(ServiceType = typeof(IGroupPersonService), ServiceLifetime = LifeTime.Transient)]
public class GroupPersonService : BaseService<GroupPerson>, IGroupPersonService
{
public List<GroupPost> GetDescendants(List<GroupPost> nodes, string rootId)
{
var descendants = new List<GroupPost>();
void FindChildren(GroupPost node)
{
var children = nodes.Where(n => n.ParentId == node.Id).ToList();
foreach (var child in children)
{
descendants.Add(child);
FindChildren(child);
}
}
var rootNode = nodes.FirstOrDefault(n => n.Id == rootId);
if (rootNode != null)
{
FindChildren(rootNode);
}
return descendants;
}
/// <summary>
/// 查询人员列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public PagedInfo<GroupPersonDto> GetList(GroupPersonQueryDto parm)
{
string[] FkPostArray_all = null;
if (!string.IsNullOrEmpty(parm.FkPost))
{
string[] FkPostArray= FkPostArray = GetDescendants(Context.Queryable<GroupPost>().ToList(), parm.FkPost)
.Select(it=>it.Id).ToArray();
FkPostArray_all = new string[] { parm.FkPost }.Concat(FkPostArray).ToArray();
}
var predicate = Expressionable.Create<GroupPerson>()
.AndIF(!string.IsNullOrEmpty(parm.WorkNum),it=>it.WorkNum.Contains(parm.WorkNum))
.AndIF(!string.IsNullOrEmpty(parm.Name),it=>it.Name.Contains(parm.Name))
.AndIF(parm.Status>=0,it=>it.Status==parm.Status)
.AndIF(FkPostArray_all!=null&&FkPostArray_all.Length>0, it=> FkPostArray_all.Contains(it.FkPost))
;
var query = Queryable()
.Where(predicate.ToExpression());
var response= Context.Queryable(query)
.LeftJoin<GroupPost>((q,p)=>q.FkPost==p.Id)
.Select((q, p) => new GroupPersonDto { PostName=p.PostName },true)
.ToPage<GroupPersonDto, GroupPersonDto>(parm);
return response;
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public GroupPerson GetInfo(string Id)
{
var response = Queryable()
.Where(x => x.Id == Id)
.First();
return response;
}
/// <summary>
/// 添加人员
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public GroupPerson AddGroupPerson(GroupPerson model)
{
model.Id = XueHua;
return Context.Insertable(model).ExecuteReturnEntity();
}
/// <summary>
/// 修改人员
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int UpdateGroupPerson(GroupPerson model)
{
//var response = Update(w => w.Id == model.Id, it => new GroupPerson()
//{
// FkPost = model.FkPost,
// WorkNum = model.WorkNum,
// Name = model.Name,
// EmploymentTime = model.EmploymentTime,
// DepartureTime = model.DepartureTime,
// Phone = model.Phone,
// Status = model.Status,
// CreatedBy = model.CreatedBy,
// CreatedTime = model.CreatedTime,
// UpdatedBy = model.UpdatedBy,
// UpdatedTime = model.UpdatedTime,
//});
//return response;
return Update(model, true);
}
}
}