diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/LocationDeliverys/ILocationDeliveryAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/LocationDeliverys/ILocationDeliveryAppService.cs index 88889394e..40018263b 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/LocationDeliverys/ILocationDeliveryAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/LocationDeliverys/ILocationDeliveryAppService.cs @@ -1,3 +1,4 @@ +using System.Threading.Tasks; using Win_in.Sfs.Shared.Application.Contracts; namespace Win_in.Sfs.Basedata.Application.Contracts; @@ -5,4 +6,5 @@ namespace Win_in.Sfs.Basedata.Application.Contracts; public interface ILocationDeliveryAppService : ISfsBaseDataAppServiceBase { + Task GetByFromLocationCodeAndToLocationCodeAsync(string fromLocationCode,string toLocationCode); } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/DTOs/LocationDTO.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/DTOs/LocationDTO.cs index f9853e7d3..da4829c18 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/DTOs/LocationDTO.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/DTOs/LocationDTO.cs @@ -190,9 +190,5 @@ public class LocationDTO : SfsBaseDataDTOBase, IHasCode, IHasName, IHasLocationS [Display(Name = "是否可以拆托")] public bool EnableSplitPallet { get; set; } = true; - /// - /// 是否AGV配送 - /// - [Display(Name = "是否AGV配送")] - public bool EnableAgv { get; set; } = false; //是否AGV配送 + } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/Inputs/LocationEditInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/Inputs/LocationEditInput.cs index 778ff5b0b..a1efa09d6 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/Inputs/LocationEditInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/Inputs/LocationEditInput.cs @@ -178,11 +178,6 @@ public class LocationEditInput : SfsBaseDataWithWarehouseCreateOrUpdateInputBase [Display(Name = "是否可以拆托")] public bool EnableSplitPallet { get; set; } = true; - /// - /// 是否AGV配送 - /// - [Display(Name = "是否AGV配送")] - public bool EnableAgv { get; set; } = false; //是否AGV配送 #endregion #region Create diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/Inputs/LocationImportInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/Inputs/LocationImportInput.cs index 779570265..2a2e2e0ab 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/Inputs/LocationImportInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/Inputs/LocationImportInput.cs @@ -210,12 +210,6 @@ public class LocationImportInput : SfsBaseDataImportInputBase, IHasLocationSwitc [Required(ErrorMessage = "{0}是必填项")] public bool EnableSplitPallet { get; set; } = true; - /// - /// 是否AGV配送 - /// - [Display(Name = "是否AGV配送")] - public bool EnableAgv { get; set; } = false; //是否AGV配送 - /// /// 描述 /// diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs index 4be81bc5d..6fabd8777 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs @@ -58,7 +58,7 @@ public partial class BasedataApplicationAutoMapperProfile : Profile EquipmentPartCodeAutoMapperProfile(); EquipmentLocCapAutoMapperProfile(); PostionLocationAutoMapperProfile(); - + LocationDeliveryAutoMapperProfile(); } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/LocationDeliverys/LocationDeliveryAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/LocationDeliverys/LocationDeliveryAppService.cs index 33e7cc87c..e2ad1c7fd 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/LocationDeliverys/LocationDeliveryAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/LocationDeliverys/LocationDeliveryAppService.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Caching; +using Volo.Abp.ObjectMapping; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain.Shared; @@ -41,4 +42,17 @@ public class LocationDeliveryAppService { await base.ValidateImportModelAsync(importInput, validationRresult).ConfigureAwait(false); } + [HttpPost("get-by-from-location-and-to-location")] + public async Task GetByFromLocationCodeAndToLocationCodeAsync(string fromLocationCode,string toLocationCode) + { + var locationDelivery=await _repository.FindAsync(p => p.FromLocationCode == fromLocationCode && p.ToLocationCode == toLocationCode).ConfigureAwait(false); + if (locationDelivery == null) + { + return null; + } + else + { + return ObjectMapper.Map(locationDelivery); + } + } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Locations/Location.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Locations/Location.cs index a34cb3a29..516fffb30 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Locations/Location.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Locations/Location.cs @@ -98,5 +98,4 @@ public class Location : SfsBaseDataAggregateRootBase, IHasCode, IHasName, IHasLo public bool EnableReturnFromCustomer { get; set; } = true; // 可以接收客户退货 public bool EnableSplitBox { get; set; } = true; //是否可以拆箱 public bool EnableSplitPallet { get; set; } = true; //是否可以拆托 - public bool EnableAgv { get; set; } = false; //是否AGV配送 } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContext.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContext.cs index 16b132e5d..229108e8f 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContext.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContext.cs @@ -60,7 +60,7 @@ public class BasedataDbContext : AbpDbContext, IBasedataDbCon public DbSet SplitPackingRecs { get; set; } public DbSet PostionLocations { get; set; } - public DbSet LocationDeliverys { get; set; } + public DbSet LocationDeliverys { get; set; } public BasedataDbContext(DbContextOptions options) : base(options) diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/IBasedataDbContext.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/IBasedataDbContext.cs index 44e67cb70..fbc46588c 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/IBasedataDbContext.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/IBasedataDbContext.cs @@ -56,5 +56,5 @@ public interface IBasedataDbContext : IEfCoreDbContext public DbSet SplitPackingRecs { get; set; } - public DbSet LocationDeliverys { get; set; } + public DbSet LocationDeliverys { get; set; } } 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 500a2ded1..78ea55776 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 @@ -59,6 +59,7 @@ public class AssembleIssueJobAppService private readonly ILogger _logger; private readonly IPostionLocationAppService _postionLocationAppService; + private readonly ILocationDeliveryAppService _locationDeliveryAppService; public AssembleIssueJobAppService( ILogger logger, @@ -70,15 +71,14 @@ public class AssembleIssueJobAppService , IOptions options, ITransferLibRequestAppService transferLibRequestAppService, ICurrentUser currentUser, UnitOfWorkManager unitOfWorkManager , IOptions agvOptions - , IPostionLocationAppService postionLocationAppService - - ) : base( + , IPostionLocationAppService postionLocationAppService, ILocationDeliveryAppService locationDeliveryAppService) : base( repository, assembleIssueJobManager ) { _postionLocationAppService = postionLocationAppService; + _locationDeliveryAppService = locationDeliveryAppService; _assembleIssueJobManager = assembleIssueJobManager; _locationAppService = locationAppService; _assembleIssueNoteAppService = assembleIssueNoteAppService; @@ -120,17 +120,20 @@ public class AssembleIssueJobAppService : _options.Value.StereosPassword; } - //如果是Agv - var agvFlag = await UpdateJobStatusWaitByAgvAsync(input).ConfigureAwait(false); - if (agvFlag) + if (dimensionalStorehouseflag == false) { - input.IsClaims = true; - input.ClaimsUserId = string.IsNullOrEmpty(_options.Value.StereosUser) - ? "AGV" - : _options.Value.StereosUser; - input.ClaimsUserName = string.IsNullOrEmpty(_options.Value.StereosPassword) - ? "AGV" - : _options.Value.StereosPassword; + //如果是Agv + var agvFlag = await UpdateJobStatusWaitByAgvAsync(input).ConfigureAwait(false); + if (agvFlag) + { + input.IsClaims = true; + input.ClaimsUserId = string.IsNullOrEmpty(_options.Value.StereosUser) + ? "AGV" + : _options.Value.StereosUser; + input.ClaimsUserName = string.IsNullOrEmpty(_options.Value.StereosPassword) + ? "AGV" + : _options.Value.StereosPassword; + } } } @@ -795,10 +798,10 @@ public class AssembleIssueJobAppService private async Task DoingAgvAsync(AssembleIssueJobDTO assembleIssueJobDto) { var jobDetailInputdetail = assembleIssueJobDto.Details.FirstOrDefault(); - var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendFromLocationCode) - .ConfigureAwait(false); + var locationDeliveryDto = await _locationDeliveryAppService.GetByFromLocationCodeAndToLocationCodeAsync( + jobDetailInputdetail.RecommendFromLocationCode, jobDetailInputdetail.RecommendToLocationCode).ConfigureAwait(false); - if (loctionDto.EnableAgv) + if (locationDeliveryDto != null && locationDeliveryDto.EnumLocationDeliveryType == EnumLocationDeliveryType.Agv) { //TODO AGV var ret = await CallAgvAsync(assembleIssueJobDto).ConfigureAwait(false); @@ -825,15 +828,15 @@ public class AssembleIssueJobAppService { var jobDetailInputdetail = input.Details.FirstOrDefault(); - var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendFromLocationCode) - .ConfigureAwait(false); - - if (loctionDto.EnableAgv) + var locationDeliveryDto=await _locationDeliveryAppService.GetByFromLocationCodeAndToLocationCodeAsync( + jobDetailInputdetail.RecommendFromLocationCode, jobDetailInputdetail.RecommendToLocationCode).ConfigureAwait(false); + + if (locationDeliveryDto!=null&& locationDeliveryDto.EnumLocationDeliveryType==EnumLocationDeliveryType.Agv) { input.JobStatus = EnumJobStatus.WaitAgv; return true; } - + return false; } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestManager.cs index 8046a8073..dd9bdf274 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestManager.cs @@ -62,6 +62,6 @@ public class AssembleIssueRequestManager await Task.CompletedTask.ConfigureAwait(false); var entity = await _repository.GetAsync(request.Id).ConfigureAwait(false); entity.Details = request.Details; - return await _repository.UpdateAsync(entity, true).ConfigureAwait(false); + return await _repository.UpdateAsync(entity).ConfigureAwait(false); } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/IssueRequest/AssembleIssueRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/IssueRequest/AssembleIssueRequestEventHandler.cs index 34e4b3120..26de079f0 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/IssueRequest/AssembleIssueRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/IssueRequest/AssembleIssueRequestEventHandler.cs @@ -629,7 +629,7 @@ public class AssembleIssueRequestEventHandler List addAssembleIssueJobDtos) { //原有任务 - var existAssembleIssueJobDtos = await _assembleIssueJobAppService + var existAssembleIssueJobDtos = await _assembleIssueJobAppService .GetByRequestNumberAsync(assembleIssueRequest.Number) .ConfigureAwait(false);