From 7e55b599df7fa152145cd72bf1efd65a4fd99ea8 Mon Sep 17 00:00:00 2001 From: zhouhongjun <565221961@qq.com> Date: Fri, 1 Mar 2024 10:35:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=A8=E8=8D=90=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=9E=9A=E4=B8=BE=EF=BC=8C=E4=BD=8D=E7=BD=AE=E7=A0=81?= =?UTF-8?q?=E3=80=81=E5=99=A8=E5=85=B7=E3=80=81Kitting=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Stores/IssueNoteController.cs | 4 +++ .../PositionCode/DTOs/PositionCodeDTO.cs | 12 +++++++++ .../Inputs/PositionCodeEditInput.cs | 13 +++++++-- .../Inputs/PositionCodeImportInput.cs | 13 ++++++++- .../PositionCode/PositionCodeAppService.cs | 19 +++++++++++-- .../PositionCode/PositionCode.cs | 14 ++++++++-- .../Enums/Store/EnumRecommendType.cs | 27 +++++++++++++++++++ .../IssueJobs/Inputs/IssueJobDetailInput.cs | 10 +++++++ .../IssueNotes/Inputs/IssueNoteDetailInput.cs | 11 ++++++++ .../Inputs/MaterialRequestDetailInput.cs | 11 ++++++++ .../MaterialRequestAppService.cs | 4 +++ .../Jobs/IssueJobs/IssueJobDetail.cs | 11 ++++++++ .../Notes/IssueNotes/IssueNoteDetail.cs | 11 ++++++++ .../MaterialRequests/MaterialRequestDetail.cs | 11 ++++++++ .../MaterialRequestAutoMapperProfile.cs | 4 ++- .../Requests/MaterialRequestEventHandler.cs | 2 ++ 16 files changed, 169 insertions(+), 8 deletions(-) create mode 100644 be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumRecommendType.cs diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs index 86c329304..0cfdd9257 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs @@ -39,6 +39,10 @@ public class IssueNoteController : AbpController { p.ToLot = string.Empty; p.ToPackingCode = string.Empty; + if(p.PositionCode.Contains('W')) + { + p.RecommendType = EnumRecommendType.PositionCode; + } }); await _issueNoteAppService.CreateAsync(input).ConfigureAwait(false); diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/DTOs/PositionCodeDTO.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/DTOs/PositionCodeDTO.cs index 569e709e7..cce3aaeff 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/DTOs/PositionCodeDTO.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/DTOs/PositionCodeDTO.cs @@ -1,5 +1,6 @@ using System.ComponentModel.DataAnnotations; using Win_in.Sfs.Shared.Domain; +using Win_in.Sfs.Shared.Domain.Shared; namespace Win_in.Sfs.Basedata.Application.Contracts; @@ -32,6 +33,12 @@ public class PositionCodeDTO : SfsBaseDataDTOBase, IHasCode [StringLength(SfsEfCorePropertyConst.DescLength, ErrorMessage = "{0}最多输入{1}个字符")] public string PartDesc { get; set; } /// + /// 基本计量单位 + /// + [Display(Name = "基本计量单位")] + [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] + public string BasicUom { get; set; } + /// /// 库位 /// [Display(Name = "库位")] @@ -48,4 +55,9 @@ public class PositionCodeDTO : SfsBaseDataDTOBase, IHasCode /// [Display(Name = "标包数量")] public decimal StdPackQty { get; set; } + /// + /// 类型 + /// + [Display(Name = "类型")] + public EnumRecommendType Type { get; set; } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/Inputs/PositionCodeEditInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/Inputs/PositionCodeEditInput.cs index 24bc8733f..e629da700 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/Inputs/PositionCodeEditInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/Inputs/PositionCodeEditInput.cs @@ -1,6 +1,7 @@ using System; using System.ComponentModel.DataAnnotations; using Win_in.Sfs.Shared.Domain; +using Win_in.Sfs.Shared.Domain.Shared; namespace Win_in.Sfs.Basedata.Application.Contracts; @@ -24,6 +25,11 @@ public class PositionCodeEditInput : SfsBaseDataCreateOrUpdateInputBase [Display(Name = "物料描述")] public string PartDesc { get; set; } /// + /// 基本计量单位 + /// + [Display(Name = "基本计量单位")] + public string BasicUom { get; set; } + /// /// 库位 /// [Display(Name = "库位")] @@ -38,8 +44,11 @@ public class PositionCodeEditInput : SfsBaseDataCreateOrUpdateInputBase /// [Display(Name = "标包数量")] public decimal StdPackQty { get; set; } - - + /// + /// 类型 + /// + [Display(Name = "类型")] + public EnumRecommendType Type { get; set; } #endregion diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/Inputs/PositionCodeImportInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/Inputs/PositionCodeImportInput.cs index 60df0022f..9136deffe 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/Inputs/PositionCodeImportInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/Inputs/PositionCodeImportInput.cs @@ -1,5 +1,6 @@ using System.ComponentModel.DataAnnotations; using Win_in.Sfs.Shared.Domain; +using Win_in.Sfs.Shared.Domain.Shared; namespace Win_in.Sfs.Basedata.Application.Contracts; @@ -32,6 +33,12 @@ public class PositionCodeImportInput : SfsBaseDataImportInputBase [StringLength(SfsEfCorePropertyConst.DescLength, ErrorMessage = "{0}最多输入{1}个字符")] public string PartDesc { get; set; } /// + /// 基本计量单位 + /// + [Display(Name = "基本计量单位")] + [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] + public string BasicUom { get; set; } + /// /// 库位 /// [Display(Name = "库位")] @@ -49,6 +56,10 @@ public class PositionCodeImportInput : SfsBaseDataImportInputBase [Display(Name = "标包数量")] [Required(ErrorMessage = "{0}是必填项")] public decimal StdPackQty { get; set; } + /// + /// 类型 + /// + [Display(Name = "类型")] + public EnumRecommendType Type { get; set; } - } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCode/PositionCodeAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCode/PositionCodeAppService.cs index f80a4ef1a..8f6eccad5 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCode/PositionCodeAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCode/PositionCodeAppService.cs @@ -7,6 +7,7 @@ using Volo.Abp.Uow; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain.Shared; +using Win_in.Sfs.Shared.Domain.Shared; namespace Win_in.Sfs.Basedata.Application; @@ -32,7 +33,7 @@ public class PositionCodeAppService [UnitOfWork] public override async Task CreateAsync(PositionCodeEditInput input) { - var existEntity = await GetByCodeAsync("W"+input.Code).ConfigureAwait(false); + var existEntity = await GetByCodeAsync(input.Code).ConfigureAwait(false); if (existEntity != null) { throw new UserFriendlyException($"{input.Code} 已存在"); @@ -42,12 +43,26 @@ public class PositionCodeAppService Check.NotNull(itemBasic, "物品代码", $"物品 {input.PartCode} 不存在"); input.PartName = itemBasic.Name; input.PartDesc = itemBasic.Desc1; + input.BasicUom = itemBasic.BasicUom; var location = await LocationAppService.GetByCodeAsync(input.LocationCode).ConfigureAwait(false); Check.NotNull(location, "库位代码", $"库位 {input.LocationCode} 不存在"); input.LocationName = location.Name; - input.Code = "W" + input.Code; + if(input.Code.Contains('W')) + { + input.Type = EnumRecommendType.PositionCode; + } + else if(input.Code.Contains('K')) + { + input.Type = EnumRecommendType.KittingCode; + } + else + { + input.Type = EnumRecommendType.WareCode; + } + + return await base.CreateAsync(input).ConfigureAwait(false); } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCode/PositionCode.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCode/PositionCode.cs index 8ec924bc8..751e5561f 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCode/PositionCode.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCode/PositionCode.cs @@ -1,6 +1,7 @@ using System.ComponentModel.DataAnnotations; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Entities; +using Win_in.Sfs.Shared.Domain.Shared; namespace Win_in.Sfs.Basedata.Domain; @@ -31,6 +32,11 @@ public class PositionCode : SfsBaseDataAggregateRootBase, IHasCode [Display(Name = "物料描述")] public string PartDesc { get; set; } /// + /// 基本计量单位 + /// + [Display(Name = "基本计量单位")] + public string BasicUom { get; set; } + /// /// 库位 /// [Display(Name = "库位")] @@ -39,12 +45,16 @@ public class PositionCode : SfsBaseDataAggregateRootBase, IHasCode /// 库位名称 /// [Display(Name = "库位名称")] - public string LocationName { get; set; } + public string LocationName { get; set; } /// /// 标包数量 /// [Display(Name = "标包数量")] public decimal StdPackQty { get; set; } - + /// + /// 类型 + /// + [Display(Name = "类型")] + public EnumRecommendType Type { get; set; } } diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumRecommendType.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumRecommendType.cs new file mode 100644 index 000000000..f56c9c2ab --- /dev/null +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumRecommendType.cs @@ -0,0 +1,27 @@ +using System.ComponentModel.DataAnnotations; + +namespace Win_in.Sfs.Shared.Domain.Shared; + +/// +/// 推荐类型 +/// +public enum EnumRecommendType +{ + /// + /// 位置码 + /// + [Display(Name = "位置码")] + PositionCode = 1, + + /// + /// 器具码 + /// + [Display(Name = "器具码")] + WareCode = 2, + + /// + /// Kitting箱码 + /// + [Display(Name = "Kitting箱码")] + KittingCode = 3, +} diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/Inputs/IssueJobDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/Inputs/IssueJobDetailInput.cs index e21c6f385..b059524c9 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/Inputs/IssueJobDetailInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/Inputs/IssueJobDetailInput.cs @@ -121,4 +121,14 @@ public class IssueJobDetailInput : SfsJobRecommendFromDetailInputBase, IHasToLoc /// [Display(Name = "每次配送数量")] public decimal DeliveryQty { get; set; } + + /// + /// 位置码 + /// + public string PositionCode { get; set; } + + /// + /// 推荐类型 + /// + public EnumRecommendType RecommendType { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/Inputs/IssueNoteDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/Inputs/IssueNoteDetailInput.cs index b85bdb0a2..0d8769392 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/Inputs/IssueNoteDetailInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/Inputs/IssueNoteDetailInput.cs @@ -1,6 +1,7 @@ using System; using System.ComponentModel.DataAnnotations; using Win_in.Sfs.Shared.Domain; +using Win_in.Sfs.Shared.Domain.Shared; namespace Win_in.Sfs.Wms.Store.Application.Contracts; @@ -39,4 +40,14 @@ public class IssueNoteDetailInput : SfsStoreRecommendFromDetailWithFromToInputBa [Display(Name = "在途库库位")] public string OnTheWayLocationCode { get; set; } + /// + /// 位置码 + /// + public string PositionCode { get; set; } + + /// + /// 推荐类型 + /// + public EnumRecommendType RecommendType { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/Inputs/MaterialRequestDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/Inputs/MaterialRequestDetailInput.cs index df430f726..058c47f49 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/Inputs/MaterialRequestDetailInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/Inputs/MaterialRequestDetailInput.cs @@ -71,4 +71,15 @@ public class MaterialRequestDetailInput : SfsStoreDetailWithQtyInputBase [Display(Name = "明细状态")] public EnumStatus Status { get; set; } + /// + /// 位置码 + /// + public string PositionCode { get; set; } + + /// + /// 推荐类型 + /// + public EnumRecommendType RecommendType { get; set; } + + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/MaterialRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/MaterialRequestAppService.cs index e29d5ee57..209abd419 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/MaterialRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/MaterialRequestAppService.cs @@ -214,6 +214,10 @@ public class MaterialRequestAppService : SfsStoreRequestAppServiceBase public decimal DeliveryQty { get; set; } + + /// + /// 位置码 + /// + public string PositionCode { get; set; } + + /// + /// 推荐类型 + /// + public EnumRecommendType RecommendType { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/IssueNoteDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/IssueNoteDetail.cs index 4ba4f018b..bd3fad75b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/IssueNoteDetail.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/IssueNoteDetail.cs @@ -1,4 +1,5 @@ using System; +using Win_in.Sfs.Shared.Domain.Shared; namespace Win_in.Sfs.Wms.Store.Domain; @@ -29,4 +30,14 @@ public class IssueNoteDetail : SfsStoreRecommendFromDetailWithFromToEntityBase /// 在途库库位 /// public string OnTheWayLocationCode { get; set; } + + /// + /// 位置码 + /// + public string PositionCode { get; set; } + + /// + /// 推荐类型 + /// + public EnumRecommendType RecommendType { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestDetail.cs index 1c59a4fda..19420cba8 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestDetail.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestDetail.cs @@ -90,4 +90,15 @@ public class MaterialRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasToLoca /// [NotMapped] public decimal NotFinishQty => Qty - ReceivedQty; + + /// + /// 位置码 + /// + public string PositionCode { get; set; } + + /// + /// 推荐类型 + /// + public EnumRecommendType RecommendType { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/MaterialRequestAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/MaterialRequestAutoMapperProfile.cs index 85bb07126..63046f1e2 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/MaterialRequestAutoMapperProfile.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/MaterialRequestAutoMapperProfile.cs @@ -123,9 +123,11 @@ public partial class StoreEventAutoMapperProfile : Profile .Ignore(x => x.PlannedSplitRule) .Ignore(x => x.DeliveryQty) .Ignore(x => x.RequestLocationCode) - .Ignore(x => x.ToLocationCode) + .Ignore(x => x.ToLocationCode) .Ignore(x => x.ProdLine) .Ignore(x => x.WorkStation) + .Ignore(x => x.PositionCode) + .Ignore(x => x.RecommendType) .IgnoreIHasRecommendAndHandledFrom(); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/MaterialRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/MaterialRequestEventHandler.cs index 830445329..4f9c8d67f 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/MaterialRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/MaterialRequestEventHandler.cs @@ -244,6 +244,8 @@ public class MaterialRequestEventHandler detail.RequestLocationCode = materialRequestDetail.ToLocationCode; detail.WorkStation = materialRequestDetail.WorkStation; detail.ExpiredTime = materialRequestDetail.ExpiredTime; + detail.PositionCode = materialRequestDetail.PositionCode; + detail.RecommendType = materialRequestDetail.RecommendType; detail.RecommendPackingCode = balance.PackingCode; detail.RecommendContainerCode = balance.ContainerCode;