Browse Source

danwei

bjmzak
wxd 1 year ago
parent
commit
6a30e2e5b6
  1. 76
      src/Shentun.Peis.Application/CustomerOrgs/CustomerOrgAppService.cs

76
src/Shentun.Peis.Application/CustomerOrgs/CustomerOrgAppService.cs

@ -311,7 +311,9 @@ namespace Shentun.Peis.CustomerOrgs
}
}
var items = from p in dataList.Where(m => m.Id != GuidFlag.PersonCustomerOrgId).OrderByDescending(o => o.DisplayOrder)
var customerOrgList = dataList.ToList();
var items = from p in customerOrgList.Where(m => m.Id != GuidFlag.PersonCustomerOrgId).OrderByDescending(o => o.DisplayOrder).AsParallel()
select new CustomerOrgTreeChildDto()
{
Id = p.Id,
@ -320,28 +322,55 @@ namespace Shentun.Peis.CustomerOrgs
DisplayName = p.DisplayName,
SimpleCode = p.SimpleCode,
ShortName = p.ShortName,
CustomerOrgCode = p.CustomerOrgCode
CustomerOrgCode = p.CustomerOrgCode,
TreeChildren = new List<CustomerOrgTreeChildDto>()
};
var customerOrgTreeChildList = GetTree(items.ToList(), 0, "");
var customerOrgTreeChildList = GetTree(items.ToList(), null);
//var tree1 = items.Where(m => m.ParentId == null).ToList();
//foreach (var item1 in tree1)
//{
// item1.TreeChildren = items.Where(m => m.ParentId == item1.Id).ToList();
// foreach (var item2 in item1.TreeChildren)
// {
// item2.TreeChildren = items.Where(m => m.ParentId == item2.Id).ToList();
// foreach (var item3 in item2.TreeChildren)
// {
// item3.TreeChildren = items.Where(m => m.ParentId == item3.Id).ToList();
// foreach (var item4 in item3.TreeChildren)
// {
// item4.TreeChildren = items.Where(m => m.ParentId == item4.Id).ToList();
// }
// }
// }
//}
result.AddRange(customerOrgTreeChildList);
return result;
}
/// <summary>
/// 使用Code进行递归
/// 使用parentId进行递归
/// </summary>
/// <param name="items"></param>
/// <param name="deep"></param>
/// <param name="prefix"></param>
/// <param name="parentId"></param>
/// <returns></returns>
private List<CustomerOrgTreeChildDto> GetTree(List<CustomerOrgTreeChildDto> items, int deep, string prefix)
private List<CustomerOrgTreeChildDto> GetTree(List<CustomerOrgTreeChildDto> items, Guid? parentId)
{
return (from p in items
where p.Code.StartsWith(prefix) && p.Code.Count(a => a == '.') == deep
let subs = GetTree(items, deep + 1, p.Code)
return (from p in items.AsParallel()
where p.ParentId == parentId
let subs = GetTree(items, p.Id)
select new CustomerOrgTreeChildDto()
{
Id = p.Id,
@ -357,6 +386,33 @@ namespace Shentun.Peis.CustomerOrgs
}
///// <summary>
///// 使用Code进行递归
///// </summary>
///// <param name="items"></param>
///// <param name="deep"></param>
///// <param name="prefix"></param>
///// <returns></returns>
//private List<CustomerOrgTreeChildDto> GetTree(List<CustomerOrgTreeChildDto> items, int deep, string prefix)
//{
// return (from p in items
// where p.Code.StartsWith(prefix) && p.Code.Count(a => a == '.') == deep
// let subs = GetTree(items, deep + 1, p.Code)
// select new CustomerOrgTreeChildDto()
// {
// Id = p.Id,
// ParentId = p.ParentId,
// Code = p.Code,
// DisplayName = p.DisplayName,
// SimpleCode = p.SimpleCode,
// ShortName = p.ShortName,
// CustomerOrgCode = p.CustomerOrgCode,
// TreeChildren = subs.ToList()
// }
// ).ToList();
//}
/// <summary>
/// 获取顶级目录ID
/// </summary>

Loading…
Cancel
Save