using JNPF.Common.Core.Manager; using JNPF.Common.Filter; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.Systems.Entitys.Permission; using JNPF.Systems.Entitys.System; using JNPF.Systems.Interfaces.Permission; using JNPF.VisualDev; using JNPF.VisualDev.Entitys.Dto.VisualDevModelData; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using SqlSugar; using Tnb.BasicData; using Tnb.BasicData.Entities; using Tnb.EquipMgr.Entities; using Tnb.ProductionMgr.Entities; using Tnb.ProductionMgr.Entities.Dto; using Tnb.WarehouseMgr.Entities; namespace Tnb.ProductionMgr { /// /// 生产入库记录pc端 /// [ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] [OverideVisualDev(ModuleId)] public class PrdInstockRecordUpServicecs : IDynamicApiController, ITransient, IOverideVisualDevService { private readonly ISqlSugarRepository _repository; private readonly IUserManager _userManager; private readonly IOrganizeService _organizeService; private const string ModuleId = "30374667217173"; public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); public PrdInstockRecordUpServicecs( ISqlSugarRepository repository, IOrganizeService organizeService, IUserManager userManager ) { _repository = repository; _organizeService = organizeService; _userManager = userManager; OverideFuncs.GetListAsync = GetList; } private async Task GetList(VisualDevModelListQueryInput input) { var db = _repository.AsSugarClient(); Dictionary? queryJson = !string.IsNullOrEmpty(input.queryJson) ? JsonConvert.DeserializeObject>(input.queryJson) : new Dictionary(); string mo_task_code = queryJson.ContainsKey("mo_task_code") ? queryJson["mo_task_code"].ToString() : ""; string mo_code = queryJson.ContainsKey("mo_id") ? queryJson["mo_id"].ToString() : ""; // string workstation_id_str = queryJson.ContainsKey("workstation_id") ? queryJson["workstation_id"].ToString() : ""; // string workstation_id = ""; // if (!string.IsNullOrEmpty(workstation_id_str)) // { // string[] workstation_arr = JsonConvert.DeserializeObject(workstation_id_str); // if (workstation_arr != null && workstation_arr.Length > 0) // { // workstation_id = workstation_arr[workstation_arr.Length - 1]; // } // } if (string.IsNullOrEmpty(input.sidx)) { input.sidx = "a.create_time"; input.sort = "desc"; } else { input.sidx = "a." + input.sidx; } var result = await db.Queryable() .LeftJoin((a, b) => a.material_id == b.id) .LeftJoin((a,b,c)=>a.workstation_id==c.Id) .LeftJoin((a,b,c,d)=>a.mo_id==d.id) .LeftJoin((a,b,c,d,e)=>e.DictionaryTypeId==DictConst.PrdTaskStatusTypeId && a.mo_task_status==e.EnCode) .LeftJoin((a,b,c,d,e,f)=>a.workline_id==f.Id) .WhereIF(!string.IsNullOrEmpty(mo_task_code),a=>a.mo_task_code.Contains(mo_task_code)) .WhereIF(!string.IsNullOrEmpty(mo_code),(a,b,c,d,e)=>d.mo_code.Contains(mo_code)) .Where(a=>a.act_start_date!=null) .OrderBy($"{input.sidx} {input.sort}") .Select((a, b, c, d,e,f) => new PrdInstockRecordUpListOutPut() { id = a.id, mo_task_code = a.mo_task_code, mo_id = d.mo_code, material_id = b.name, workstation_id = c.FullName, mo_task_status = e.FullName, workline_id = f.FullName, act_start_date = a.act_start_date==null ? "" : a.act_start_date.Value.ToString(DbTimeFormat.SS), tablefield102 = SqlFunc.Subqueryable() .LeftJoin((x,y)=>x.create_id==y.Id) .LeftJoin((x,y,z)=>x.bill_type==z.Id) .Where(x=>x.mo_task_id==a.id).ToList((x,y,z)=>new PrdInstockRecordUpListChildOutPut() { id = x.id, code = x.code, bill_type = z.FullName, carry_code = x.carry_code, location_code = x.location_code, create_id = y.RealName, bill_date = x.bill_date==null ? "" : x.bill_date.ToString(DbTimeFormat.SS), }), }).ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(result); } } }