| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- namespace Admin.NET.Plugin.AiDOP.Universal;
- /// <summary>
- /// 通用物料选择服务 📦
- /// 路由前缀:/api/Universal
- /// </summary>
- [ApiDescriptionSettings(Order = 279, Description = "通用-物料选择")]
- [Route("api/Universal")]
- [AllowAnonymous]
- [NonUnify]
- public class UniversalItemService : IDynamicApiController, ITransient
- {
- private readonly SqlSugarRepository<ItemMaster> _itemRep;
- public UniversalItemService(SqlSugarRepository<ItemMaster> itemRep)
- {
- _itemRep = itemRep;
- }
- /// <summary>获取物料选择分页列表 📦</summary>
- [DisplayName("获取物料选择列表")]
- [HttpGet("item/page")]
- public async Task<object> GetItemPage([FromQuery] UniversalItemPageInput input)
- {
- var query = _itemRep.AsQueryable()
- .WhereIF(!string.IsNullOrWhiteSpace(input.ItemNum), u => u.ItemNum!.Contains(input.ItemNum!.Trim()))
- .WhereIF(!string.IsNullOrWhiteSpace(input.Descr), u => u.Descr!.Contains(input.Descr!.Trim()));
- bool isDesc = string.Equals(input.SortOrder, "desc", StringComparison.OrdinalIgnoreCase);
- query = (input.SortField?.ToLower()) switch
- {
- "descr" => isDesc ? query.OrderByDescending(u => u.Descr) : query.OrderBy(u => u.Descr),
- "descr1" => isDesc ? query.OrderByDescending(u => u.Descr1) : query.OrderBy(u => u.Descr1),
- "um" => isDesc ? query.OrderByDescending(u => u.UM) : query.OrderBy(u => u.UM),
- "location" => isDesc ? query.OrderByDescending(u => u.Location) : query.OrderBy(u => u.Location),
- "rev" => isDesc ? query.OrderByDescending(u => u.Rev) : query.OrderBy(u => u.Rev),
- "drawing" => isDesc ? query.OrderByDescending(u => u.Drawing) : query.OrderBy(u => u.Drawing),
- _ => isDesc ? query.OrderByDescending(u => u.ItemNum) : query.OrderBy(u => u.ItemNum),
- };
- var paged = await query
- .Select(u => new UniversalItemOutput
- {
- RecId = u.RecID.ToString(),
- ItemNum = u.ItemNum,
- Descr = u.Descr,
- Descr1 = u.Descr1,
- Um = u.UM,
- Location = u.Location,
- Rev = u.Rev,
- Drawing = u.Drawing,
- })
- .ToPagedListAsync(input.Page, input.PageSize);
- return new { total = paged.Total, page = input.Page, pageSize = input.PageSize, list = paged.Items };
- }
- }
|