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;