From c275f8ff051d506ee4f7898dd7a0afd9223712dc Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Mon, 15 Apr 2024 17:27:29 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Incoming/InjectionMoldingRequestReader.cs | 10 +++++++++- .../InjectionMoldingTaskAgentModule.cs | 8 ++++---- .../serilogsettings.json | 4 ++-- .../Enums/Store/EnumIssueType.cs | 8 ++++++++ 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs index a4cf337f7..c1f1dc94c 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs @@ -64,7 +64,15 @@ public class InjectionMoldingRequestReader : IReader Action = "<>", Column = "RequestStatus", Logic = EnumFilterLogic.And.ToString(), - Value = ((int)EnumRequestStatus.Completed).ToString() + Value = (EnumRequestStatus.Completed).ToString() + }; + jobCondition.Condition.Filters.Add(filter); + filter = new Filter() + { + Action = "==", + Column = "Type", + Logic = EnumFilterLogic.And.ToString(), + Value = "Vision" }; jobCondition.Condition.Filters.Add(filter); var jobs = await _injectionRequest.GetAllListByFilterAsync(jobCondition).ConfigureAwait(false); diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/InjectionMoldingTaskAgentModule.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/InjectionMoldingTaskAgentModule.cs index 285b11d99..3508f367c 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/InjectionMoldingTaskAgentModule.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/InjectionMoldingTaskAgentModule.cs @@ -37,8 +37,8 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent; typeof(StoreApplicationContractsModule), typeof(InventoryApplicationContractsModule), typeof(LabelApplicationContractsModule), - typeof(DataExchangeDomainModule), - typeof(DataExchangeEntityFrameworkCoreModule), + //typeof(DataExchangeDomainModule), + //typeof(DataExchangeEntityFrameworkCoreModule), //typeof(DataExchangeDomainFawtygMesModule), //typeof(DataExchangeEntityFrameworkCoreFawtygModule), typeof(AbpAccountApplicationContractsModule) @@ -80,9 +80,9 @@ public class InjectionMoldingTaskAgentModule : AbpModule var configuration = context.Services.GetConfiguration(); var env = context.Services.GetSingletonInstance(); - context.SetConsoleTitleOfConsoleApp("MesAgent", env.EnvironmentName); + context.SetConsoleTitleOfConsoleApp("InjectionAgent", env.EnvironmentName); - ConfigureDbContext(); + //ConfigureDbContext(); ConfigureOptions(configuration); diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/serilogsettings.json b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/serilogsettings.json index c07a351db..d8e55694c 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/serilogsettings.json +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/serilogsettings.json @@ -16,7 +16,7 @@ { "Name": "File", "Args": { - "path": "..//Logs//MesAgent//MesAgent_.log", + "path": "..//Logs//InjectionAgent//InjectionAgent_.log", "rollingInterval": "Day", "fileSizeLimitBytes": "52428800", "rollOnFileSizeLimit": "true", @@ -36,4 +36,4 @@ ], "Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId" ] } -} \ No newline at end of file +} diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumIssueType.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumIssueType.cs index 42dcf1439..fb4faedca 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumIssueType.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumIssueType.cs @@ -18,4 +18,12 @@ public enum EnumIssueType /// 按数量 叫料 /// Qty=2, + + + /// + /// 按视觉 叫料 + /// + Vision = 3, + + } From 3d3e160191a769c6b12705218e7da21b3e233d67 Mon Sep 17 00:00:00 2001 From: zhouhongjun <565221961@qq.com> Date: Mon, 15 Apr 2024 17:31:35 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=96=B7=E6=B6=82=E3=80=81=E6=B3=A8?= =?UTF-8?q?=E5=A1=91=E3=80=81=E8=A3=85=E9=85=8D=E5=8F=AB=E6=96=99=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AssembleRequestAutoMapperProfile.cs | 7 +- .../CoatingMaterialRequestAppService.cs | 35 +-- ...CoatingMaterialRequestAutoMapperProfile.cs | 9 +- .../InjectionRequestAppService.cs | 1 + .../AssembleRequests/AssembleRequest.cs | 10 +- .../AssembleRequests/AssembleRequestDetail.cs | 48 ++-- .../AssembleRequestManager.cs | 77 +----- .../IAssembleRequestManager.cs | 5 +- .../CoatingMaterialRequest.cs | 22 +- .../CoatingMaterialRequestDetail.cs | 44 ++-- .../CoatingMaterialRequestManager.cs | 244 +----------------- .../ICoatingMaterialRequestManager.cs | 5 +- .../IInjectionRequestManager.cs | 3 +- .../InjectionRequestDetail.cs | 2 +- .../InjectionRequestManager.cs | 78 +----- ...RequestDbContextModelCreatingExtensions.cs | 9 +- ...RequestDbContextModelCreatingExtensions.cs | 11 +- .../Requests/AssembleRequestEventHandler.cs | 6 +- .../CoatingMaterialRequestEventHandler.cs | 8 +- .../Note/CoatingIssueNoteEventHandler.cs | 2 +- 20 files changed, 84 insertions(+), 542 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/AssembleRequests/AssembleRequestAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/AssembleRequests/AssembleRequestAutoMapperProfile.cs index 182f8a6ed..41423325d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/AssembleRequests/AssembleRequestAutoMapperProfile.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/AssembleRequests/AssembleRequestAutoMapperProfile.cs @@ -28,8 +28,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile CreateMap() .IgnoreAuditedObjectProperties() - .ForMember(x => x.Type, y => y.MapFrom(t => t.Type.ToString())) - .Ignore(x => x.ProdLine) + .ForMember(x => x.Type, y => y.MapFrom(t => t.Type.ToString())) .Ignore(x => x.UseOnTheWayLocation) .Ignore(x => x.Details) .Ignore(x => x.Remark) @@ -49,9 +48,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile .Ignore(x => x.ToLocationArea) .Ignore(x => x.ToLocationGroup) .Ignore(x => x.ItemName).Ignore(x => x.ItemDesc1).Ignore(x => x.ItemDesc2) - .Ignore(x => x.ProdLine) - .Ignore(x => x.WorkStation) - .Ignore(x => x.ExpiredTime) + .Ignore(x => x.ProdLine) .Ignore(x => x.IssuedQty) .Ignore(x => x.ReceivedQty) .Ignore(x => x.ToBeIssuedQty) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs index 3acfc1ae7..a36dc70e0 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs @@ -160,16 +160,7 @@ public class CoatingMaterialRequestAppService : SfsStoreRequestAppServiceBase 0) - { - throw new UserFriendlyException($"{input.PreparationPlanNumber} 备料计划已存在要料申请"); - } - } + foreach (var item in input.Details) //赋值生产线 { @@ -268,15 +259,7 @@ public class CoatingMaterialRequestAppService : SfsStoreRequestAppServiceBase 0) - { - throw new UserFriendlyException($"{input.PreparationPlanNumber} 备料计划已存在要料申请"); - } - } + foreach (var detailInput in input.Details) //赋值生产线 { @@ -337,19 +320,7 @@ public class CoatingMaterialRequestAppService : SfsStoreRequestAppServiceBase - /// 检验备料计划是否存在要料请求 - /// - /// - /// - private async Task> CheckExistByPreparationPlanAsync(string preparationPlanNumber) - { - var entities = await _repository.GetListAsync(c => c.PreparationPlanNumber == preparationPlanNumber) - .ConfigureAwait(false); - return entities; - } + } /// /// 根据类型获取叫料请求 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAutoMapperProfile.cs index 360416b97..9e6aa8499 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAutoMapperProfile.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAutoMapperProfile.cs @@ -27,10 +27,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile CreateMap() .IgnoreAuditedObjectProperties() - .ForMember(x => x.Type, y => y.MapFrom(t => t.Type.ToString())) - .Ignore(x => x.PreparationPlanNumber) - .Ignore(x => x.ProdLine) - .Ignore(x => x.Workshop) + .ForMember(x => x.Type, y => y.MapFrom(t => t.Type.ToString())) .Ignore(x => x.UseOnTheWayLocation) .Ignore(x => x.Details) .Ignore(x => x.Remark) @@ -50,9 +47,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile .Ignore(x => x.ToLocationArea) .Ignore(x => x.ToLocationGroup) .Ignore(x => x.ItemName).Ignore(x => x.ItemDesc1).Ignore(x => x.ItemDesc2) - .Ignore(x => x.ProdLine) - .Ignore(x => x.WorkStation) - .Ignore(x => x.ExpiredTime) + .Ignore(x => x.ProdLine) .Ignore(x => x.IssuedQty) .Ignore(x => x.ReceivedQty) .Ignore(x => x.ToBeIssuedQty) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAppService.cs index d253e27db..cbd5ae7b0 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAppService.cs @@ -186,6 +186,7 @@ public class InjectionRequestAppService : SfsStoreRequestAppServiceBase -/// 装配申请 +/// 装配叫料申请 /// public class AssembleRequest : SfsStoreRequestAggregateRootBase { @@ -14,13 +14,7 @@ public class AssembleRequest : SfsStoreRequestAggregateRootBase [Display(Name = "叫料类型")] [IgnoreUpdate] - public string Type { get; set; } - - /// - /// 生产线 - /// - [IgnoreUpdate] - public string ProdLine { get; set; } + public string Type { get; set; } /// /// 使用在途库 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/AssembleRequestDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/AssembleRequestDetail.cs index 97c0a711d..e6524a217 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/AssembleRequestDetail.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/AssembleRequestDetail.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared; @@ -6,60 +7,51 @@ using Win_in.Sfs.Shared.Domain.Shared; namespace Win_in.Sfs.Wms.Store.Domain; /// -/// 装配申请明细 +/// 装配叫料申请明细 /// public class AssembleRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasToLocation { + + #region 目标库位信息 + /// - /// 到库位 + /// 目标库位 /// + [Display(Name = "目标库位")] + [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] public string ToLocationCode { get; set; } /// - /// 到库区 + /// 目标库区 /// + [Display(Name = "目标库区")] public string ToLocationArea { get; set; } /// - /// 到库位组 + /// 目标库位组 /// + [Display(Name = "目标库位组")] public string ToLocationGroup { get; set; } /// - /// 到ERP库位 + /// 目标ERP储位 /// + [Display(Name = "目标ERP储位")] public string ToLocationErpCode { get; set; } /// - /// 到仓库 + /// 目标仓库 /// + [Display(Name = "目标仓库")] public string ToWarehouseCode { get; set; } - /// - /// 来源库区 - /// - public string FromLocationArea { get; set; } - - // /// - // /// 在途库库位 - // /// - // public string OnTheWayLocationCode { get; set; } + #endregion /// /// 生产线 /// public string ProdLine { get; set; } - /// - /// 工作中心 - /// - public string WorkStation { get; set; } - - /// - /// 过期时间 - /// - public DateTime ExpiredTime { get; set; } - /// /// 已发数量 /// @@ -102,4 +94,10 @@ public class AssembleRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasToLoca /// 推荐类型 /// public EnumRecommendType RecommendType { get; set; } + + /// + /// 需求箱数量 + /// + [Display(Name = "需求箱数量")] + public decimal BoxQty { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/AssembleRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/AssembleRequestManager.cs index 94040930d..7d9d76b1f 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/AssembleRequestManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/AssembleRequestManager.cs @@ -14,23 +14,21 @@ public class AssembleRequestManager , IAssembleRequestManager { private readonly IAssembleRequestRepository _repository; - private readonly IIssueJobRepository _issueJobRepository; + public AssembleRequestManager( IAssembleRequestRepository repository - , IIssueJobRepository issueJobRepository + ) : base(repository) { _repository = repository; - _issueJobRepository = issueJobRepository; + } - #region 东阳V2 #endregion - /// /// 创建 /// @@ -49,74 +47,7 @@ public class AssembleRequestManager return entity; } - public virtual async Task UpdateDetailsAsync(AssembleRequest newEntity) - { - var oldEntity = await Repository.FindAsync(newEntity.Id, true).ConfigureAwait(false); - if(oldEntity!=null) - { - foreach (var newDetail in newEntity.Details) - { - oldEntity.ReplaceDetail(newDetail.Id, newDetail); - } - - foreach (var detail in oldEntity.Details) - { - SetMaterialRequestDetailStatus(detail); - } - - await SetMaterialRequestStatusAsync(oldEntity).ConfigureAwait(false); - - await Repository.UpdateAsync(oldEntity).ConfigureAwait(false); - } - - } - - private void SetMaterialRequestDetailStatus(AssembleRequestDetail detail) - { - if (detail.ReceivedQty >= detail.Qty)//执行的时候 实际收料 多余 要料数 - { - detail.Status = EnumStatus.Close; - } - else - { - detail.Status = EnumStatus.Open; - } - } - - private async Task SetMaterialRequestStatusAsync(AssembleRequest materialRequest) - { - if (materialRequest.Details.All(p => p.Status == EnumStatus.Close)) - { - materialRequest.RequestStatus = EnumRequestStatus.Completed; - } - else - { - var issueJobs = await _issueJobRepository.GetListAsync(t => t.MaterialRequestNumber == materialRequest.Number).ConfigureAwait(false); - if (issueJobs.Count > 0) - { - if (issueJobs.All(t => t.JobStatus is EnumJobStatus.Done or EnumJobStatus.Closed or EnumJobStatus.Cancelled)) - { - if (materialRequest.Details.All(p => p.ReceivedQty >= p.Qty)) - { - materialRequest.RequestStatus = EnumRequestStatus.Completed; - } - else - { - materialRequest.RequestStatus = EnumRequestStatus.Partial; - } - } - else - { - materialRequest.RequestStatus = EnumRequestStatus.Partial; - } - } - else - { - materialRequest.RequestStatus = EnumRequestStatus.Partial; - } - } - } - + public virtual async Task CompleteAsync(string number) { var entity = await GetByNumberAsync(number).ConfigureAwait(false); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/IAssembleRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/IAssembleRequestManager.cs index 653efecd3..ce48dbfd9 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/IAssembleRequestManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/AssembleRequests/IAssembleRequestManager.cs @@ -6,10 +6,7 @@ using Win_in.Sfs.Shared.Domain; public interface IAssembleRequestManager : ISfsStoreRequestManager, IBulkImportService -{ - - Task UpdateDetailsAsync(AssembleRequest entity); - +{ Task CompleteAsync(string number); Task CreateBynNumberAsync(AssembleRequest entity); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequest.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequest.cs index cd89d4c7a..0fb1bb36d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequest.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequest.cs @@ -6,7 +6,7 @@ using Win_in.Sfs.Wms.Store.Domain; namespace Win_in.Sfs.Wms.Store.Requests.MaterialRequests; /// -/// 喷涂要料申请 +/// 喷涂叫料申请 /// public class CoatingMaterialRequest : SfsStoreRequestAggregateRootBase { @@ -15,25 +15,7 @@ public class CoatingMaterialRequest : SfsStoreRequestAggregateRootBase [Display(Name = "叫料类型")] [IgnoreUpdate] - public string Type { get; set; } - - /// - /// 喷涂要料计划单号 - /// - [IgnoreUpdate] - public string PreparationPlanNumber { get; set; } - - /// - /// 生产线 - /// - [IgnoreUpdate] - public string ProdLine { get; set; } - - /// - /// 车间 - /// - [IgnoreUpdate] - public string Workshop { get; set; } + public string Type { get; set; } /// /// 使用在途库 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetail.cs index 2b197b158..68cf75e44 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetail.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetail.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared; @@ -9,56 +10,46 @@ namespace Win_in.Sfs.Wms.Store.Requests.MaterialRequests; public class CoatingMaterialRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasToLocation { + #region 目标库位信息 + /// - /// 到库位 + /// 目标库位 /// + [Display(Name = "目标库位")] + [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] public string ToLocationCode { get; set; } /// - /// 到库区 + /// 目标库区 /// + [Display(Name = "目标库区")] public string ToLocationArea { get; set; } /// - /// 到库位组 + /// 目标库位组 /// + [Display(Name = "目标库位组")] public string ToLocationGroup { get; set; } /// - /// 到ERP库位 + /// 目标ERP储位 /// + [Display(Name = "目标ERP储位")] public string ToLocationErpCode { get; set; } /// - /// 到仓库 + /// 目标仓库 /// + [Display(Name = "目标仓库")] public string ToWarehouseCode { get; set; } - /// - /// 来源库区 - /// - public string FromLocationArea { get; set; } - - // /// - // /// 在途库库位 - // /// - // public string OnTheWayLocationCode { get; set; } + #endregion /// /// 生产线 /// public string ProdLine { get; set; } - /// - /// 工作中心 - /// - public string WorkStation { get; set; } - - /// - /// 过期时间 - /// - public DateTime ExpiredTime { get; set; } - /// /// 已发数量 /// @@ -102,4 +93,9 @@ public class CoatingMaterialRequestDetail : SfsStoreDetailWithQtyEntityBase, IHa /// public EnumRecommendType RecommendType { get; set; } + /// + /// 需求箱数量 + /// + [Display(Name = "需求箱数量")] + public decimal BoxQty { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestManager.cs index 894d94c18..cde7e5cb9 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestManager.cs @@ -16,7 +16,7 @@ public class CoatingMaterialRequestManager , ICoatingMaterialRequestManager { private readonly ICoatingMaterialRequestRepository _repository; - private readonly ICoatingIssueJobRepository _issueJobRepository; + public CoatingMaterialRequestManager( ICoatingMaterialRequestRepository repository @@ -24,7 +24,7 @@ public class CoatingMaterialRequestManager ) : base(repository) { _repository = repository; - _issueJobRepository = issueJobRepository; + } /// @@ -44,75 +44,7 @@ public class CoatingMaterialRequestManager await _repository.InsertAsync(entity).ConfigureAwait(false); return entity; } - - public virtual async Task UpdateDetailsAsync(CoatingMaterialRequest newEntity) - { - var oldEntity = await Repository.FindAsync(newEntity.Id, true).ConfigureAwait(false); - if (oldEntity != null) - { - foreach (var newDetail in newEntity.Details) - { - oldEntity.ReplaceDetail(newDetail.Id, newDetail); - } - - foreach (var detail in oldEntity.Details) - { - SetMaterialRequestDetailStatus(detail); - } - - await SetMaterialRequestStatus(oldEntity).ConfigureAwait(false); - - await Repository.UpdateAsync(oldEntity).ConfigureAwait(false); - } - - } - - private void SetMaterialRequestDetailStatus(CoatingMaterialRequestDetail detail) - { - if (detail.ReceivedQty >= detail.Qty)//执行的时候 实际收料 多余 要料数 - { - detail.Status = EnumStatus.Close; - } - else - { - detail.Status = EnumStatus.Open; - } - } - - private async Task SetMaterialRequestStatus(CoatingMaterialRequest materialRequest) - { - if (materialRequest.Details.All(p => p.Status == EnumStatus.Close)) - { - materialRequest.RequestStatus = EnumRequestStatus.Completed; - } - else - { - var issueJobs = await _issueJobRepository.GetListAsync(t => t.MaterialRequestNumber == materialRequest.Number).ConfigureAwait(false); - if (issueJobs.Count > 0) - { - if (issueJobs.All(t => t.JobStatus is EnumJobStatus.Done or EnumJobStatus.Closed or EnumJobStatus.Cancelled)) - { - if (materialRequest.Details.All(p => p.ReceivedQty >= p.Qty)) - { - materialRequest.RequestStatus = EnumRequestStatus.Completed; - } - else - { - materialRequest.RequestStatus = EnumRequestStatus.Partial; - } - } - else - { - materialRequest.RequestStatus = EnumRequestStatus.Partial; - } - } - else - { - materialRequest.RequestStatus = EnumRequestStatus.Partial; - } - } - } - + public virtual async Task CompleteAsync(string number) { var entity = await GetByNumberAsync(number).ConfigureAwait(false); @@ -121,90 +53,7 @@ public class CoatingMaterialRequestManager await CompleteAsync(entity).ConfigureAwait(false); } } - - #region 公有 - - /* - // /// - // /// 处理 - // /// - // /// - // public virtual async Task Handle(Guid id) - // { - // var entity =await Repository.GetAsync(id); - // if (entity == null) - // { - // return false; - // } - // entity.Handle(); - // await Repository.UpdateAsync(entity); - // - // await HandledPublishAsync(entity); - // return true; - // } - // - // private async Task HandledPublishAsync(MaterialRequest entity) - // { - // //发布,以生成发料任务 - // var eto = BuildMaterialRequestHandledETO(entity); - // await DistributedEventBus.PublishAsync(eto); - // } - // - // /// - // /// 关闭 - // /// - // /// - // public virtual async Task Close(Guid id) - // { - // var entity = await Repository.GetAsync(id); - // if (entity == null) - // { - // return false; - // } - // entity.Close(); - // await Repository.UpdateAsync(entity); - // - // //发布,以关闭发料任务 - // var eto = BuildMaterialRequestClosedETO(entity); - // await DistributedEventBus.PublishAsync(eto); - // return true; - // } - // - // /// - // /// 打开 - // /// - // /// - // public virtual async Task Open(Guid id) - // { - // var entity = await Repository.GetAsync(id); - // if (entity == null) - // { - // return false; - // } - // entity.Open(); - // - // await Repository.UpdateAsync(entity); - // - // //发布,以打开发料任务 - // var eto = BuildMaterialRequestOpenedETO(entity); - // await DistributedEventBus.PublishAsync(eto); - // return true; - // } - - public virtual async Task CreateAndHandleAsync(MaterialRequest entity) - { - - await base.CreateAsync(entity); - - await base.HandleAsync(entity.Id); - - return entity; - } - */ - - - #endregion - + #region Import /// @@ -221,89 +70,6 @@ public class CoatingMaterialRequestManager } #endregion - - /* - #region 私有 - - private MaterialRequestOpenedETO BuildMaterialRequestOpenedETO(MaterialRequest materialRequest) - { - var materialRequestETO = new MaterialRequestOpenedETO() - { - Number = materialRequest.Number, - Workshop = materialRequest.Workshop, - Status = materialRequest.Status, - Details = BuildMaterialRequestDetailETO(materialRequest.Details) - }; - return materialRequestETO; - } - - private MaterialRequestClosedETO BuildMaterialRequestClosedETO(MaterialRequest materialRequest) - { - var materialRequestETO = new MaterialRequestClosedETO() - { - Company = materialRequest.Company, - Number = materialRequest.Number - }; - return materialRequestETO; - } - - private MaterialRequestHandledETO BuildMaterialRequestHandledETO(MaterialRequest materialRequest) - { - var materialRequestETO = new MaterialRequestHandledETO() - { - Company = materialRequest.Company, - Number = materialRequest.Number, - Workshop = materialRequest.Workshop, - Status = materialRequest.Status, - Details = BuildMaterialRequestDetailETO(materialRequest.Details) - }; - return materialRequestETO; - } - - private List BuildMaterialRequestDetailETO(List materialRequestDetail) - { - var list = new List(); - foreach (var detail in materialRequestDetail) - { - var materialRequestDetailETO = new MaterialRequestDetailETO() - { - Number = detail.Number, - Item = detail.Item, - ItemCode = detail.ItemCode, - Qty = detail.Qty, - ToLocationCode = detail.ToLocationCode, - ProdLine = detail.ProdLine, - WorkStation = detail.WorkStation, - ExpiredTime = detail.ExpiredTime, - Status = detail.Status - }; - list.Add(materialRequestDetailETO); - } - return list; - } - - #endregion - */ + } -///// -///// 为了解决补料时 无法拿到订阅错误信息 -///// -///// -///// -///// -//public virtual async Task CreateAndHandleAsync(MaterialRequest entity, bool flag) -//{ -// await entity.Handle(); -// foreach (var detail in entity.Details) -// { -// detail.Status = EnumStoreStatus.Handle; -// } -// await base.CreateAsync(entity); - -// //发布,以打开发料任务?? -// //var eto = BuildMaterialRequestHandledETO(entity); -// //await DistributedEventBus.PublishAsync(eto); - -// return entity; -//} diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/ICoatingMaterialRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/ICoatingMaterialRequestManager.cs index 5a0606363..6e85da61a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/ICoatingMaterialRequestManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/CoatingMaterialRequests/ICoatingMaterialRequestManager.cs @@ -7,10 +7,7 @@ using Win_in.Sfs.Shared.Domain; public interface ICoatingMaterialRequestManager : ISfsStoreRequestManager, IBulkImportService -{ - // Task CreateAndHandleAsync(MaterialRequest entity); - Task UpdateDetailsAsync(CoatingMaterialRequest entity); - +{ Task CompleteAsync(string number); Task CreateBynNumberAsync(CoatingMaterialRequest entity); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/IInjectionRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/IInjectionRequestManager.cs index 551903daa..efa9c5dd5 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/IInjectionRequestManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/IInjectionRequestManager.cs @@ -5,8 +5,7 @@ namespace Win_in.Sfs.Wms.Store.Domain; public interface IInjectionRequestManager : ISfsStoreRequestManager, IBulkImportService -{ - Task UpdateDetailsAsync(InjectionRequest entity); +{ Task CompleteAsync(string number); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestDetail.cs index 220f3254c..e1cfa692d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestDetail.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestDetail.cs @@ -7,7 +7,7 @@ using Win_in.Sfs.Shared.Domain.Shared; namespace Win_in.Sfs.Wms.Store.Domain; /// -/// 注塑申请明细 +/// 注塑叫料申请明细 /// public class InjectionRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasToLocation { diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestManager.cs index cff1683fa..5c09a2626 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestManager.cs @@ -11,18 +11,17 @@ public class InjectionRequestManager , IInjectionRequestManager { private readonly IInjectionRequestRepository _repository; - private readonly IIssueJobRepository _issueJobRepository; + private readonly IInjectionJobRepository _injectionJobRepository; public InjectionRequestManager( IInjectionRequestRepository repository - , IIssueJobRepository issueJobRepository + , IInjectionJobRepository injectionJobRepository ) : base(repository) { _repository = repository; - _issueJobRepository = issueJobRepository; + _injectionJobRepository = injectionJobRepository; } - #region 东阳V2 #endregion @@ -47,76 +46,7 @@ public class InjectionRequestManager await _repository.InsertAsync(entity).ConfigureAwait(false); return entity; } - - public virtual async Task UpdateDetailsAsync(InjectionRequest newEntity) - { - var oldEntity = await Repository.FindAsync(newEntity.Id).ConfigureAwait(false); - if (oldEntity != null) - { - foreach (var newDetail in newEntity.Details) - { - oldEntity.ReplaceDetail(newDetail.Id, newDetail); - } - - foreach (var detail in oldEntity.Details) - { - SetMaterialRequestDetailStatus(detail); - } - - await SetMaterialRequestStatusAsync(oldEntity).ConfigureAwait(false); - - await Repository.UpdateAsync(oldEntity).ConfigureAwait(false); - } - } - - private void SetMaterialRequestDetailStatus(InjectionRequestDetail detail) - { - if (detail.ReceivedQty >= detail.Qty) //执行的时候 实际收料 多余 要料数 - { - detail.Status = EnumStatus.Close; - } - else - { - detail.Status = EnumStatus.Open; - } - } - - private async Task SetMaterialRequestStatusAsync(InjectionRequest materialRequest) - { - if (materialRequest.Details.All(p => p.Status == EnumStatus.Close)) - { - materialRequest.RequestStatus = EnumRequestStatus.Completed; - } - else - { - var issueJobs = await _issueJobRepository - .GetListAsync(t => t.MaterialRequestNumber == materialRequest.Number).ConfigureAwait(false); - if (issueJobs.Count > 0) - { - if (issueJobs.All(t => - t.JobStatus is EnumJobStatus.Done or EnumJobStatus.Closed or EnumJobStatus.Cancelled)) - { - if (materialRequest.Details.All(p => p.ReceivedQty >= p.Qty)) - { - materialRequest.RequestStatus = EnumRequestStatus.Completed; - } - else - { - materialRequest.RequestStatus = EnumRequestStatus.Partial; - } - } - else - { - materialRequest.RequestStatus = EnumRequestStatus.Partial; - } - } - else - { - materialRequest.RequestStatus = EnumRequestStatus.Partial; - } - } - } - + public virtual async Task CompleteAsync(string number) { var entity = await GetByNumberAsync(number).ConfigureAwait(false); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/MaterialRequests/AssembleRequests/AssembleRequestDbContextModelCreatingExtensions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/MaterialRequests/AssembleRequests/AssembleRequestDbContextModelCreatingExtensions.cs index 8d53f0ac3..1d6944096 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/MaterialRequests/AssembleRequests/AssembleRequestDbContextModelCreatingExtensions.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/MaterialRequests/AssembleRequests/AssembleRequestDbContextModelCreatingExtensions.cs @@ -19,8 +19,7 @@ public static class AssembleRequestDbContextModelCreatingExtensions b.ConfigureSfsStoreBase(); //Properties - b.Property(q => q.Type).HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength); + b.Property(q => q.Type).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.RequestStatus).HasMaxLength(SfsPropertyConst.NameLength).HasConversion(); //Relations @@ -45,10 +44,8 @@ public static class AssembleRequestDbContextModelCreatingExtensions b.Property(q => q.ToLocationErpCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.ToWarehouseCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.ToLocationArea).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.ToLocationGroup).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.ExpiredTime).IsRequired(); - b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.WorkStation).HasMaxLength(SfsPropertyConst.CodeLength); + b.Property(q => q.ToLocationGroup).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); + b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.IssuedQty).HasPrecision(18, 6); b.Property(q => q.ReceivedQty).HasPrecision(18, 6); b.Property(q => q.Status).HasMaxLength(SfsPropertyConst.NameLength).HasConversion(); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/MaterialRequests/CoatingMaterialRequestDbContextModelCreatingExtensions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/MaterialRequests/CoatingMaterialRequestDbContextModelCreatingExtensions.cs index ac89a7de5..3b69edce7 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/MaterialRequests/CoatingMaterialRequestDbContextModelCreatingExtensions.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/MaterialRequests/CoatingMaterialRequestDbContextModelCreatingExtensions.cs @@ -19,10 +19,7 @@ public static class CoatingMaterialRequestDbContextModelCreatingExtensions b.ConfigureSfsStoreBase(); //Properties - b.Property(q => q.Type).HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.PreparationPlanNumber).HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.Workshop).HasMaxLength(SfsPropertyConst.CodeLength); + b.Property(q => q.Type).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.RequestStatus).HasMaxLength(SfsPropertyConst.NameLength).HasConversion(); //Relations @@ -47,10 +44,8 @@ public static class CoatingMaterialRequestDbContextModelCreatingExtensions b.Property(q => q.ToLocationErpCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.ToWarehouseCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.ToLocationArea).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.ToLocationGroup).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.ExpiredTime).IsRequired(); - b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.WorkStation).HasMaxLength(SfsPropertyConst.CodeLength); + b.Property(q => q.ToLocationGroup).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); + b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.IssuedQty).HasPrecision(18, 6); b.Property(q => q.ReceivedQty).HasPrecision(18, 6); b.Property(q => q.Status).HasMaxLength(SfsPropertyConst.NameLength).HasConversion(); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/AssembleRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/AssembleRequestEventHandler.cs index 796227276..102ac62a2 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/AssembleRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/AssembleRequestEventHandler.cs @@ -209,7 +209,7 @@ public class AssembleRequestEventHandler ItemCode = assembleRequestDetail.ItemCode, Qty = assembleRequestDetail.ToBeIssuedQty, LocationTypes = transactionType.OutLocationTypes, - LocationAreas = new List { assembleRequestDetail.FromLocationArea }, + Statuses = transactionType.OutInventoryStatuses, }; //获取推荐库存 @@ -245,9 +245,7 @@ public class AssembleRequestEventHandler //ProductionLineDTO prodLine = await _productionLineAppService.GetByLocationGroupCodeAsync(toLocationGroupCode).ConfigureAwait(false); var detail = ObjectMapper.Map(balance); - detail.RequestLocationCode = assembleRequestDetail.ToLocationCode; - detail.WorkStation = assembleRequestDetail.WorkStation; - detail.ExpiredTime = assembleRequestDetail.ExpiredTime; + detail.RequestLocationCode = assembleRequestDetail.ToLocationCode; detail.PositionCode = assembleRequestDetail.PositionCode; detail.RecommendType = assembleRequestDetail.RecommendType; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CoatingMaterialRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CoatingMaterialRequestEventHandler.cs index 287ebabf2..d11d7ac96 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CoatingMaterialRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CoatingMaterialRequestEventHandler.cs @@ -209,7 +209,7 @@ public class CoatingMaterialRequestEventHandler ItemCode = CoatingMaterialRequestDetail.ItemCode, Qty = CoatingMaterialRequestDetail.ToBeIssuedQty, LocationTypes = transactionType.OutLocationTypes, - LocationAreas = new List { CoatingMaterialRequestDetail.FromLocationArea }, + Statuses = transactionType.OutInventoryStatuses, }; //获取推荐库存 @@ -231,7 +231,7 @@ public class CoatingMaterialRequestEventHandler jobDetails.Add(detail); CoatingMaterialRequestDetail.IssuedQty += recommend.Qty; - await _CoatingMaterialRequestManager.UpdateDetailsAsync(CoatingMaterialRequest).ConfigureAwait(false); + } } @@ -243,9 +243,7 @@ public class CoatingMaterialRequestEventHandler //ProductionLineDTO prodLine = await _productionLineAppService.GetByLocationGroupCodeAsync(toLocationGroupCode).ConfigureAwait(false); var detail = ObjectMapper.Map(balance); - detail.RequestLocationCode = CoatingMaterialRequestDetail.ToLocationCode; - detail.WorkStation = CoatingMaterialRequestDetail.WorkStation; - detail.ExpiredTime = CoatingMaterialRequestDetail.ExpiredTime; + detail.RequestLocationCode = CoatingMaterialRequestDetail.ToLocationCode; detail.PositionCode = CoatingMaterialRequestDetail.PositionCode; detail.RecommendType = CoatingMaterialRequestDetail.RecommendType; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Note/CoatingIssueNoteEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Note/CoatingIssueNoteEventHandler.cs index f41206079..d0b3ae53f 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Note/CoatingIssueNoteEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Note/CoatingIssueNoteEventHandler.cs @@ -94,7 +94,7 @@ public class CoatingIssueNoteEventHandler } } - await _materialRequestManager.UpdateDetailsAsync(materialRequest).ConfigureAwait(false); + } } } From ded20edb549e8d409077e3f3d201a76caf313d16 Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Tue, 16 Apr 2024 10:01:33 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Incoming/InjectionMoldingRequestReader.cs | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs index c1f1dc94c..b4e8d7c3e 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs @@ -28,14 +28,14 @@ public class InjectionMoldingRequestReader : IReader private readonly IInjectionRequestAppService _injectionRequest; private readonly IItemBasicAppService _itemService; private readonly ILocationAppService _locService; - private readonly IIncomingFromExternalManager _incomingFromExternalManager; + private readonly ILogger _logger; private readonly IOptions _options; private readonly IHttpClientFactory _httpClientFactory; public InjectionMoldingRequestReader( IInjectionRequestAppService injectionRequest - , IIncomingFromExternalManager incomingFromExternalManager + , ILogger logger , IOptions options , IHttpClientFactory httpClientFactory @@ -45,7 +45,7 @@ public class InjectionMoldingRequestReader : IReader ) { _injectionRequest = injectionRequest; - _incomingFromExternalManager = incomingFromExternalManager; + _logger = logger; _options = options; _httpClientFactory = httpClientFactory; @@ -54,6 +54,11 @@ public class InjectionMoldingRequestReader : IReader } + +/// +/// 读取注塑叫料任务 +/// +/// public virtual async Task> ReadAsync() { try @@ -180,8 +185,24 @@ public class InjectionMoldingRequestReader : IReader return "Error occurred"; } + private List Parse(string p_str) + { + List requests = new List(); + + + + + return System.Text.Json.JsonSerializer.Deserialize>(p_str); + } + + + + + + + - public class InjectionRequest +public class InjectionRequest { /// /// 零件M From b365c9ba8566611a8d627c69fa52e33185c0058e Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Tue, 16 Apr 2024 10:13:38 +0800 Subject: [PATCH 4/6] =?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 --- .../Notes/MesNotes/MesNotePermissions.cs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/MesNotes/MesNotePermissions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/MesNotes/MesNotePermissions.cs index 42a48c72f..b8af6ce7e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/MesNotes/MesNotePermissions.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/MesNotes/MesNotePermissions.cs @@ -11,20 +11,20 @@ public static class MesNotePermissions public const string Update = Default + "." + StorePermissions.UpdateStr; public const string Delete = Default + "." + StorePermissions.DeleteStr; - //完工收货报废记录 - public const string ProductScrapNote = StorePermissions.GroupName + "." + nameof(ProductScrapNote); - //线边报废记录 - public const string WipScrapNote = StorePermissions.GroupName + "." + nameof(WipScrapNote); + ////完工收货报废记录 + //public const string ProductScrapNote = StorePermissions.GroupName + "." + nameof(ProductScrapNote); + ////线边报废记录 + //public const string WipScrapNote = StorePermissions.GroupName + "." + nameof(WipScrapNote); public static void AddMesNotePermission(this PermissionGroupDefinition permissionGroup) { - var scrapNotePermission = permissionGroup.AddPermission(Default, StorePermissionDefinitionProvider.L(nameof(MesNote))); - scrapNotePermission.AddChild(Create, StorePermissionDefinitionProvider.L(StorePermissions.CreateStr)); - scrapNotePermission.AddChild(Update, StorePermissionDefinitionProvider.L(StorePermissions.UpdateStr)); - scrapNotePermission.AddChild(Delete, StorePermissionDefinitionProvider.L(StorePermissions.DeleteStr)); + var mesNotePermission = permissionGroup.AddPermission(Default, StorePermissionDefinitionProvider.L(nameof(MesNote))); + mesNotePermission.AddChild(Create, StorePermissionDefinitionProvider.L(StorePermissions.CreateStr)); + mesNotePermission.AddChild(Update, StorePermissionDefinitionProvider.L(StorePermissions.UpdateStr)); + mesNotePermission.AddChild(Delete, StorePermissionDefinitionProvider.L(StorePermissions.DeleteStr)); - permissionGroup.AddPermission(ProductScrapNote, StorePermissionDefinitionProvider.L(nameof(ProductScrapNote))); - permissionGroup.AddPermission(WipScrapNote, StorePermissionDefinitionProvider.L(nameof(WipScrapNote))); + //permissionGroup.AddPermission(ProductScrapNote, StorePermissionDefinitionProvider.L(nameof(ProductScrapNote))); + //permissionGroup.AddPermission(WipScrapNote, StorePermissionDefinitionProvider.L(nameof(WipScrapNote))); } } From fb8e75d745d96dae9e7d46dee4a0b42af53e58ec Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Tue, 16 Apr 2024 10:18:39 +0800 Subject: [PATCH 5/6] =?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 --- .../Notes/MesNotes/MesRecordPermissions.cs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/MesNotes/MesRecordPermissions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/MesNotes/MesRecordPermissions.cs index 22fee4186..1731e6542 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/MesNotes/MesRecordPermissions.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/MesNotes/MesRecordPermissions.cs @@ -11,20 +11,20 @@ public static class MesRecordPermissions public const string Update = Default + "." + StorePermissions.UpdateStr; public const string Delete = Default + "." + StorePermissions.DeleteStr; - //完工收货报废记录 - public const string ProductScrapNote = StorePermissions.GroupName + "." + nameof(ProductScrapNote); - //线边报废记录 - public const string WipScrapNote = StorePermissions.GroupName + "." + nameof(WipScrapNote); + ////完工收货报废记录 + //public const string ProductScrapNote = StorePermissions.GroupName + "." + nameof(ProductScrapNote); + ////线边报废记录 + //public const string WipScrapNote = StorePermissions.GroupName + "." + nameof(WipScrapNote); public static void AddMesRecordPermission(this PermissionGroupDefinition permissionGroup) { - var scrapNotePermission = permissionGroup.AddPermission(Default, StorePermissionDefinitionProvider.L(nameof(MesRecord))); - scrapNotePermission.AddChild(Create, StorePermissionDefinitionProvider.L(StorePermissions.CreateStr)); - scrapNotePermission.AddChild(Update, StorePermissionDefinitionProvider.L(StorePermissions.UpdateStr)); - scrapNotePermission.AddChild(Delete, StorePermissionDefinitionProvider.L(StorePermissions.DeleteStr)); + var mesRecordPermission = permissionGroup.AddPermission(Default, StorePermissionDefinitionProvider.L(nameof(MesRecord))); + mesRecordPermission.AddChild(Create, StorePermissionDefinitionProvider.L(StorePermissions.CreateStr)); + mesRecordPermission.AddChild(Update, StorePermissionDefinitionProvider.L(StorePermissions.UpdateStr)); + mesRecordPermission.AddChild(Delete, StorePermissionDefinitionProvider.L(StorePermissions.DeleteStr)); - permissionGroup.AddPermission(ProductScrapNote, StorePermissionDefinitionProvider.L(nameof(ProductScrapNote))); - permissionGroup.AddPermission(WipScrapNote, StorePermissionDefinitionProvider.L(nameof(WipScrapNote))); + //permissionGroup.AddPermission(ProductScrapNote, StorePermissionDefinitionProvider.L(nameof(ProductScrapNote))); + //permissionGroup.AddPermission(WipScrapNote, StorePermissionDefinitionProvider.L(nameof(WipScrapNote))); } } From fa042421f931bc45d4d56f93a399efad099eb2f8 Mon Sep 17 00:00:00 2001 From: zhouhongjun <565221961@qq.com> Date: Tue, 16 Apr 2024 10:25:06 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ContainerNotePermissions.cs | 15 +++--- .../DTOs/AssembleRequestDTO.cs | 6 --- .../DTOs/AssembleRequestDetailDTO.cs | 6 +++ .../Inputs/AssembleRequestDetailInput.cs | 50 +++++++++++-------- .../Inputs/AssembleRequestEditInput.cs | 43 ++++------------ .../Inputs/AssembleRequestImportInput.cs | 1 + .../CoatingMaterialRequestDTO.cs | 25 ++++------ .../CoatingMaterialRequestDetailDTO.cs | 49 +++--------------- .../CoatingMaterialRequestDetailInput.cs | 50 +++++++++++-------- .../CoatingMaterialRequestEditInput.cs | 43 ++++------------ .../CoatingMaterialRequestImportInput.cs | 1 + .../ICoatingMaterialRequestAppService.cs | 7 +-- .../Inputs/InjectionRequestEditInput.cs | 19 +++---- .../CoatingMaterialRequestAppService.cs | 38 ++------------ 14 files changed, 120 insertions(+), 233 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ContainerNotes/ContainerNotePermissions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ContainerNotes/ContainerNotePermissions.cs index 6b08a7689..7ffc5db5c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ContainerNotes/ContainerNotePermissions.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ContainerNotes/ContainerNotePermissions.cs @@ -10,18 +10,17 @@ public static class ContainerNotePermissions public const string Update = Default + "." + StorePermissions.UpdateStr; public const string Delete = Default + "." + StorePermissions.DeleteStr; - //器具呼叫记录 - public const string ContainerNote = StorePermissions.GroupName + "." + nameof(ContainerNote); + public const string AutoContainerNote = StorePermissions.GroupName + "." + nameof(AutoContainerNote); public static void AddContainerNotePermission(this PermissionGroupDefinition permissionGroup) { - var ContainerNotePermission = permissionGroup.AddPermission(Default, StorePermissionDefinitionProvider.L(nameof(ContainerNote))); - ContainerNotePermission.AddChild(Create, StorePermissionDefinitionProvider.L(StorePermissions.CreateStr)); - ContainerNotePermission.AddChild(Update, StorePermissionDefinitionProvider.L(StorePermissions.UpdateStr)); - ContainerNotePermission.AddChild(Delete, StorePermissionDefinitionProvider.L(StorePermissions.DeleteStr)); - - permissionGroup.AddPermission(ContainerNote, StorePermissionDefinitionProvider.L(nameof(ContainerNote))); + var containerNotePermission = permissionGroup.AddPermission(Default, StorePermissionDefinitionProvider.L(nameof(ContainerNote))); + containerNotePermission.AddChild(Create, StorePermissionDefinitionProvider.L(StorePermissions.CreateStr)); + containerNotePermission.AddChild(Update, StorePermissionDefinitionProvider.L(StorePermissions.UpdateStr)); + containerNotePermission.AddChild(Delete, StorePermissionDefinitionProvider.L(StorePermissions.DeleteStr)); + + permissionGroup.AddPermission(AutoContainerNote, StorePermissionDefinitionProvider.L(nameof(AutoContainerNote))); } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/DTOs/AssembleRequestDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/DTOs/AssembleRequestDTO.cs index 7582d35a7..75aa1d02d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/DTOs/AssembleRequestDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/DTOs/AssembleRequestDTO.cs @@ -10,12 +10,6 @@ public class AssembleRequestDTO : SfsStoreRequestDTOBase - /// 生产线 - /// - [Display(Name = "生产线")] - public string ProdLine { get; set; } - /// /// 是否使用在途库 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/DTOs/AssembleRequestDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/DTOs/AssembleRequestDetailDTO.cs index 71a9dbcf0..a0931f6e2 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/DTOs/AssembleRequestDetailDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/DTOs/AssembleRequestDetailDTO.cs @@ -47,4 +47,10 @@ public class AssembleRequestDetailDTO : SfsStoreDetailWithQtyDTOBase [NotMapped] public decimal NotFinishQty => Qty - ReceivedQty; + /// + /// 需求箱数量 + /// + [Display(Name = "需求箱数量")] + public decimal BoxQty { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestDetailInput.cs index befe44e2f..1e859f910 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestDetailInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestDetailInput.cs @@ -7,6 +7,8 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts; public class AssembleRequestDetailInput : SfsStoreDetailWithQtyInputBase { + #region 目标库位信息 + /// /// 目标库位 /// @@ -15,43 +17,43 @@ public class AssembleRequestDetailInput : SfsStoreDetailWithQtyInputBase public string ToLocationCode { get; set; } /// - /// 来源库区 + /// 目标库区 /// - [Display(Name = "来源库区")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string FromLocationArea { get; set; } + [Display(Name = "目标库区")] + public string ToLocationArea { get; set; } /// - /// 生产线 + /// 目标库位组 /// - [Display(Name = "生产线")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string ProdLine { get; set; } + [Display(Name = "目标库位组")] + public string ToLocationGroup { get; set; } /// - /// 工作中心 + /// 目标ERP储位 /// - [Display(Name = "工作中心")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string WorkStation { get; set; } + [Display(Name = "目标ERP储位")] + public string ToLocationErpCode { get; set; } /// - /// 过期时间 + /// 目标仓库 /// - [Display(Name = "过期时间")] - public DateTime ExpiredTime { get; set; } + [Display(Name = "目标仓库")] + public string ToWarehouseCode { get; set; } + + #endregion /// - /// 状态 + /// 生产线 /// - [Display(Name = "状态")] - public EnumRequestStatus RequestStatus { get; set; } = EnumRequestStatus.New; + [Display(Name = "生产线")] + [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] + public string ProdLine { get; set; } /// - /// ERP储位 + /// 状态 /// - [Display(Name = "ERP储位")] - public string ToLocationErpCode { get; set; } + [Display(Name = "状态")] + public EnumRequestStatus RequestStatus { get; set; } = EnumRequestStatus.New; /// /// 已发数量 @@ -81,5 +83,9 @@ public class AssembleRequestDetailInput : SfsStoreDetailWithQtyInputBase /// public EnumRecommendType RecommendType { get; set; } - + /// + /// 需求箱数量 + /// + [Display(Name = "需求箱数量")] + public decimal BoxQty { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestEditInput.cs index 2dbba1a36..c89acfc30 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestEditInput.cs @@ -6,35 +6,7 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts; public class AssembleRequestEditInput : SfsStoreRequestCreateOrUpdateInputBase { - #region Base - /// - /// 车间 - /// - [Display(Name = "车间")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string Workshop { get; set; } - - /// - /// 生产线 - /// - [Display(Name = "生产线")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string ProdLine { get; set; } - - /// - /// 使用在途库 - /// - [Display(Name = "使用在途库")] - public bool UseOnTheWayLocation { get; set; } - #endregion - - #region Create - /// - /// 要货单号 - /// - [Display(Name = "要货单号")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string Number { get; set; } + #region Base /// /// 叫料类型 @@ -43,16 +15,19 @@ public class AssembleRequestEditInput : SfsStoreRequestCreateOrUpdateInputBase public string Type { get; set; } /// - /// 备料计划单号 + /// 使用在途库 /// - [Display(Name = "备料计划单号")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string PreparationPlanNumber { get; set; } + [Display(Name = "使用在途库")] + public bool UseOnTheWayLocation { get; set; } /// /// 明细列表 /// [Display(Name = "明细列表")] - public List Details { get; set; } = new List(); + public List Details { get; set; } = new List(); + #endregion + + #region Create + #endregion } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestImportInput.cs index d5fe8bc84..3d637b4f5 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestImportInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/AssembleRequests/Inputs/AssembleRequestImportInput.cs @@ -7,6 +7,7 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts; [Display(Name = "叫料申请")] public class AssembleRequestImportInput : SfsStoreImportInputBase { + /// /// 叫料类型 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDTO.cs index 8417f1a70..6926849da 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDTO.cs @@ -6,33 +6,30 @@ namespace Win_in.Sfs.Wms.Store.Requests.MaterialRequests; public class CoatingMaterialRequestDTO : SfsStoreRequestDTOBase, IHasNumber { /// - /// 叫料类型 + /// 叫料类型 /// [Display(Name = "叫料类型")] public string Type { get; set; } /// - /// 备料计划单号 + /// 是否使用在途库 /// - [Display(Name = "备料计划单号")] - public string PreparationPlanNumber { get; set; } + [Display(Name = "是否使用在途库")] + public bool IsUseOnTheWayLocation { get; set; } /// - /// 生产线 + /// 可用来源库位Json集合 /// - [Display(Name = "生产线")] - public string ProdLine { get; set; } + public string FromLocationCodeJsonList { get; set; } /// - /// 车间 + /// 叫料库位 /// - [Display(Name = "车间")] - public string Workshop { get; set; } + public string ToLocationCode { get; set; } /// - /// 使用在途库 + /// 目标ERP储位 /// - [Display(Name = "使用在途库")] - public bool UseOnTheWayLocation { get; set; } - + [Display(Name = "目标ERP储位")] + public string ToLocationErpCode { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetailDTO.cs index 578944333..f1caa1b83 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetailDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetailDTO.cs @@ -10,49 +10,6 @@ namespace Win_in.Sfs.Wms.Store.Requests.MaterialRequests; public class CoatingMaterialRequestDetailDTO : SfsStoreDetailWithQtyDTOBase { - - /// - /// 目标库位 - /// - [Display(Name = "目标库位")] - public string ToLocationCode { get; set; } - - /// - /// 来源库区 - /// - [Display(Name = "来源库区")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string FromLocationArea { get; set; } - - // /// - // /// 在途库库位 - // /// - // public string OnTheWayLocationCode { get; set; } - - /// - /// 生产线 - /// - [Display(Name = "生产线")] - public string ProdLine { get; set; } - - /// - /// 工作中心 - /// - [Display(Name = "工作中心")] - public string WorkStation { get; set; } - - /// - /// 过期时间 - /// - [Display(Name = "过期时间")] - public DateTime ExpiredTime { get; set; } - - /// - /// 目标ERP储位 - /// - [Display(Name = "目标ERP储位")] - public string ToLocationErpCode { get; set; } - /// /// 已发数量 /// @@ -92,4 +49,10 @@ public class CoatingMaterialRequestDetailDTO : SfsStoreDetailWithQtyDTOBase [NotMapped] public decimal NotFinishQty => Qty - ReceivedQty; + /// + /// 需求箱数量 + /// + [Display(Name = "需求箱数量")] + public decimal BoxQty { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetailInput.cs index ffdffd63b..9ffc4ca40 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetailInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestDetailInput.cs @@ -8,6 +8,8 @@ namespace Win_in.Sfs.Wms.Store.Requests.MaterialRequests; public class CoatingMaterialRequestDetailInput : SfsStoreDetailWithQtyInputBase { + #region 目标库位信息 + /// /// 目标库位 /// @@ -16,43 +18,43 @@ public class CoatingMaterialRequestDetailInput : SfsStoreDetailWithQtyInputBase public string ToLocationCode { get; set; } /// - /// 来源库区 + /// 目标库区 /// - [Display(Name = "来源库区")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string FromLocationArea { get; set; } + [Display(Name = "目标库区")] + public string ToLocationArea { get; set; } /// - /// 生产线 + /// 目标库位组 /// - [Display(Name = "生产线")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string ProdLine { get; set; } + [Display(Name = "目标库位组")] + public string ToLocationGroup { get; set; } /// - /// 工作中心 + /// 目标ERP储位 /// - [Display(Name = "工作中心")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string WorkStation { get; set; } + [Display(Name = "目标ERP储位")] + public string ToLocationErpCode { get; set; } /// - /// 过期时间 + /// 目标仓库 /// - [Display(Name = "过期时间")] - public DateTime ExpiredTime { get; set; } + [Display(Name = "目标仓库")] + public string ToWarehouseCode { get; set; } + + #endregion /// - /// 状态 + /// 生产线 /// - [Display(Name = "状态")] - public EnumRequestStatus RequestStatus { get; set; } = EnumRequestStatus.New; + [Display(Name = "生产线")] + [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] + public string ProdLine { get; set; } /// - /// ERP储位 + /// 状态 /// - [Display(Name = "ERP储位")] - public string ToLocationErpCode { get; set; } + [Display(Name = "状态")] + public EnumRequestStatus RequestStatus { get; set; } = EnumRequestStatus.New; /// /// 已发数量 @@ -82,5 +84,9 @@ public class CoatingMaterialRequestDetailInput : SfsStoreDetailWithQtyInputBase /// public EnumRecommendType RecommendType { get; set; } - + /// + /// 需求箱数量 + /// + [Display(Name = "需求箱数量")] + public decimal BoxQty { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestEditInput.cs index cd9a306fe..94578eb49 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestEditInput.cs @@ -7,35 +7,7 @@ namespace Win_in.Sfs.Wms.Store.Requests.MaterialRequests; public class CoatingMaterialRequestEditInput : SfsStoreRequestCreateOrUpdateInputBase { - #region Base - /// - /// 车间 - /// - [Display(Name = "车间")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string Workshop { get; set; } - - /// - /// 生产线 - /// - [Display(Name = "生产线")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string ProdLine { get; set; } - - /// - /// 使用在途库 - /// - [Display(Name = "使用在途库")] - public bool UseOnTheWayLocation { get; set; } - #endregion - - #region Create - /// - /// 要货单号 - /// - [Display(Name = "要货单号")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string Number { get; set; } + #region Base /// /// 叫料类型 @@ -44,16 +16,19 @@ public class CoatingMaterialRequestEditInput : SfsStoreRequestCreateOrUpdateInpu public string Type { get; set; } /// - /// 备料计划单号 + /// 使用在途库 /// - [Display(Name = "备料计划单号")] - [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] - public string PreparationPlanNumber { get; set; } + [Display(Name = "使用在途库")] + public bool UseOnTheWayLocation { get; set; } /// /// 明细列表 /// [Display(Name = "明细列表")] - public List Details { get; set; } = new List(); + public List Details { get; set; } = new List(); + #endregion + + #region Create + #endregion } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestImportInput.cs index 53b7a3da1..345975e85 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestImportInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestImportInput.cs @@ -8,6 +8,7 @@ namespace Win_in.Sfs.Wms.Store.Requests.MaterialRequests; [Display(Name = "叫料申请")] public class CoatingMaterialRequestImportInput : SfsStoreImportInputBase { + /// /// 叫料类型 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/ICoatingMaterialRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/ICoatingMaterialRequestAppService.cs index 5caa7b60c..c34757dc4 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/ICoatingMaterialRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/CoatingMaterialRequests/ICoatingMaterialRequestAppService.cs @@ -11,12 +11,7 @@ public interface ICoatingMaterialRequestAppService { Task CreateAndHandleAsync(CoatingMaterialRequestEditInput input); - - /// - /// 根据备料计划生成 叫料请求 - /// - /// - Task CreateAndHandleByPreparationPlan(string productionPlanNumber); + Task CreateAndHandleByAPIAsync(CoatingMaterialRequestEditInput input); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestEditInput.cs index 7df467797..9228ec8ea 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestEditInput.cs @@ -9,19 +9,16 @@ public class InjectionRequestEditInput : SfsStoreRequestCreateOrUpdateInputBase #region Base /// - /// 使用在途库 + /// 叫料类型 /// - [Display(Name = "使用在途库")] - public bool UseOnTheWayLocation { get; set; } - #endregion - - #region Create + [Display(Name = "叫料类型")] + public string Type { get; set; } /// - /// 叫料类型 + /// 使用在途库 /// - [Display(Name = "叫料类型")] - public string Type { get; set; } + [Display(Name = "使用在途库")] + public bool UseOnTheWayLocation { get; set; } /// /// 明细列表 @@ -29,4 +26,8 @@ public class InjectionRequestEditInput : SfsStoreRequestCreateOrUpdateInputBase [Display(Name = "明细列表")] public List Details { get; set; } = new List(); #endregion + + #region Create + + #endregion } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs index a36dc70e0..eb0fd7ac0 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs @@ -166,7 +166,7 @@ public class CoatingMaterialRequestAppService : SfsStoreRequestAppServiceBase(input); @@ -270,7 +270,7 @@ public class CoatingMaterialRequestAppService : SfsStoreRequestAppServiceBase - /// 根据备料计划生成 叫料请求 - /// - /// - [HttpPost("create-and-handle-by-preparation-plan/{number}")] - public virtual async Task CreateAndHandleByPreparationPlan(string number) - { - var prodPreparationPlan = await _preparationPlanManager.GetByNumberAsync(number).ConfigureAwait(false); - - var materialRequestCreateInput = new CoatingMaterialRequestEditInput { Worker = CurrentUser.GetUserName() }; - - foreach (var preparationPlanDetail in prodPreparationPlan.Details) - { - var detail = new CoatingMaterialRequestDetailInput - { - ItemCode = preparationPlanDetail.ItemCode, - ItemName = preparationPlanDetail.ItemName, - ItemDesc1 = preparationPlanDetail.ItemDesc1, - ItemDesc2 = preparationPlanDetail.ItemDesc2, - Uom = preparationPlanDetail.Uom, - Qty = preparationPlanDetail.Qty, - StdPackQty = preparationPlanDetail.StdPackQty, - ToLocationCode = preparationPlanDetail.ToLocationCode - }; - - materialRequestCreateInput.Details.Add(detail); - } - - var dto = await CreateAndHandleAsync(materialRequestCreateInput).ConfigureAwait(false); - - return dto; - } - + /// /// 根据类型获取叫料请求 ///