using JNPF.Common.Core.Manager; using JNPF.Common.Filter; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.Systems.Entitys.Permission; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using SqlSugar; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Interfaces; namespace Tnb.EquipMgr { /// /// 设备保养计划执行管理 /// [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] public class EqpSubEquipService : IEqpSubEquipService, IDynamicApiController, ITransient { private readonly ISqlSugarRepository _repository; private readonly IUserManager _userManager; public EqpSubEquipService(ISqlSugarRepository repository, IUserManager userManager) { _repository = repository; _userManager = userManager; } [HttpPost] public async Task GetSubEquipList(EquipQueryInput input) { ISqlSugarClient db = _repository.AsSugarClient(); Dictionary? queryJson = new(); if (!string.IsNullOrEmpty(input.queryJson)) { queryJson = JsonConvert.DeserializeObject>(input.queryJson); } SqlSugarPagedList result = await db.Queryable() .LeftJoin((a, b) => a.create_id == b.Id) .LeftJoin((a, b, c) => a.modify_id == c.Id) .LeftJoin((a, b, c, d) => a.equip_id == d.id) .Where((a, b, c, d) => a.equip_id == input.equip_id) .WhereIF(queryJson != null && queryJson.ContainsKey("code"), (a, b, c, d) => a.code.Contains(queryJson!["code"])) .WhereIF(queryJson != null && queryJson.ContainsKey("name"), (a, b, c, d) => a.name.Contains(queryJson!["name"])) .Select((a, b, c, d) => new SubEquipQueryOutput { id = a.id, create_id = b.RealName, create_id_id = a.create_id, create_time = a.create_time == null ? null : a.create_time.Value.ToString("yyyy-MM-dd"), equip_id = d.name, equip_id_id = a.equip_id, code = a.code, modify_id = c.RealName, modify_time = a.modify_time == null ? null : a.modify_time.Value.ToString("yyyy-MM-dd"), name = a.name, org_id = a.org_id, specification = a.specification, }).ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(result); } } }