diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs index 7981ac7ad..f2e31f098 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs @@ -942,7 +942,7 @@ public class AssembleIssueJobAppService if (!string.IsNullOrEmpty(detail.TransferLibFromLocationCode)) { //库移的最终目标 挪到 推荐的目标 - var fromloc = await _locationAppService.GetByCodeAsync(detail.TransferLibFromLocationCode).ConfigureAwait(false); + var fromloc = await _locationAppService.GetByCodeAsync(detail.TransferLibToLocationCode).ConfigureAwait(false); var toloc =await _locationAppService.GetByCodeAsync(detail.RecommendToLocationCode).ConfigureAwait(false); detailDto.InjectFrom(detail); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs index 369d470bf..c1c9a8354 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs @@ -957,7 +957,7 @@ public class CoatingIssueJobAppService if (!string.IsNullOrEmpty(detail.TransferLibFromLocationCode)) { //库移的最终目标 挪到 推荐的目标 - var fromloc = await _locationAppService.GetByCodeAsync(detail.TransferLibFromLocationCode).ConfigureAwait(false); + var fromloc = await _locationAppService.GetByCodeAsync(detail.TransferLibToLocationCode).ConfigureAwait(false); var toloc = await _locationAppService.GetByCodeAsync(detail.RecommendToLocationCode).ConfigureAwait(false); detailDto.InjectFrom(detail); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs index 921cd36cc..27c2ae835 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs @@ -914,7 +914,7 @@ public class InjectionIssueJobAppService if (!string.IsNullOrEmpty(detail.TransferLibFromLocationCode)) { //库移的最终目标 挪到 推荐的目标 - var fromloc = await _locationAppService.GetByCodeAsync(detail.TransferLibFromLocationCode).ConfigureAwait(false); + var fromloc = await _locationAppService.GetByCodeAsync(detail.TransferLibToLocationCode).ConfigureAwait(false); var toloc = await _locationAppService.GetByCodeAsync(detail.RecommendToLocationCode).ConfigureAwait(false); detailDto.InjectFrom(detail); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 60610cb90..8091350c4 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -918,7 +918,7 @@ public class KittingIssueJobAppService if (!string.IsNullOrEmpty(detail.TransferLibFromLocationCode)) { //库移的最终目标 挪到 推荐的目标 - var fromloc = await _locationAppService.GetByCodeAsync(detail.TransferLibFromLocationCode).ConfigureAwait(false); + var fromloc = await _locationAppService.GetByCodeAsync(detail.TransferLibToLocationCode).ConfigureAwait(false); var toloc = await _locationAppService.GetByCodeAsync(detail.RecommendToLocationCode).ConfigureAwait(false); detailDto.InjectFrom(detail); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs index c1fd8cd9a..36f4322f7 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs @@ -914,7 +914,7 @@ public class SparePartIssueJobAppService if (!string.IsNullOrEmpty(detail.TransferLibFromLocationCode)) { //库移的最终目标 挪到 推荐的目标 - var fromloc = await _locationAppService.GetByCodeAsync(detail.TransferLibFromLocationCode).ConfigureAwait(false); + var fromloc = await _locationAppService.GetByCodeAsync(detail.TransferLibToLocationCode).ConfigureAwait(false); var toloc = await _locationAppService.GetByCodeAsync(detail.RecommendToLocationCode).ConfigureAwait(false); detailDto.InjectFrom(detail); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs index fb6ee6529..1630e3f81 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs @@ -1,19 +1,19 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http.Headers; using System.Net.Http; -using System.Text; using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -using Omu.ValueInjecter; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using Volo.Abp; using Volo.Abp.Application.Dtos; -using Win_in.Sfs.Basedata.Application; +using Volo.Abp.Uow; +using Win_in.Sfs.Basedata; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.Basedata.SplitPackings.Commons; @@ -21,17 +21,10 @@ using Win_in.Sfs.Label.Application.Contracts; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Wms.Inventory.Application.Contracts; - using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain.Shared; -using Win_in.Sfs.Wms.Store.Jobs.IssueJobs.proxy; using Win_in.Sfs.Wms.Store.Options; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using Volo.Abp.ObjectMapping; -using NUglify.Helpers; -using Volo.Abp.Uow; namespace Win_in.Sfs.Wms.Store.Application; @@ -63,6 +56,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase private readonly ILogger _logger; private readonly IPostionLocationAppService _postionLocationAppService; + private readonly IProductionLineAppService _productionLineAppService; private readonly UnitOfWorkManager _unitOfWorkManager; @@ -84,7 +78,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase IPostionLocationAppService postionLocationAppService, IItemBasicAppService itemBasicAppService, UnitOfWorkManager unitOfWorkManager, - IExpectOutAppService expectOutAppService) : base(repository) + IExpectOutAppService expectOutAppService, IProductionLineAppService productionLineAppService) : base(repository) { _unitOfWorkManager = unitOfWorkManager; _transferNoteManager = transferNoteManager; @@ -97,6 +91,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase _issueJobAppService = issueJobAppService; _inventoryLabelAppService = inventoryLabelAppService; _expectOutAppService = expectOutAppService; + _productionLineAppService = productionLineAppService; _logger = logger; _agvOptions = agvOptions; _postionLocationAppService = postionLocationAppService; @@ -119,34 +114,36 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase { if (transferNote.Type == EnumTransSubType.Transfer_Inside.GetDisplayName()) //储位内调拨 { - transferNote.Type = EnumTransSubType.Transfer_Inside.ToString();//重点 需要转换 + transferNote.Type = EnumTransSubType.Transfer_Inside.ToString(); //重点 需要转换 foreach (var detail in transferNote.Details) { var balanceDto = await _balanceAppService.GetByItemLocationAndPackingAsync(detail.FromPackingCode, detail.ItemCode, detail.FromLocationCode).ConfigureAwait(false); - var toLocationDto = await _locationAppService.GetByCodeAsync(detail.ToLocationCode).ConfigureAwait(false); - var fromLocationDto = await _locationAppService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false); + var toLocationDto = await _locationAppService.GetByCodeAsync(detail.ToLocationCode) + .ConfigureAwait(false); + var fromLocationDto = await _locationAppService.GetByCodeAsync(detail.FromLocationCode) + .ConfigureAwait(false); CheckLocation(toLocationDto, detail); CheckFromLocation(fromLocationDto, detail); await CheckPackingCodeAsync(detail.FromPackingCode).ConfigureAwait(false); if (toLocationDto.Type != fromLocationDto.Type) { - throw new UserFriendlyException($"来源库位与目标库位类型不一致"); + throw new UserFriendlyException("来源库位与目标库位类型不一致"); } detail.OnTheWayLocationCode = bool.FalseString; - detail.ItemCode=balanceDto.ItemCode; - detail.ArriveDate=balanceDto.ArriveDate; - detail.ItemDesc1=balanceDto.ItemDesc1; - detail.ItemDesc2=balanceDto.ItemDesc2; - detail.ItemName=balanceDto.ItemName; - detail.ProduceDate=balanceDto.ProduceDate; - detail.Qty=balanceDto.Qty; - detail.Uom=balanceDto.Uom; - detail.ExpireDate=balanceDto.ExpireDate; - detail.StdPackQty=balanceDto.StdPackQty; - detail.SupplierBatch=balanceDto.SupplierBatch; + detail.ItemCode = balanceDto.ItemCode; + detail.ArriveDate = balanceDto.ArriveDate; + detail.ItemDesc1 = balanceDto.ItemDesc1; + detail.ItemDesc2 = balanceDto.ItemDesc2; + detail.ItemName = balanceDto.ItemName; + detail.ProduceDate = balanceDto.ProduceDate; + detail.Qty = balanceDto.Qty; + detail.Uom = balanceDto.Uom; + detail.ExpireDate = balanceDto.ExpireDate; + detail.StdPackQty = balanceDto.StdPackQty; + detail.SupplierBatch = balanceDto.SupplierBatch; detail.FromLocationArea = balanceDto.LocationArea; detail.FromContainerCode = balanceDto.ContainerCode; @@ -175,7 +172,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase } /// - /// 拆箱 + /// 拆箱 /// /// /// @@ -190,6 +187,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase } #region 校验 + private void CheckLocation(LocationDTO locationDto, TransferNoteDetail detail) { if (locationDto == null) @@ -197,6 +195,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase throw new UserFriendlyException($"库位代码为【{detail.ToLocationCode}】不存在"); } } + private void CheckFromLocation(LocationDTO locationDto, TransferNoteDetail detail) { if (locationDto == null) @@ -204,6 +203,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase throw new UserFriendlyException($"库位代码为【{detail.FromLocationCode}】不存在"); } } + #endregion /// @@ -297,30 +297,34 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase return await GetSubTypeListAsync(sfsRequestDTO, EnumTransSubType.Transfer_Inside, includeDetails, cancellationToken).ConfigureAwait(false); } + [HttpPost("get-Injection-list")] public virtual async Task> GetInjectionTransferListAsync( - SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false, - CancellationToken cancellationToken = default) + SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false, + CancellationToken cancellationToken = default) { return await GetSubTypeListAsync(sfsRequestDTO, EnumTransSubType.Transfer_Injection, includeDetails, cancellationToken).ConfigureAwait(false); } + [HttpPost("get-coating-list")] public virtual async Task> GetCoatingTransferListAsync( - SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false, - CancellationToken cancellationToken = default) + SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false, + CancellationToken cancellationToken = default) { return await GetSubTypeListAsync(sfsRequestDTO, EnumTransSubType.Transfer_Coating, includeDetails, cancellationToken).ConfigureAwait(false); } + [HttpPost("get-assemble-list")] public virtual async Task> GetAssembleTransferListAsync( - SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false, - CancellationToken cancellationToken = default) + SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false, + CancellationToken cancellationToken = default) { return await GetSubTypeListAsync(sfsRequestDTO, EnumTransSubType.Transfer_Assemble, includeDetails, cancellationToken).ConfigureAwait(false); } + /// /// 按条件获取客户储位间调拨的分页列表 /// request sample @@ -373,10 +377,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase { sfsRequestDTO.Condition.Filters.Add(new Filter { - Action = "==", - Column = "Type", - Logic = EnumFilterLogic.And.ToString(), - Value = type.ToString() + Action = "==", Column = "Type", Logic = EnumFilterLogic.And.ToString(), Value = type.ToString() }); var expression = sfsRequestDTO.Condition.Filters?.Count > 0 @@ -396,7 +397,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase /// [HttpPost("")] public override async Task CreateAsync(TransferNoteEditInput input) - { + { var entity = ObjectMapper.Map(input); foreach (var detail in entity.Details) @@ -406,7 +407,8 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase await CheckPackingCodeAsync(detail.FromPackingCode).ConfigureAwait(false); } } - entity =await _transferNoteManager.CreateAsync(entity).ConfigureAwait(false); + + entity = await _transferNoteManager.CreateAsync(entity).ConfigureAwait(false); var dto = ObjectMapper.Map(entity); @@ -434,6 +436,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase await CheckPackingCodeAsync(detail.FromPackingCode).ConfigureAwait(false); } } + resultEntity.Add(await _transferNoteManager.CreateAsync(entity).ConfigureAwait(false)); _ = ObjectMapper.Map(entity); } @@ -442,7 +445,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase } /// - /// 校验箱码 + /// 校验箱码 /// /// /// @@ -460,8 +463,6 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase } - - /// /// 确认对应的记录单 /// @@ -490,22 +491,25 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase /// - /// 插入拆箱记录表 + /// 插入拆箱记录表 /// /// /// - private async Task WriteSplitPackingRec(TransferNoteEditInput transferNoteEditInput, SplitPacking_UpdateJobDetailInput updateJobDetailInput = null) + private async Task WriteSplitPackingRec(TransferNoteEditInput transferNoteEditInput, + SplitPacking_UpdateJobDetailInput updateJobDetailInput = null) { - - List recLst = new List(); + var recLst = new List(); foreach (var inputDetail in transferNoteEditInput.Details) { - bool qtyEnough = await _splitPackingRecAppService.CheckSplitNum(inputDetail.FromPackingCode, inputDetail.Qty).ConfigureAwait(false); + var qtyEnough = await _splitPackingRecAppService.CheckSplitNum(inputDetail.FromPackingCode, inputDetail.Qty) + .ConfigureAwait(false); if (qtyEnough == false) { - throw new UserFriendlyException($"[WriteSplitPackingRec]拆箱记录表数量不足:FromPackingCode={inputDetail.FromPackingCode},Qty={inputDetail.Qty}"); + throw new UserFriendlyException( + $"[WriteSplitPackingRec]拆箱记录表数量不足:FromPackingCode={inputDetail.FromPackingCode},Qty={inputDetail.Qty}"); } - SplitPackingRecEditInput packRec = new SplitPackingRecEditInput(); + + var packRec = new SplitPackingRecEditInput(); packRec.OprType = OprTypeEnum.SplitBox; packRec.FromPackingCode = inputDetail.FromPackingCode; @@ -536,8 +540,10 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase packRec.FromQty = updateJobDetailInput.FromQty; packRec.ToQty = updateJobDetailInput.ToQty; } + //根据箱码在inventoryLabel取采购订单、供应商发货单 - var inventoryLabelDto = await _inventoryLabelAppService.GetByCodeAsync(inputDetail.FromPackingCode).ConfigureAwait(false); + var inventoryLabelDto = await _inventoryLabelAppService.GetByCodeAsync(inputDetail.FromPackingCode) + .ConfigureAwait(false); if (inventoryLabelDto != null) { packRec.PurchaseInfo_PoNumber = inventoryLabelDto.PoNumber; @@ -545,13 +551,14 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase //packRec.PurchaseInfo_SupplierCode = inventoryLabelDto.SupplierCode; #region InventoryLabel兼容成员 + var inputObj = inventoryLabelDto; packRec.FullBarcodeString = inputObj.FullBarcodeString; packRec.SupplierBatch = inputObj.SupplierBatch; packRec.ArriveDate = inputObj.ArriveDate; packRec.ProduceDate = inputObj.ProduceDate; packRec.ExpireDate = inputObj.ExpireDate; - packRec.LabelStatus = (Win_in.Sfs.Basedata.LabelStatus)((int)inputObj.LabelStatus); + packRec.LabelStatus = (LabelStatus)(int)inputObj.LabelStatus; packRec.RecommendLocationCode = inputObj.RecommendLocationCode; packRec.LocationErpCode = inputObj.LocationErpCode; //packRec.ContainerCode = inputObj.ContainerCode; @@ -570,37 +577,46 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase packRec.SupplierItemCode = inputObj.SupplierItemCode; packRec.SupplierItemName = inputObj.SupplierItemName; packRec.PlanArriveDate = inputObj.PlanArriveDate; + #endregion } + recLst.Add(packRec); } + var ret = await _splitPackingRecAppService.BatchInsertAsync(recLst).ConfigureAwait(false); return ret; } /// - /// 采购收货拆箱,同时更新、插入PurchaseReceipt任务表、申请表 + /// 采购收货拆箱,同时更新、插入PurchaseReceipt任务表、申请表 /// /// /// /// [HttpPost("split-packing-purchase-receipt")] - public async Task SplitPacking_PurchaseReceiptAsync(TransferNoteEditInput transferNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) + public async Task SplitPacking_PurchaseReceiptAsync(TransferNoteEditInput transferNoteEditInput, + [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) { - var jobRet = await _purchaseReceiptJobAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput).ConfigureAwait(false); - var requestRet = await _purchaseReceiptRequestAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput, jobRet.PurchaseReceiptRequestNumber).ConfigureAwait(false); - bool ret = await WriteSplitPackingRec(transferNoteEditInput, updateJobDetailInput).ConfigureAwait(false); //采购收货-目检-拆箱时,还没有入库,不涉及库存操作 + var jobRet = await _purchaseReceiptJobAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput) + .ConfigureAwait(false); + var requestRet = await _purchaseReceiptRequestAppService + .SaveDetail_SplitPackingAsync(updateJobDetailInput, jobRet.PurchaseReceiptRequestNumber) + .ConfigureAwait(false); + var ret = await WriteSplitPackingRec(transferNoteEditInput, updateJobDetailInput) + .ConfigureAwait(false); //采购收货-目检-拆箱时,还没有入库,不涉及库存操作 return ret; } /// - /// 质检拆箱,同时更新、插入Inspect任务表(不更新申请表) + /// 质检拆箱,同时更新、插入Inspect任务表(不更新申请表) /// /// /// /// [HttpPost("split-packing-inspect")] - public async Task SplitPacking_InspectAsync(TransferNoteEditInput transferNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) + public async Task SplitPacking_InspectAsync(TransferNoteEditInput transferNoteEditInput, + [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) { //SplitPacking_UpdateDetailInput newInput = new SplitPacking_UpdateDetailInput(); //newInput.Number = updateJobDetailInput.Number; @@ -611,21 +627,23 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase //newInput.FromLocationCode = transferNoteEditInput.Details[0].FromLocationCode; //newInput.ToLocationCode = transferNoteEditInput.Details[0].ToLocationCode; //var expectOutRet = await _expectOutAppService.SaveDetail_SplitPackingAsync(newInput).ConfigureAwait(false); - var jobRet = await _inspectJobAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput).ConfigureAwait(false); + var jobRet = await _inspectJobAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput) + .ConfigureAwait(false); var ret = await SplitPackingAsync(transferNoteEditInput).ConfigureAwait(false); //库存操作 return ret; } /// - /// 发料拆箱,同时更新、插入Inspect任务表(没有找到申请表//??) + /// 发料拆箱,同时更新、插入Inspect任务表(没有找到申请表//??) /// /// /// /// [HttpPost("split-packing-issue")] - public async Task SplitPacking_IssueAsync(TransferNoteEditInput transferNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) + public async Task SplitPacking_IssueAsync(TransferNoteEditInput transferNoteEditInput, + [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) { - SplitPacking_UpdateDetailInput newInput = new SplitPacking_UpdateDetailInput(); + var newInput = new SplitPacking_UpdateDetailInput(); newInput.Number = updateJobDetailInput.Number; newInput.FromPackingCode = updateJobDetailInput.FromPackingCode; newInput.FromQty = updateJobDetailInput.FromQty; @@ -640,16 +658,17 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase } /// - /// 拆箱,预计出表存在数据时不允许办理 + /// 拆箱,预计出表存在数据时不允许办理 /// /// /// /// [HttpPost("split-packing-check-expect-out")] - public async Task SplitPackingCheckExpectOutAsync(TransferNoteEditInput transferNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInputBase updateJobDetailInputBase) + public async Task SplitPackingCheckExpectOutAsync(TransferNoteEditInput transferNoteEditInput, + [FromQuery] SplitPacking_UpdateJobDetailInputBase updateJobDetailInputBase) { var detailObj = transferNoteEditInput.Details[0]; - SplitPacking_UpdateDetailInput newInput = new SplitPacking_UpdateDetailInput(); + var newInput = new SplitPacking_UpdateDetailInput(); newInput.Number = updateJobDetailInputBase.Number; newInput.FromPackingCode = detailObj.FromPackingCode; newInput.FromQty = detailObj.Qty; @@ -660,21 +679,14 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase var expectOutLst = await _expectOutAppService.GetListByJobNumberAsync(newInput).ConfigureAwait(false); if (expectOutLst.Count > 0) { - throw new UserFriendlyException($"预计出表存在数据,不允许办理拆箱:JobNumber={newInput.Number}|PackingCode={newInput.FromPackingCode}|Qty={newInput.FromQty}|LocationCode={newInput.FromLocationCode}"); + throw new UserFriendlyException( + $"预计出表存在数据,不允许办理拆箱:JobNumber={newInput.Number}|PackingCode={newInput.FromPackingCode}|Qty={newInput.FromQty}|LocationCode={newInput.FromLocationCode}"); } + var ret = await SplitPackingAsync(transferNoteEditInput).ConfigureAwait(false); return ret; - } - - - - - - - - [HttpPost("call-back-agv")] public async Task CallBackAgvAsync(AgvRequestDto request) @@ -682,15 +694,8 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase var json = JsonSerializer.Serialize(request); var flag = DateTime.Now.ToString("yyyyMMddHHmmss"); _logger.LogInformation($"{flag}接收到AGV确认单据内容:" + json); -#if DEBUG -#endif var errors = new List(); - var ret = new AgvResultObject - { - Code = "0", - Message = "OK", - ReqCode = "", - }; + var ret = new AgvResultObject { Code = "0", Message = "OK", ReqCode = "" }; using var unitOfWork = _unitOfWorkManager.Begin(); try { @@ -700,43 +705,49 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase foreach (var detail in notes) { - TransferNoteEditInput transfer = new TransferNoteEditInput(); + var transfer = new TransferNoteEditInput(); transfer.CallJobNumber = detail.OrderNum; - + transfer.Worker = "Agv"; transfer.UseOnTheWayLocation = false; - List transferNoteDetailInputs = new List(); - TransferNoteDetailInput detailInput = new TransferNoteDetailInput(); - + var transferNoteDetailInputs = new List(); + var detailInput = new TransferNoteDetailInput(); + + var fromlocation = + await _locationAppService.GetByCodeAsync(detail.BeginPosition).ConfigureAwait(false); - LocationDTO fromlocation = await _locationAppService.GetByCodeAsync(detail.BeginPosition).ConfigureAwait(false); - if (fromlocation == null) { errors.Add($"来源起始点{detail.BeginPosition}库位没查到"); } - LocationDTO tolocation = await _locationAppService.GetByCodeAsync(detail.EndPosition).ConfigureAwait(false); - + var tolocation = await _locationAppService.GetByCodeAsync(detail.EndPosition).ConfigureAwait(false); + if (tolocation == null) { errors.Add($"结束点{detail.EndPosition}库位没查到"); } + + + //fromlocation.Type == EnumLocationType.WIP; + //tolocation.Type==EnumLocationType.SEMI||EnumLocationType.DimensionalStorehouse + //var productionLineDto=await _productionLineAppService.GetByLocationCodeAsync(tolocation.Code); + //productionLineDto.ProductionLineType==EnumProductionLineType.Assemble + switch (tolocation.WarehouseCode) { - case "APA-KWZ":// 装配线边库位组 + case "APA-KWZ": // 装配线边库位组 transfer.Type = EnumTransSubType.Transfer_Assemble.ToString(); break; - case "PPA-KWZ"://涂装线边库位组 + case "PPA-KWZ": //涂装线边库位组 transfer.Type = EnumTransSubType.Transfer_Coating.ToString(); break; - case "IPA-KWZ"://注塑线边库位组 + case "IPA-KWZ": //注塑线边库位组 transfer.Type = EnumTransSubType.Transfer_Injection.ToString(); break; default: throw new UserFriendlyException("结束库位、不是喷涂、注塑、涂装等线边类型!"); - } var item = await _itemBasicAppService.GetByCodeAsync(detail.MatCode).ConfigureAwait(false); @@ -749,17 +760,17 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase detailInput.ItemCode = item.Code; detailInput.Uom = item.BasicUom; detailInput.ItemName = item.Name; - detailInput.ItemDesc1 = !string.IsNullOrEmpty(item.Desc1) ? item.Desc1:string.Empty; + detailInput.ItemDesc1 = !string.IsNullOrEmpty(item.Desc1) ? item.Desc1 : string.Empty; } + if (errors.Count > 0) { - return ret = new AgvResultObject() + return ret = new AgvResultObject { - Code = "-1", - ReqCode = "", - Message = string.Join(",", errors.ToArray()) + Code = "-1", ReqCode = "", Message = string.Join(",", errors.ToArray()) }; } + detailInput.ToLocationCode = tolocation.Code; detailInput.ToLocationGroup = tolocation.LocationGroupCode; detailInput.ToLocationArea = tolocation.AreaCode; @@ -768,7 +779,6 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase detailInput.FromStatus = tolocation.DefaultInventoryStatus; - detailInput.Qty = detail.MatQty; detailInput.ToLot = !string.IsNullOrEmpty(detail.BatchAttr07) ? detail.BatchAttr07 : string.Empty; detailInput.ToPackingCode = string.Empty; @@ -781,7 +791,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase detailInput.Qty = detail.MatQty; detailInput.FromLot = !string.IsNullOrEmpty(detail.BatchAttr07) ? detail.BatchAttr07 : string.Empty; detailInput.FromPackingCode = string.Empty; - + transfer.Details.Add(detailInput); @@ -795,34 +805,16 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase } catch (Exception ex) { - ret = new AgvResultObject - { - Code = "-1", - ReqCode = "", - Message = ex.Message - }; + ret = new AgvResultObject { Code = "-1", ReqCode = "", Message = ex.Message }; await unitOfWork.RollbackAsync().ConfigureAwait(false); - } if (errors.Count > 0) { - ret = new AgvResultObject - { - Code = "-1", - Message = string.Join(",", errors.ToArray()), - ReqCode = "" - }; + ret = new AgvResultObject { Code = "-1", Message = string.Join(",", errors.ToArray()), ReqCode = "" }; await unitOfWork.RollbackAsync().ConfigureAwait(false); } + return ret; } - - - - - - - - }