|
|
|
@ -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>
|
|
|
|
|