diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionPlanRequestController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionPlanRequestController.cs index ea9d93094..f37f32737 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionPlanRequestController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionPlanRequestController.cs @@ -17,14 +17,16 @@ namespace Win_in.Sfs.Wms.Pda.Controllers.Stores; public class InjectionPlanRequestController : AbpController { private readonly IInjectionPlanRequestAppService _injectionRequestAppService; + private readonly IItemContainerAppService _itemContainerAppService; /// /// /// /// - public InjectionPlanRequestController(IInjectionPlanRequestAppService InjectionPlanRequestAppService) + public InjectionPlanRequestController(IInjectionPlanRequestAppService InjectionPlanRequestAppService, IItemContainerAppService itemContainerAppService) { _injectionRequestAppService = InjectionPlanRequestAppService; + _itemContainerAppService = itemContainerAppService; } /// @@ -73,9 +75,26 @@ public class InjectionPlanRequestController : AbpController [HttpGet("list/item-category")] public virtual async Task> GetItemCategoryListAsync(string categoryName) { - var entities = await _injectionRequestAppService.GetItemCategoryListAsync().ConfigureAwait(false); + var entities = await _injectionRequestAppService.GetItemCategoryListAsync().ConfigureAwait(false); + + var itemEntities = entities.Where(p => p.Category == categoryName).ToList(); + foreach (var item in itemEntities) + { + var itemContainerDto = await _itemContainerAppService.GetByItemCodeAsync(item.Code).ConfigureAwait(false); + + if(itemContainerDto != null) + { + item.StdPackQty = itemContainerDto.Qty; + item.BasicUom = itemContainerDto.BasicUom; + } + else + { + item.StdPackQty = 1; + } + + } - return entities.Where(p=>p.Category== categoryName).ToList(); + return itemEntities; } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs index 04916ad6d..994c5308e 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs @@ -42,14 +42,6 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager { throw new UserFriendlyException("操作类型不是拆箱或合箱状态,源箱码和目标箱码必须相同!"); } - if (item.FromTopPackingCode.IsNullOrEmpty()) - { - item.FromTopPackingCode = item.FromPackingCode; - } - if (item.ToTopPackingCode.IsNullOrEmpty()) - { - item.ToTopPackingCode = item.FromPackingCode;// ToPackingCode; - } } #endregion @@ -91,6 +83,14 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager } else { + if (item.FromTopPackingCode.IsNullOrEmpty()) + { + item.FromTopPackingCode = item.FromPackingCode; + } + if (item.ToTopPackingCode.IsNullOrEmpty()) + { + item.ToTopPackingCode = item.FromPackingCode;// ToPackingCode; + } SplitPackingRec newEntity = CommonHelper.CloneObj(item); newEntity.SetId(GuidGenerator.Create()); var ret = await _repository.InsertAsync(newEntity, true).ConfigureAwait(false); @@ -202,24 +202,42 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager /// 取顶级箱码 /// /// 箱码历史 - /// 当前箱码 + /// 箱码,from to时都传入from /// private static string GetTopPackingCode(IQueryable historyQuery, string packingCode) { - var historyRec = historyQuery.Where(itm => itm.FromPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault(); - if (historyRec != null) - { - return historyRec.FromTopPackingCode; - } - else + var qry = historyQuery.Where(itm => itm.OprType == OprTypeEnum.SplitBox || itm.OprType == OprTypeEnum.MergeBox); + string ret = null; + SplitPackingRec? firstObj = null; + string toCode = packingCode; + while (1 == 1) { - historyRec = historyQuery.Where(itm => itm.ToPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault(); - if (historyRec != null) + firstObj = qry.FirstOrDefault(itm => itm.ToPackingCode == toCode); + if (firstObj == null) + { + ret = toCode; + break; + } + else { - return historyRec.ToTopPackingCode; + toCode = firstObj.FromPackingCode; } } - return null; + return ret; + //var historyRec = historyQuery.Where(itm => itm.FromPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault(); + //if (historyRec != null) + //{ + // return historyRec.FromTopPackingCode; + //} + //else + //{ + // historyRec = historyQuery.Where(itm => itm.ToPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault(); + // if (historyRec != null) + // { + // return historyRec.ToTopPackingCode; + // } + //} + //return null; } private static void SetBillNumber(IQueryable historyQuery, SplitPackingRec obj) diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumIssueRequestType.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumIssueRequestType.cs index d9b2baaee..6518de328 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumIssueRequestType.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumIssueRequestType.cs @@ -39,4 +39,10 @@ public enum EnumIssueRequestType /// [Display(Name = "EXCEL导入")] ExcelImport=5, + + /// + /// 注塑计划 + /// + [Display(Name = "EXCEL导入")] + InjectionPlan = 6, } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/InjectionPlanRequests/InjectionPlanRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/InjectionPlanRequests/InjectionPlanRequestAppService.cs index 371b5240d..46cdee401 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/InjectionPlanRequests/InjectionPlanRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/InjectionPlanRequests/InjectionPlanRequestAppService.cs @@ -99,20 +99,22 @@ public class InjectionPlanRequestAppService : SfsStoreRequestAppServiceBase GetDetailByItemAndRootPackingAsync(string itemCode, string packingCode) { - var topObj = await _splitPackingRecManager.GetTopPackingCode(packingCode).ConfigureAwait(false); + var topObj = await _splitPackingRecAppService.GetTopPackingCode(packingCode).ConfigureAwait(false); if (topObj == null || string.IsNullOrEmpty(topObj.ToTopPackingCode)) { throw new UserFriendlyException($"根据箱码{packingCode}到拆箱记录表中没有取到顶级箱码!");