diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PrdFeedingRecordUpListOutPut.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PrdFeedingRecordUpListOutPut.cs new file mode 100644 index 00000000..f372822a --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PrdFeedingRecordUpListOutPut.cs @@ -0,0 +1,33 @@ +namespace Tnb.ProductionMgr.Entities.Dto +{ + public class PrdFeedingRecordUpListOutPut + { + public string id { get; set; } + public string mo_task_code { get; set; } + public string mo_task_status { get; set; } + public string mo_id { get; set; } + public string material_id { get; set; } + public string workstation_id { get; set; } + public string workline_id { get; set; } + public string act_start_date { get; set; } + public List tablefield102 { get; set; } = new List(); + } + + public class PrdFeedingRecordUpListChildOutPut + { + public string id { get; set; } + public string code { get; set; } + public string carry_code { get; set; } + public string create_id { get; set; } + public string create_time { get; set; } + } + + public class PrdFeedingRecordUpListDownOutPut + { + public string id { get; set; } + public string material_id { get; set; } + public string unit_id { get; set; } + public string num { get; set; } + public string batch { get; set; } + } +} \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdFeedingRecordUpServicecs.cs b/ProductionMgr/Tnb.ProductionMgr/PrdFeedingRecordUpServicecs.cs new file mode 100644 index 00000000..fccc8c4a --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr/PrdFeedingRecordUpServicecs.cs @@ -0,0 +1,111 @@ +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 PrdFeedingRecordUpServicecs : IDynamicApiController, ITransient, IOverideVisualDevService + { + private readonly ISqlSugarRepository _repository; + private readonly IUserManager _userManager; + private readonly IOrganizeService _organizeService; + private const string ModuleId = "30373723635221"; + public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); + + public PrdFeedingRecordUpServicecs( + 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 PrdFeedingRecordUpListOutPut() + { + 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) + .Where(x=>x.mo_task_id==a.id).ToList((x,y)=>new PrdFeedingRecordUpListChildOutPut() + { + id = x.id, + code = x.code, + carry_code = x.carry_code, + create_id = y.RealName, + create_time = x.create_time==null ? "" : x.create_time.Value.ToString(DbTimeFormat.SS), + + }), + }).ToPagedListAsync(input.currentPage, input.pageSize); + return PageResult.SqlSugarPageResult(result); + } + } +} \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdFeedingtRecordDownServicecs.cs b/ProductionMgr/Tnb.ProductionMgr/PrdFeedingtRecordDownServicecs.cs new file mode 100644 index 00000000..fc198de4 --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr/PrdFeedingtRecordDownServicecs.cs @@ -0,0 +1,78 @@ +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 PrdFeedingRecordDownServicecs : IDynamicApiController, ITransient, IOverideVisualDevService + { + private readonly ISqlSugarRepository _repository; + private readonly IUserManager _userManager; + private readonly IOrganizeService _organizeService; + private const string ModuleId = "30373784928789"; + public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); + + public PrdFeedingRecordDownServicecs( + 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 feeding_id = queryJson.ContainsKey("feeding_id") ? queryJson["feeding_id"].ToString() : ""; + if (string.IsNullOrEmpty(feeding_id)) + { + return new + { + pagination = new PageResult(), + list = Array.Empty() + }; + } + + var result = await db.Queryable() + .LeftJoin((a, b) => a.material_id == b.id) + .LeftJoin((a,b,c)=>c.EnCode==DictConst.MeasurementUnit) + .LeftJoin((a,b,c,d)=>a.unit_id==d.EnCode && c.Id==d.DictionaryTypeId) + .WhereIF(!string.IsNullOrEmpty(feeding_id),a=>a.feeding_id==feeding_id) + .Select((a, b, c,d) => new PrdFeedingRecordUpListDownOutPut + { + id = a.id, + material_id = b.name, + unit_id = d.FullName, + batch = a.batch, + num = a.num.ToString(), + }).ToPagedListAsync(input.currentPage, input.pageSize); + return PageResult.SqlSugarPageResult(result); + } + } +} \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptRecordUpServicecs.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptRecordUpServicecs.cs index 4d2292c8..40638ffa 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptRecordUpServicecs.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptRecordUpServicecs.cs @@ -50,7 +50,7 @@ namespace Tnb.ProductionMgr 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.mo_code") ? queryJson["mo_id.mo_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))