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

135 lines
3.8 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;
using DOAN.Common;
namespace DOAN.Service.group
{
/// <summary>
/// 岗位Service业务层处理
/// </summary>
[AppService(ServiceType = typeof(IGroupPostService), ServiceLifetime = LifeTime.Transient)]
public class GroupPostService : BaseService<GroupPost>, IGroupPostService
{
/// <summary>
/// 查询岗位列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public PagedInfo<GroupPostDto> GetList(GroupPostQueryDto parm)
{
var predicate = Expressionable.Create<GroupPost>()
.AndIF(!string.IsNullOrEmpty(parm.PostName), it => it.PostName.Contains(parm.PostName));
;
var response = Queryable()
.Where(predicate.ToExpression())
.ToPage<GroupPost, GroupPostDto>(parm);
return response;
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public GroupPost GetInfo(string Id)
{
var response = Queryable()
.Where(x => x.Id == Id)
.First();
return response;
}
/// <summary>
/// 添加岗位
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public GroupPost AddGroupPost(GroupPost model)
{
model.Id = XueHua;
if (string.IsNullOrEmpty(model.ParentId))
{
model.ParentId = "0";
}
return Context.Insertable(model).ExecuteReturnEntity();
}
/// <summary>
/// 修改岗位
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int UpdateGroupPost(GroupPost model)
{
//var response = Update(w => w.Id == model.Id, it => new GroupPost()
//{
// PostName = model.PostName,
// Status = model.Status,
// Remark = model.Remark,
// CreatedBy = model.CreatedBy,
// CreatedTime = model.CreatedTime,
// UpdatedBy = model.UpdatedBy,
// UpdatedTime = model.UpdatedTime,
//});
//return response;
return Update(model, true);
}
/// <summary>
/// 删除岗位包括子
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public int RemoveGroupPost(string[] ids)
{
List<GroupPost> all_nodes = Context.Queryable<GroupPost>().ToList();
List<GroupPost> Descendants = GetDescendants(all_nodes, ids[0]);
List<string> children = Descendants.Select(it => it.Id).ToList();
children.Add(ids[0]);
return Delete(children.ToArray());
}
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;
}
}
}