From 1b94a7207a40311bc76180349217710eb927c8a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Tue, 22 Oct 2024 15:40:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnplannedIssueJobAppService.cs | 206 ++++++++++++------ 1 file changed, 144 insertions(+), 62 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs index ee3aaa673..8f8750d6a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs @@ -345,13 +345,145 @@ public class UnplannedIssueJobAppService { _logger.LogError($"{"非生产领料" + requestDto.Number + "零件号:" + requestDtoDetail.ItemCode + "库存不够" + requestDtoDetail.Qty.ToString()}"); // Errors.Add($"{"非生产领料"+requestDto.Number+"零件号:"+requestDtoDetail.ItemCode + "库存不够" + requestDtoDetail.Qty.ToString()}"); - continue; + + } + + if (useBalances.Count > 0) + { + + + foreach (var balanceDtoGroup in useBalances.GroupBy(p => p.LocationErpCode)) + { + //var locationDto = await _locationAppService.GetByCodeAsync(balanceDtoGroup.Key).ConfigureAwait(false); + var job = new UnplannedIssueJob(); + + + switch (locationDto.Type) + { + case EnumLocationType.SEMI: + job.IsHasPackingCode = false; + job.UnplannedIssueType = EnumUnplannedIssueType.Raw; + break; + case EnumLocationType.CUST: + job.IsHasPackingCode = false; + job.UnplannedIssueType = EnumUnplannedIssueType.Raw; + break; + case EnumLocationType.FG: + job.IsHasPackingCode = false; + job.UnplannedIssueType = EnumUnplannedIssueType.Raw; + break; + case EnumLocationType.RAW: + job.IsHasPackingCode = true; + job.UnplannedIssueType = EnumUnplannedIssueType.Raw; + break; + case EnumLocationType.THIRDPARTY: + job.IsHasPackingCode = false; + job.UnplannedIssueType = EnumUnplannedIssueType.Raw; + break; + case EnumLocationType.OUTSIDE: + job.IsHasPackingCode = false; + job.UnplannedIssueType = EnumUnplannedIssueType.Raw; + break; + case EnumLocationType.DimensionalStorehouse: + job.UnplannedIssueType = EnumUnplannedIssueType.Raw; + job.IsHasPackingCode = false; + break; + + case EnumLocationType.KittingWip: + job.IsHasPackingCode = false; + job.UnplannedIssueType = EnumUnplannedIssueType.Wip; + break; + case EnumLocationType.WIP: + job.IsHasPackingCode = false; + job.UnplannedIssueType = EnumUnplannedIssueType.Wip; + break; + } + + + + job.ItemCode = requestDtoDetail.ItemCode; + job.ItemName = requestDtoDetail.ItemName; + job.ItemDesc1 = requestDtoDetail.ItemDesc1; + job.ItemDesc2 = requestDtoDetail.ItemDesc2; + job.FromErpLocationCode = requestDtoDetail.LocationErpCode; + job.Qty = requestDtoDetail.Qty; + + + job.SetId(GuidGenerator.Create()); + job.UnplannedIssueRequestNumber = requestDto.Number; + job.JobType = EnumJobType.UnplannedIssueJob; + job.JobStatus = EnumJobStatus.Open; + job.IsAutoComplete = false; + job.DeptCode = requestDto.DeptCode; + job.DeptName = requestDto.DeptName; + job.Worker = requestDto.Worker; + job.OANumber = requestDto.OANumber; + job.Number = await _unplannedIssueJobManager.GetNumber().ConfigureAwait(true); + job.Details = new List(); + job.FacDetails = new List(); + job.WarehouseCode = balanceDtoGroup.First().WarehouseCode; + job.BuildDate = DateTime.Now; + + foreach (var balanceDto in balanceDtoGroup) + { + var jobfacDetail = new UnplannedIssueJobFacDetail(); + jobfacDetail.Number = job.Number; + jobfacDetail.SetIdAndNumber(GuidGenerator, job.Id, job.Number); + jobfacDetail.CaseCode = requestDtoDetail.CaseCode; + jobfacDetail.Explain = requestDtoDetail.Explain; + jobfacDetail.OnceBusiCode = requestDtoDetail.OnceBusiCode; + jobfacDetail.ProjCapacityCode = requestDtoDetail.ProjCapacityCode; + //jobfacDetail.ReasonCode = requestDtoDetail.ReasonCode; + jobfacDetail.ItemCode = requestDtoDetail.ItemCode; + jobfacDetail.ItemDesc1 = requestDtoDetail.ItemDesc1; + jobfacDetail.ItemDesc2 = requestDtoDetail.ItemDesc2; + jobfacDetail.ItemName = requestDtoDetail.ItemName; + jobfacDetail.RecommendArriveDate = balanceDto.ArriveDate; + jobfacDetail.RecommendContainerCode = string.Empty; + jobfacDetail.RecommendExpireDate = balanceDto.ExpireDate; + jobfacDetail.RecommendLot = balanceDto.Lot; + jobfacDetail.RecommendPackingCode = balanceDto.PackingCode; + jobfacDetail.RecommendProduceDate = balanceDto.ProduceDate; + jobfacDetail.RecommendQty = balanceDto.Qty; + jobfacDetail.RecommendSupplierBatch = balanceDto.SupplierBatch; + jobfacDetail.StdPackQty = requestDtoDetail.StdPackQty; + jobfacDetail.RecommendPackingCode = balanceDto.PackingCode; + jobfacDetail.HandledFromLocationGroup = balanceDto.LocationGroup; + jobfacDetail.HandledFromLocationArea = balanceDto.LocationArea; + jobfacDetail.HandledFromLocationCode = balanceDto.LocationCode; + jobfacDetail.HandledFromLocationErpCode = balanceDto.LocationErpCode; + jobfacDetail.HandledFromWarehouseCode = balanceDto.WarehouseCode; + jobfacDetail.HandledQty = balanceDto.Qty; + jobfacDetail.HandledSupplierBatch = balanceDto.Lot; + jobfacDetail.HandledArriveDate = balanceDto.ArriveDate; + jobfacDetail.HandledProduceDate = balanceDto.ProduceDate; + jobfacDetail.HandledExpireDate = balanceDto.ExpireDate; + jobfacDetail.HandledContainerCode = balanceDto.ContainerCode; + jobfacDetail.HandledLot = balanceDto.Lot; + jobfacDetail.HandledPackingCode = balanceDto.PackingCode; + jobfacDetail.RecommendFromLocationArea = balanceDto.LocationArea; + jobfacDetail.RecommendFromLocationCode = balanceDto.LocationCode; + jobfacDetail.RecommendFromLocationErpCode = balanceDto.LocationErpCode; + jobfacDetail.RecommendFromLocationGroup = balanceDto.LocationGroup; + jobfacDetail.RecommendFromWarehouseCode = balanceDto.WarehouseCode; + jobfacDetail.Status = balanceDto.Status; + jobfacDetail.HandledQty = balanceDto.Qty; + jobfacDetail.Uom = balanceDto.Uom; + //job.Details.Add(jobDetail); + job.FacDetails.Add(jobfacDetail); + } + + if (locationDto.Type == EnumLocationType.DimensionalStorehouse)//如果是立库的 + { + await SendDimensionalStorehouseAsync().ConfigureAwait(false); + job.JobStatus = EnumJobStatus.Wait; + } + jobs.Add(job); + } } - foreach (var balanceDtoGroup in useBalances.GroupBy(p => p.LocationErpCode)) + else { - //var locationDto = await _locationAppService.GetByCodeAsync(balanceDtoGroup.Key).ConfigureAwait(false); var job = new UnplannedIssueJob(); - switch (locationDto.Type) { @@ -398,14 +530,14 @@ public class UnplannedIssueJobAppService job.ItemCode = requestDtoDetail.ItemCode; job.ItemName = requestDtoDetail.ItemName; - job.ItemDesc1 =requestDtoDetail.ItemDesc1; + job.ItemDesc1 = requestDtoDetail.ItemDesc1; job.ItemDesc2 = requestDtoDetail.ItemDesc2; job.FromErpLocationCode = requestDtoDetail.LocationErpCode; job.Qty = requestDtoDetail.Qty; job.SetId(GuidGenerator.Create()); - job.UnplannedIssueRequestNumber= requestDto.Number; + job.UnplannedIssueRequestNumber = requestDto.Number; job.JobType = EnumJobType.UnplannedIssueJob; job.JobStatus = EnumJobStatus.Open; job.IsAutoComplete = false; @@ -413,68 +545,18 @@ public class UnplannedIssueJobAppService job.DeptName = requestDto.DeptName; job.Worker = requestDto.Worker; job.OANumber = requestDto.OANumber; - job.Number =await _unplannedIssueJobManager.GetNumber().ConfigureAwait(true); + job.Number = await _unplannedIssueJobManager.GetNumber().ConfigureAwait(true); job.Details = new List(); job.FacDetails = new List(); - job.WarehouseCode = balanceDtoGroup.First().WarehouseCode; + job.WarehouseCode = locationDto.WarehouseCode; job.BuildDate = DateTime.Now; - foreach (var balanceDto in balanceDtoGroup) - { - var jobfacDetail = new UnplannedIssueJobFacDetail(); - jobfacDetail.Number = job.Number; - jobfacDetail.SetIdAndNumber(GuidGenerator, job.Id, job.Number); - jobfacDetail.CaseCode = requestDtoDetail.CaseCode; - jobfacDetail.Explain = requestDtoDetail.Explain; - jobfacDetail.OnceBusiCode = requestDtoDetail.OnceBusiCode; - jobfacDetail.ProjCapacityCode = requestDtoDetail.ProjCapacityCode; - //jobfacDetail.ReasonCode = requestDtoDetail.ReasonCode; - jobfacDetail.ItemCode = requestDtoDetail.ItemCode; - jobfacDetail.ItemDesc1 = requestDtoDetail.ItemDesc1; - jobfacDetail.ItemDesc2 = requestDtoDetail.ItemDesc2; - jobfacDetail.ItemName = requestDtoDetail.ItemName; - jobfacDetail.RecommendArriveDate = balanceDto.ArriveDate; - jobfacDetail.RecommendContainerCode = string.Empty; - jobfacDetail.RecommendExpireDate = balanceDto.ExpireDate; - jobfacDetail.RecommendLot = balanceDto.Lot; - jobfacDetail.RecommendPackingCode = balanceDto.PackingCode; - jobfacDetail.RecommendProduceDate = balanceDto.ProduceDate; - jobfacDetail.RecommendQty = balanceDto.Qty; - jobfacDetail.RecommendSupplierBatch = balanceDto.SupplierBatch; - jobfacDetail.StdPackQty = requestDtoDetail.StdPackQty; - jobfacDetail.RecommendPackingCode = balanceDto.PackingCode; - jobfacDetail.HandledFromLocationGroup = balanceDto.LocationGroup; - jobfacDetail.HandledFromLocationArea = balanceDto.LocationArea; - jobfacDetail.HandledFromLocationCode = balanceDto.LocationCode; - jobfacDetail.HandledFromLocationErpCode = balanceDto.LocationErpCode; - jobfacDetail.HandledFromWarehouseCode = balanceDto.WarehouseCode; - jobfacDetail.HandledQty = balanceDto.Qty; - jobfacDetail.HandledSupplierBatch = balanceDto.Lot; - jobfacDetail.HandledArriveDate = balanceDto.ArriveDate; - jobfacDetail.HandledProduceDate = balanceDto.ProduceDate; - jobfacDetail.HandledExpireDate = balanceDto.ExpireDate; - jobfacDetail.HandledContainerCode =balanceDto.ContainerCode ; - jobfacDetail.HandledLot = balanceDto.Lot; - jobfacDetail.HandledPackingCode =balanceDto.PackingCode; - jobfacDetail.RecommendFromLocationArea = balanceDto.LocationArea; - jobfacDetail.RecommendFromLocationCode = balanceDto.LocationCode; - jobfacDetail.RecommendFromLocationErpCode = balanceDto.LocationErpCode; - jobfacDetail.RecommendFromLocationGroup = balanceDto.LocationGroup; - jobfacDetail.RecommendFromWarehouseCode = balanceDto.WarehouseCode; - jobfacDetail.Status = balanceDto.Status; - jobfacDetail.HandledQty = balanceDto.Qty; - jobfacDetail.Uom = balanceDto.Uom; - //job.Details.Add(jobDetail); - job.FacDetails.Add(jobfacDetail); - } - if (locationDto.Type == EnumLocationType.DimensionalStorehouse)//如果是立库的 - { - await SendDimensionalStorehouseAsync().ConfigureAwait(false); - job.JobStatus = EnumJobStatus.Wait; - } - jobs.Add(job); + + } + + } //if (Errors.Count > 0) //{