using System; using System.Collections.Generic; using System.Dynamic; using System.Linq; using System.Text; using System.Threading.Tasks; using Aop.Api.Domain; using JNPF.Common.Extension; using JNPF.FriendlyException; using Mapster; using Microsoft.AspNetCore.Mvc; using SqlSugar; using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Dto; using Tnb.WarehouseMgr.Entities.Dto.Inputs; using Tnb.WarehouseMgr.Entities.Dto.Outputs; using Tnb.WarehouseMgr.Interfaces; namespace Tnb.WarehouseMgr { public class WmsCarryQueryService : BaseWareHouseService, IWmsCarryQueryService { private readonly ISqlSugarClient _db; public WmsCarryQueryService(ISqlSugarRepository repository) { _db = repository.AsSugarClient(); } /// /// 载具查询接口 /// /// /// [HttpPost,NonUnify] public async Task MESCarryQuery(MESCarryQueryInput input) { if (input.IsNull()) throw new ArgumentNullException("input"); var data = new List(); try { var carrys = await _db.Queryable() .InnerJoin((a, b) => a.collocation_scheme_id == b.id) .Where((a, b) => a.carry_code.Contains(input.carry_code) || b.bill_name.Contains(input.collocation_scheme_name)) .ToListAsync(); data = carrys.Adapt>(); } catch (Exception ex) { await _db.Ado.RollbackTranAsync(); return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message); } return ToApiResult(data); } /// /// 载具查询返回接口 /// /// /// [HttpPost] [NonUnify] public async Task MESCarryQueryResult(MESCarryQueryResultInput input) { if (input.IsNull()) throw new ArgumentNullException("input"); var data = new CarryQueryOutput(); try { var carry = await _db.Queryable().SingleAsync(it => it.carry_code == input.carry_code); var carryCodes = await _db.Queryable().Where(it => it.carry_id == carry.id).ToListAsync(); data = carry.Adapt(); data.wmsCarryCodes = carryCodes.Adapt>(); } catch (Exception ex) { await _db.Ado.RollbackTranAsync(); return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message); } return ToApiResult(JNPF.Common.Enums.HttpStatusCode.OK, data); } } }