using System.Dynamic; using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; using JNPF.Common.Extension; using JNPF.Common.Filter; using JNPF.Common.Security; using JNPF.FriendlyException; using JNPF.Systems.Entitys.Permission; using JNPF.Systems.Interfaces.System; using JNPF.VisualDev; using JNPF.VisualDev.Entitys; using JNPF.VisualDev.Entitys.Dto.VisualDevModelData; using JNPF.VisualDev.Interfaces; using Mapster; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NPOI.SS.Formula.Functions; using Senparc.Weixin.MP.AdvancedAPIs.Card; using SqlSugar; using Tnb.BasicData.Entities; using Tnb.EquipMgr; using Tnb.EquipMgr.Entities; using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Consts; using Tnb.WarehouseMgr.Entities.Dto; using Tnb.WarehouseMgr.Entities.Dto.Inputs; using Tnb.WarehouseMgr.Entities.Entity; using Tnb.WarehouseMgr.Entities.Enums; using Tnb.WarehouseMgr.Interfaces; using Top.Api; namespace Tnb.WarehouseMgr { /// /// 载具绑定 /// [OverideVisualDev(ModuleConsts.MODULE_WMSTRANSFERINSTOCKH_ID)] public class TransferInstockHService : BaseWareHouseService { private readonly ISqlSugarClient _db; private readonly IRunService _runService; private readonly IVisualDevService _visualDevService; private readonly IUserManager _userManager; private readonly IBillRullService _billRullService; public TransferInstockHService( ISqlSugarRepository repository, IRunService runService, IVisualDevService visualDevService, IUserManager userManager, IBillRullService billRullService) { _db = repository.AsSugarClient(); _runService = runService; _visualDevService = visualDevService; _userManager = userManager; _billRullService = billRullService; //OverideFuncs.GetListAsync = GetList; } [NonAction] private async Task GetList(VisualDevModelListQueryInput input) { try { SqlSugarPagedList result = await _db.Queryable() .ToPagedListAsync(input.currentPage, input.pageSize); var _data = PageResult.SqlSugarPageResult(result); var json = JsonConvert.SerializeObject(_data); var data = JsonConvert.DeserializeObject(json); JArray mainTable = data.list; var wmsTransferInstockDs = _db.Queryable().LeftJoin((a, b) => a.material_id == b.id).Where((a, b) => mainTable.Select(r => r["id"].ToString()).ToList().Contains(a.bill_id)).Select((a, b) => new TransferInstockDListOutput { id = a.id, org_id = a.org_id, bill_id = a.bill_id, status = a.status, material_id = a.material_id, material_code = a.material_code, unit_id = a.unit_id, unit_code = a.unit_code, pr_qty = a.pr_qty, xf_qty = a.xf_qty, qty = a.qty, f_flowid = a.f_flowid, f_flowtaskid = a.f_flowtaskid, material_desc = a.material_desc, create_id = a.create_id, create_time = a.create_time, modify_id = a.modify_id, modify_time = a.modify_time, pi_code = a.pi_code, stock_location = a.stock_location, erp_line_pk = a.erp_line_pk, lineno = a.lineno, material_name = a.material_name, auxprop = a.auxprop, auxprop_gys = a.auxprop_gys, auxprop_xph = a.auxprop_xph, udi_code = a.udi_code, material_specification = a.material_specification, material_standard = b.material_standard }); foreach (JObject wmsTransferInstockH in mainTable) { wmsTransferInstockH["tablefield105"] = JArray.Parse(JsonConvert.SerializeObject(wmsTransferInstockDs.Where(r => r.bill_id == wmsTransferInstockH["id"].ToString()).ToList())); } return data; } catch(Exception ex) { return Task.FromResult(ex); } } [HttpPost, NonUnify, AllowAnonymous] public async Task List(TransferInstockHListInput input) { try { JObject jobject = new JObject(); jobject["code"] = "200"; List wmsTransferInstockDs = _db.Queryable().LeftJoin((a, b) => a.material_id == b.id).Where((a, b) => a.bill_id == input.id).Select((a, b) => new WmsTransferInstockD { id = a.id, org_id = a.org_id, bill_id = a.bill_id, status = a.status, material_id = a.material_id, material_code = a.material_code, unit_id = a.unit_id, unit_code = a.unit_code, pr_qty = a.pr_qty, xf_qty = a.xf_qty, qty = a.qty, f_flowid = a.f_flowid, f_flowtaskid = a.f_flowtaskid, material_desc = a.material_desc, create_id = a.create_id, create_time = a.create_time, modify_id = a.modify_id, modify_time = a.modify_time, pi_code = a.pi_code, stock_location = a.stock_location, erp_line_pk = a.erp_line_pk, lineno = a.lineno, material_name = a.material_name, auxprop = a.auxprop, auxprop_gys = a.auxprop_gys, auxprop_xph = a.auxprop_xph, udi_code = a.udi_code, material_specification = a.material_specification, }).ToList(); jobject["data"] = JArray.Parse(JsonConvert.SerializeObject(wmsTransferInstockDs)); return await Task.FromResult(jobject); } catch (Exception ex) { return Task.FromResult(ex); } } } }