|
|
@ -2,6 +2,7 @@ |
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
using Shentun.WebPeis.Enums; |
|
|
using Shentun.WebPeis.Enums; |
|
|
using Shentun.WebPeis.Models; |
|
|
using Shentun.WebPeis.Models; |
|
|
|
|
|
using Shentun.WebPeis.OrganizationUnits; |
|
|
using System; |
|
|
using System; |
|
|
using System.Collections.Generic; |
|
|
using System.Collections.Generic; |
|
|
using System.Linq; |
|
|
using System.Linq; |
|
|
@ -139,5 +140,111 @@ namespace Shentun.WebPeis.Asbitems |
|
|
return entdto; |
|
|
return entdto; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取组合项目 根据项目类别
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost("api/app/Asbitem/GetBasicListByItemTypeId")] |
|
|
|
|
|
public async Task<List<BasicAsbitemDto>> GetBasicListByItemTypeIdAsync(ItemTypeIdInputDto input) |
|
|
|
|
|
{ |
|
|
|
|
|
var query = await _repository.GetQueryableAsync(); |
|
|
|
|
|
if (input.ItemTypeId != null) |
|
|
|
|
|
{ |
|
|
|
|
|
var itemTypeIds = await GetItemTypeChildrenId(input.ItemTypeId.Value); |
|
|
|
|
|
query = query.Where(m => itemTypeIds.Contains(m.ItemTypeId)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var entdto = query.Select(s => new BasicAsbitemDto |
|
|
|
|
|
{ |
|
|
|
|
|
AsbitemId = s.AsbitemId, |
|
|
|
|
|
AsbitemName = s.AsbitemName, |
|
|
|
|
|
DisplayOrder = s.DisplayOrder, |
|
|
|
|
|
ShortName = s.ShortName, |
|
|
|
|
|
SimpleCode = s.SimpleCode |
|
|
|
|
|
}).OrderBy(o => o.DisplayOrder).ToList(); |
|
|
|
|
|
|
|
|
|
|
|
return entdto; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取项目类别树型结构
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost("api/app/ItemType/GetByCodeAll")] |
|
|
|
|
|
public async Task<List<TreeChildViewDto>> GetByCodeAllAsync() |
|
|
|
|
|
{ |
|
|
|
|
|
var dataList = await _itemTypeRepository.GetListAsync(); |
|
|
|
|
|
var items = from p in dataList.OrderBy(o => o.DisplayOrder) |
|
|
|
|
|
select new TreeChildViewDto() |
|
|
|
|
|
{ |
|
|
|
|
|
Id = p.ItemTypeId, |
|
|
|
|
|
ParentId = p.ParentId, |
|
|
|
|
|
Code = p.PathCode, |
|
|
|
|
|
DisplayName = p.ItemTypeName, |
|
|
|
|
|
SimpleCode = p.SimpleCode, |
|
|
|
|
|
DisplayOrder = p.DisplayOrder |
|
|
|
|
|
}; |
|
|
|
|
|
return GetTree(items.ToList(), null); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 递归查询项目类别
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="items"></param>
|
|
|
|
|
|
/// <param name="parentId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private List<TreeChildViewDto> GetTree(List<TreeChildViewDto> items, Guid? parentId) |
|
|
|
|
|
{ |
|
|
|
|
|
return (from p in items.AsParallel() |
|
|
|
|
|
where p.ParentId == parentId |
|
|
|
|
|
orderby p.DisplayOrder ascending |
|
|
|
|
|
let subs = GetTree(items, p.Id) |
|
|
|
|
|
select new TreeChildViewDto() |
|
|
|
|
|
{ |
|
|
|
|
|
Id = p.Id, |
|
|
|
|
|
ParentId = p.ParentId, |
|
|
|
|
|
Code = p.Code, |
|
|
|
|
|
DisplayName = p.DisplayName, |
|
|
|
|
|
SimpleCode = p.SimpleCode, |
|
|
|
|
|
TreeChildren = subs.ToList() |
|
|
|
|
|
} |
|
|
|
|
|
).ToList(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取包含子级的ID
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="itemTypeId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private async Task<List<Guid?>> GetItemTypeChildrenId(Guid itemTypeId) |
|
|
|
|
|
{ |
|
|
|
|
|
//var customerOrgEntList = await _repository.GetListAsync();
|
|
|
|
|
|
|
|
|
|
|
|
var itemType = await _itemTypeRepository.GetAsync(g => g.ItemTypeId == itemTypeId); |
|
|
|
|
|
var itemTypeEntList = await _itemTypeRepository.GetListAsync(o => o.PathCode.StartsWith(itemType.PathCode)); |
|
|
|
|
|
List<Guid?> itemTypeIds = new List<Guid?>(); |
|
|
|
|
|
|
|
|
|
|
|
GetChildren(itemTypeEntList, itemTypeId, itemTypeIds); |
|
|
|
|
|
|
|
|
|
|
|
return itemTypeIds; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void GetChildren(List<ItemType> itemTypeEntList, Guid itemTypeId, List<Guid?> itemTypeIds) |
|
|
|
|
|
{ |
|
|
|
|
|
itemTypeIds.Add(itemTypeId); |
|
|
|
|
|
var entlist = itemTypeEntList.Where(m => m.ParentId == itemTypeId).ToList(); |
|
|
|
|
|
if (entlist.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
foreach (var ent in entlist) |
|
|
|
|
|
{ |
|
|
|
|
|
GetChildren(itemTypeEntList, ent.ItemTypeId, itemTypeIds); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |