diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDTO.cs
index 3851df4e1..c6dbd8249 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDTO.cs
@@ -4,41 +4,34 @@ using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
///
-/// 注塑发料任务
+/// 注塑发料任务
///
[Display(Name = "注塑发料任务")]
public class InjectionJobDTO : SfsJobDTOBase
{
///
- /// 叫料请求类型
+ /// 叫料请求类型
///
[Display(Name = "叫料请求类型")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string RequestType { get; set; }
///
- /// 生产线
+ /// 生产线
///
[Display(Name = "生产线")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ProdLine { get; set; }
///
- /// 要货单号
+ /// 要货单号
///
[Display(Name = "要货单号")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string InjectionRequestNumber { get; set; }
///
- /// 车间
- ///
- //[Display(Name = "车间")]
- //[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- //public string Workshop { get; set; }
-
- ///
- /// 使用在途库
+ /// 使用在途库
///
[Display(Name = "使用在途库")]
public bool UseOnTheWayLocation { get; set; }
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDetailDTO.cs
index 363521370..4df8a0b19 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDetailDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDetailDTO.cs
@@ -1,112 +1,519 @@
using System;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class InjectionJobDetailDTO : SfsJobRecommendFromDetailDTOBase, IHasToLocation
+public class InjectionJobDetailDTO : SfsDetailDTOBase
{
+ #region 库存基础信息
///
- /// 请求库位
+ /// 物品代码
///
- [Display(Name = "请求库位")]
- public string RequestLocationCode { get; set; }
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
///
- /// 到库位
+ /// 计量单位
///
- [Display(Name = "到库位")]
- public string ToLocationCode { get; set; }
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
///
- /// 到库区
+ /// 到库区
///
- [Display(Name = "到库区")]
- public string ToLocationArea { get; set; }
+ public string RequestLocationArea { get; set; }
///
- /// 到库位组
+ /// 到库位组
///
- [Display(Name = "到库位组")]
- public string ToLocationGroup { get; set; }
+ public string RequestLocationGroup { get; set; }
///
- /// 到ERP库位
+ /// 到ERP库位
///
- [Display(Name = "到ERP库位")]
- public string ToLocationErpCode { get; set; }
+ public string RequestLocationErpCode { get; set; }
///
- /// 到仓库
+ /// 到仓库
///
- [Display(Name = "到仓库")]
- public string ToWarehouseCode { get; set; }
+ public string RequestWarehouseCode { get; set; }
///
- /// 在途库库位
+ /// 在途库库位
///
- [Display(Name = "在途库库位")]
public string OnTheWayLocationCode { get; set; }
///
- /// 生产线
+ /// 生产线
///
- [Display(Name = "生产线")]
public string ProdLine { get; set; }
///
- /// 工作中心
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
+ ///
+ public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
///
- [Display(Name = "工作中心")]
- public string WorkStation { get; set; }
+ public string RecommendFromLocationErpCode { get; set; }
///
- /// 过期时间
+ /// 推荐来源仓库
///
- [Display(Name = "过期时间")]
- public DateTime ExpiredTime { get; set; }
+ public string RecommendFromWarehouseCode { get; set; }
///
- /// 工序
+ /// 推荐来源数量
///
- [Display(Name = "工序")]
- public string Operation { get; set; }
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
///
- /// 配送方式
+ /// 推荐目标库位组
///
- [Display(Name = "配送方式")]
- public EnumDistributionType DistributionType { get; set; }
+ public string RecommendToLocationGroup { get; set; }
///
- /// 取整方式
+ /// 推荐目标ERP库位
///
- [Display(Name = "取整方式")]
- public EnumTruncType TruncType { get; set; }
+ public string RecommendToLocationErpCode { get; set; }
///
- /// 取整后数量
+ /// 推荐目标仓库
///
- [Display(Name = "取整后数量")]
- public decimal RoundedQty { get; set; }
+ public string RecommendToWarehouseCode { get; set; }
///
- /// 计划拆分规则
+ /// 推荐目标数量
///
- [Display(Name = "计划拆分规则")]
- public EnumPlannedSplitRule PlannedSplitRule { get; set; }
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
///
- /// 计划开始时间
+ /// 库移来源托标签
///
- [Display(Name = "计划开始时间")]
- public DateTime PlanBeginTime { get; set; }
+ public string TransferLibFromContainerCode { get; set; }
///
- /// 每次配送数量
+ /// 库移来源箱标签
///
- [Display(Name = "每次配送数量")]
- public decimal DeliveryQty { get; set; }
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/IInjectionJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/IInjectionJobAppService.cs
index a5681c7ac..fd7839757 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/IInjectionJobAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/IInjectionJobAppService.cs
@@ -8,18 +8,7 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface IInjectionJobAppService
: ISfsJobAppServiceBase
{
- Task> CheckJobExistByItemCodeAndLocationCodeAsync(string itemCode, string locationCode);
-
Task CancelByMaterialRequestAsync(string injectionNumber);
- Task> GetListByTypeAsync(SfsJobRequestInputBase requestInput, string requestType,
- bool includeDetails = false, CancellationToken cancellationToken = default);
-
Task> GetByRequestNumberAsync(string requestNumber);
-
- ///
- /// 保存拆箱时涉及的明细修改
- ///
- ///
- Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input);
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobDetailInput.cs
index 38890b9a9..4fca06b3f 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobDetailInput.cs
@@ -1,134 +1,519 @@
using System;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class InjectionJobDetailInput : SfsJobRecommendFromDetailInputBase, IHasToLocation
+public class InjectionJobDetailInput : SfsDetailInputBase
{
+ #region 库存基础信息
///
- /// 请求库位
+ /// 物品代码
///
- [Display(Name = "请求库位")]
- [Required(ErrorMessage = "{0}是必填项")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string RequestLocationCode { get; set; }
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
///
- /// 到库位
+ /// 计量单位
///
- [Display(Name = "到库位")]
- [Required(ErrorMessage = "{0}是必填项")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ToLocationCode { get; set; }
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
///
- /// 到库区
+ /// 到库区
///
- [Display(Name = "到库区")]
- public string ToLocationArea { get; set; }
+ public string RequestLocationArea { get; set; }
///
- /// 到库位组
+ /// 到库位组
///
- [Display(Name = "到库位组")]
- public string ToLocationGroup { get; set; }
+ public string RequestLocationGroup { get; set; }
///
- /// 到ERP库位
+ /// 到ERP库位
///
- [Display(Name = "到ERP库位")]
- [Required(ErrorMessage = "{0}是必填项")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ToLocationErpCode { get; set; }
+ public string RequestLocationErpCode { get; set; }
///
- /// 到仓库
+ /// 到仓库
///
- [Display(Name = "到仓库")]
- [Required(ErrorMessage = "{0}是必填项")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ToWarehouseCode { get; set; }
+ public string RequestWarehouseCode { get; set; }
///
- /// 在途库库位
+ /// 在途库库位
///
- [Display(Name = "在途库库位")]
public string OnTheWayLocationCode { get; set; }
///
- /// 生产线
+ /// 生产线
///
- [Display(Name = "生产线")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ProdLine { get; set; }
///
- /// 工作中心
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
///
- [Display(Name = "工作中心")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string WorkStation { get; set; }
+ public EnumRecommendType RecommendType { get; set; }
///
- /// 过期时间
+ /// 需求数量
///
- [Display(Name = "过期时间")]
- [Required(ErrorMessage = "{0}是必填项")]
- public DateTime ExpiredTime { get; set; }
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
///
- /// 工序
+ /// 推荐来源托标签
///
- [Display(Name = "工序")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string Operation { get; set; }
+ public string RecommendFromContainerCode { get; set; }
///
- /// 配送方式
+ /// 推荐来源箱标签
///
- [Display(Name = "配送方式")]
- public EnumDistributionType DistributionType { get; set; }
+ public string RecommendFromPackingCode { get; set; }
///
- /// 取整方式
+ /// 推荐来源批次供应商批次
///
- [Display(Name = "取整方式")]
- public EnumTruncType TruncType { get; set; }
+ public string RecommendFromSupplierBatch { get; set; }
///
- /// 取整后数量
+ /// 推荐来源批次到货时间
///
- [Display(Name = "取整后数量")]
- public decimal RoundedQty { get; set; }
+ public DateTime RecommendFromArriveDate { get; set; }
///
- /// 计划拆分规则
+ /// 推荐来源批次生产时间
///
- [Display(Name = "计划拆分规则")]
- public EnumPlannedSplitRule PlannedSplitRule { get; set; }
+ public DateTime RecommendFromProduceDate { get; set; }
///
- /// 计划开始时间
+ /// 推荐来源批次过期时间
///
- [Display(Name = "计划开始时间")]
- public DateTime PlanBeginTime { get; set; }
+ public DateTime RecommendFromExpireDate { get; set; }
///
- /// 每次配送数量
+ /// 推荐来源批次排序
///
- [Display(Name = "每次配送数量")]
- public decimal DeliveryQty { get; set; }
+ public string RecommendFromLot { get; set; }
///
- /// 位置码
+ /// 推荐来源库位
///
- public string PositionCode { get; set; }
+ public string RecommendFromLocationCode { get; set; }
///
- /// 推荐类型
+ /// 推荐来源库区
///
- public EnumRecommendType RecommendType { get; set; }
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
+
+ ///
+ /// 库移来源托标签
+ ///
+ public string TransferLibFromContainerCode { get; set; }
+
+ ///
+ /// 库移来源箱标签
+ ///
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobEditInput.cs
index e106e1ae3..b1bf544e8 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobEditInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobEditInput.cs
@@ -60,13 +60,6 @@ public class InjectionJobEditInput : SfsJobCreateUpdateInputBase, ISfsJobCreateI
[Required(ErrorMessage = "{0}是必填项")]
public List Details { get; set; } = new();
- ///
- /// 车间
- ///
- //[Display(Name = "车间")]
- //[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- //public string Workshop { get; set; }
-
///
/// 生产线
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDTO.cs
index 96f533b19..951df8a73 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDTO.cs
@@ -13,13 +13,6 @@ public class InjectionNoteDTO : SfsStoreDTOBase, IHasJob
[Display(Name = "任务ID")]
public string JobNumber { get; set; }
- ///
- /// 车间
- ///
- [Display(Name = "车间")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string Workshop { get; set; }
-
///
/// 请求代码
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDetailDTO.cs
index e36d271b3..9ec6f5cfe 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDetailDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDetailDTO.cs
@@ -1,42 +1,519 @@
using System;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
+using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class InjectionNoteDetailDTO : SfsStoreRecommendFromDetailWithFromToDTOBase
+public class InjectionNoteDetailDTO : SfsDetailDTOBase
{
+ #region 库存基础信息
///
- /// 发料时间
+ /// 物品代码
///
- [Display(Name = "发料时间")]
- public DateTime IssueTime { get; set; }
+ public string ItemCode { get; set; }
///
- /// 过期时间
+ /// 物品名称
///
- [Display(Name = "过期时间")]
- public DateTime ExpiredTime { get; set; }
+ public string ItemName { get; set; }
///
- /// 生产线
+ /// 物品描述1
///
- [Display(Name = "生产线")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ProdLine { get; set; }
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
///
- /// 工作中心
+ /// 到库区
///
- [Display(Name = "工作中心")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string WorkStation { get; set; }
+ public string RequestLocationArea { get; set; }
///
- /// 在途库库位
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
///
- [Display(Name = "在途库库位")]
public string OnTheWayLocationCode { get; set; }
+ ///
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
+ ///
+ public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
+
+ ///
+ /// 库移来源托标签
+ ///
+ public string TransferLibFromContainerCode { get; set; }
+
+ ///
+ /// 库移来源箱标签
+ ///
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteDetailInput.cs
index 48714bb23..0dd37d099 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteDetailInput.cs
@@ -1,53 +1,519 @@
using System;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class InjectionNoteDetailInput : SfsStoreRecommendFromDetailWithFromToInputBase
+public class InjectionNoteDetailInput : SfsDetailInputBase
{
+ #region 库存基础信息
///
- /// 发料时间
+ /// 物品代码
///
- [Display(Name = "发料时间")]
- public DateTime IssueTime { get; set; }
+ public string ItemCode { get; set; }
///
- /// 过期时间
+ /// 物品名称
///
- [Display(Name = "过期时间")]
- public DateTime ExpiredTime { get; set; }
+ public string ItemName { get; set; }
///
- /// 生产线
+ /// 物品描述1
///
- [Display(Name = "生产线")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ProdLine { get; set; }
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
///
- /// 工作中心
+ /// 到库区
///
- [Display(Name = "工作中心")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string WorkStation { get; set; }
+ public string RequestLocationArea { get; set; }
///
- /// 在途库库位
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
///
- [Display(Name = "在途库库位")]
public string OnTheWayLocationCode { get; set; }
///
- /// 位置码
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
///
public string PositionCode { get; set; }
///
- /// 推荐类型
+ /// 推荐的类型
///
public EnumRecommendType RecommendType { get; set; }
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
+
+ ///
+ /// 库移来源托标签
+ ///
+ public string TransferLibFromContainerCode { get; set; }
+
+ ///
+ /// 库移来源箱标签
+ ///
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteEditInput.cs
index 410903705..3aaa6bbd4 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteEditInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteEditInput.cs
@@ -28,13 +28,6 @@ public class InjectionNoteEditInput : SfsStoreCreateOrUpdateInputBase
[Required(ErrorMessage = "{0}是必填项")]
public string JobNumber { get; set; }
- ///
- /// 车间
- ///
- [Display(Name = "车间")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string Workshop { get; set; }
-
///
/// 明细列表
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestDetailInput.cs
index 41527199a..47401acc8 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestDetailInput.cs
@@ -49,19 +49,6 @@ public class InjectionRequestDetailInput : SfsStoreDetailWithQtyInputBase
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ProdLine { get; set; }
- ///
- /// 工作中心
- ///
- [Display(Name = "工作中心")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string WorkStation { get; set; }
-
- ///
- /// 过期时间
- ///
- [Display(Name = "过期时间")]
- public DateTime ExpiredTime { get; set; }
-
///
/// 状态
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionJobs/InjectionJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionJobs/InjectionJobAppService.cs
index 966ee52d1..38a055ce1 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionJobs/InjectionJobAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionJobs/InjectionJobAppService.cs
@@ -1,14 +1,16 @@
using System;
using System.Collections.Generic;
+using System.Data;
using System.Linq;
using System.Linq.Expressions;
using System.Threading;
using System.Threading.Tasks;
+using Castle.Components.DictionaryAdapter;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
-using Volo.Abp.ObjectMapping;
+using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
@@ -22,59 +24,71 @@ namespace Win_in.Sfs.Wms.Store.Application;
[Authorize]
[Route($"{StoreConsts.RootPath}injection-job")]
public class InjectionJobAppService
- : SfsJobAppServiceBase,
- IInjectionJobAppService,ITransferLibCallback
+ : SfsJobAppServiceBase,
+ IInjectionJobAppService, ITransferLibCallback
{
private readonly IInjectionJobManager _injectionJobManager;
+ private readonly ILocationAppService _locationAppService;
public InjectionJobAppService(
- IInjectionJobRepository repository, IInjectionJobManager injectionJobManager
- ) : base(repository, injectionJobManager)
+ IInjectionJobRepository repository, IInjectionJobManager injectionJobManager,
+ ILocationAppService locationAppService) : base(repository, injectionJobManager)
{
_injectionJobManager = injectionJobManager;
+ _locationAppService = locationAppService;
}
- public override Task> CreateManyAsync(List inputs)
+ public override async Task> CreateManyAsync(List inputs)
{
- return base.CreateManyAsync(inputs);
+ foreach (var input in inputs)
+ {
+ await CheckMinRowAndSetStatusAsync(input).ConfigureAwait(false);
+ }
+
+ return await base.CreateManyAsync(inputs).ConfigureAwait(false);
}
- public override Task CreateAsync(InjectionJobEditInput input)
+ public override async Task CreateAsync(InjectionJobEditInput input)
{
- return base.CreateAsync(input);
+ await CheckMinRowAndSetStatusAsync(input).ConfigureAwait(false);
+
+ return await base.CreateAsync(input).ConfigureAwait(false);
}
///
- /// 根据物品和库位 检查是否存在发料任务
+ /// 判断是不是在最底层 如果不是则把状态变更为等待
///
- ///
- ///
+ ///
///
- ///
- [Authorize]
- [HttpGet("check-job-exist")]
- public virtual async Task> CheckJobExistByItemCodeAndLocationCodeAsync(string itemCode,
- string locationCode)
+ private async Task CheckMinRowAndSetStatusAsync (InjectionJobEditInput input)
{
- var entities = await _repository.GetListAsync(c =>
- c.Details.Any(p =>
- (p.ItemCode == itemCode && p.RecommendFromLocationCode == locationCode) ||
- (p.ItemCode == itemCode && p.ToLocationCode == locationCode))
- && (c.JobStatus == EnumJobStatus.Open || c.JobStatus == EnumJobStatus.Doing), true).ConfigureAwait(false);
- var dtos = ObjectMapper.Map, List>(entities);
- return dtos;
+ var detail = input.Details.FirstOrDefault();
+
+ var loctionDto = await _locationAppService.GetByCodeAsync(detail.RecommendFromLocationCode)
+ .ConfigureAwait(false);
+
+ if (loctionDto.RowCode != 1)
+ {
+ input.JobStatus = EnumJobStatus.Wait;
+
+ var locationDtos = await _locationAppService.GetListByGroupsAsync(new List() { loctionDto.LocationGroupCode }).ConfigureAwait(false);
+ var minLocation = locationDtos.First(p => p.ColumnCode == 1);
+ detail.OnTheWayLocationCode = minLocation.Code;
+ }
}
[HttpPost("cancel-by-request/{injectionNumber}")]
public virtual async Task CancelByMaterialRequestAsync(string injectionNumber)
{
- var entities = await _repository.GetListAsync(p => p.InjectionRequestNumber == injectionNumber).ConfigureAwait(false);
+ var entities = await _repository.GetListAsync(p => p.InjectionRequestNumber == injectionNumber)
+ .ConfigureAwait(false);
foreach (var entity in entities)
{
await _injectionJobManager.CancelAsync(entity).ConfigureAwait(false);
}
}
-
+
[HttpPost("invalid")]
public override async Task CancelAsync(Guid id)
{
@@ -82,81 +96,26 @@ public class InjectionJobAppService
if (injectionJob == null)
{
throw new UserFriendlyException($"未找到ID为 {id} 的任务");
- }
-
- await _injectionJobManager.CancelAsync(injectionJob).ConfigureAwait(false);
-
- }
-
- ///
- /// 根据叫料请求类型获取发料任务
- ///
- ///
- ///
- /// 叫料请求类型:
- /// 人工拉动:Issue_Manual;
- /// 线边拉动:Issue_WIP;
- ///
- ///
- ///
- ///
- [HttpPost("by-type/{requestType}")]
- public virtual async Task> GetListByTypeAsync(SfsJobRequestInputBase requestInput,
- string requestType, bool includeDetails = false, CancellationToken cancellationToken = default)
- {
- Expression> expression = p => p.RequestType == requestType;
- if (requestInput.Condition.Filters?.Count > 0)
- {
- expression = expression.And(requestInput.Condition.Filters.ToLambda());
}
- return await GetPagedListAsync(expression, requestInput.SkipCount, requestInput.MaxResultCount,
- requestInput.Sorting, includeDetails, cancellationToken).ConfigureAwait(false);
-
+ await _injectionJobManager.CancelAsync(injectionJob).ConfigureAwait(false);
}
[HttpPost("by-request-number/{requestNumber}")]
public virtual async Task> GetByRequestNumberAsync(string requestNumber)
{
- var entitys = await _repository.GetListAsync(p => p.InjectionRequestNumber == requestNumber).ConfigureAwait(false);
+ var entitys = await _repository.GetListAsync(p => p.InjectionRequestNumber == requestNumber)
+ .ConfigureAwait(false);
return ObjectMapper.Map, List>(entitys);
}
- ///
- /// 保存拆箱时涉及的明细修改
- ///
- ///
- [HttpPost("save-detail-split-packing")]
- public virtual async Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input)
- {
- var job = await _repository.FindAsync(p => p.Number == input.Number).ConfigureAwait(false);
- InjectionJobDetail detail = job.Details.FirstOrDefault(p => p.RecommendPackingCode == input.FromPackingCode ); /*&& p.HandledQty == input.FromQty*/
- if (detail == null)
- {
- //throw new UserFriendlyException($"根据HandledPackingCode={input.FromPackingCode}取InjectionJobDetail表为空!");
- throw new UserFriendlyException($"根据RecommendPackingCode={input.FromPackingCode}取InjectionJobDetail表为空!");
- }
- //插入目标箱
- var newDetail = CommonHelper.CloneObj(detail);
- newDetail.SetId(GuidGenerator.Create());
- newDetail.RecommendPackingCode = input.ToPackingCode;
- newDetail.RecommendQty = input.ToQty;
- newDetail.HandledPackingCode = detail.HandledPackingCode.HasValue() ? input.ToPackingCode : null; //源实际实际箱码有值,则新记录实际箱码有值
- newDetail.HandledQty = detail.HandledQty > 0 ? input.ToQty : 0;
- //newDetail.CreationTime = CommonHelper.CurTime;
- job.Details.Add(newDetail);
- //修改源箱
- detail.RecommendQty = input.FromQty - input.ToQty;
- detail.HandledQty = detail.HandledQty > 0 ? input.FromQty - input.ToQty : 0;
- var entity = await _repository.UpdateAsync(job).ConfigureAwait(false);
- var ret = ObjectMapper.Map(entity);
- return ret;
- }
-
[HttpPost("Do-Call-Back")]
- public Tuple DoTransferLibCallback(string businessType, string requestNum, string jobNum)
+ public async Task> DoTransferLibCallbackAsync(string businessType, string requestNum, string jobNum)
{
- throw new NotImplementedException();
+ var job= await _repository.FindAsync(p=>p.Number==jobNum).ConfigureAwait(false);
+ job.JobStatus = EnumJobStatus.Open;
+ await _repository.UpdateAsync(job).ConfigureAwait(false);
+ return Tuple.Create(true,string.Empty);
}
[HttpPost("test")]
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs
index 16fc0eacd..36577b382 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs
@@ -78,7 +78,7 @@ public class TransferLibJobAppService
{
throw new UserFriendlyException($"{methodPrefix}类型为{dto.CallServerName}的对象没有实现ITransferLibCallback接口");
}
- Tuple callbackRet = transferLibCallback.DoTransferLibCallback(dto.CallServerName, dto.CallRequestNumber, dto.CallJobNumber);
+ Tuple callbackRet = await transferLibCallback.DoTransferLibCallbackAsync(dto.CallServerName, dto.CallRequestNumber, dto.CallJobNumber);
if (callbackRet != null && callbackRet.Item1 == false)
{
throw new UserFriendlyException($"{methodPrefix}执行回调服务{dto.CallServerName}出错,返回错误信息:{callbackRet.Item2}");
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/ITransferLibCallback.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/ITransferLibCallback.cs
index cc83e20e8..8afd7aefe 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/ITransferLibCallback.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/ITransferLibCallback.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Notes;
public interface ITransferLibCallback
{
- Tuple DoTransferLibCallback(string businessType, string requestNum, string jobNum);
+ Task> DoTransferLibCallbackAsync(string businessType, string requestNum, string jobNum);
}
public class TestTransferLibCallback : ITransferLibCallback
@@ -16,7 +16,7 @@ public class TestTransferLibCallback : ITransferLibCallback
{
}
- public Tuple DoTransferLibCallback(string businessType, string requestNum, string jobNum)
+ public async Task> DoTransferLibCallbackAsync(string businessType, string requestNum, string jobNum)
{
return Tuple.Create(true, "调用新移库回调方法成功!");
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAutoMapperProfile.cs
index 64fd091c9..362700239 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAutoMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAutoMapperProfile.cs
@@ -47,8 +47,6 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.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.IssuedQty)
.Ignore(x => x.ReceivedQty)
.Ignore(x => x.ToBeIssuedQty)
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestAppService.cs
index 1f30e5791..ab55b44e2 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestAppService.cs
@@ -319,14 +319,14 @@ public class TransferLibRequestAppService : SfsStoreRequestAppServiceBase
var entity = ObjectMapper.Map(input);
var subType = Enum.Parse(input.Type);
- var tranType = await TransactionTypeAclService.GetByTransTypeAsync(EnumTransType.TransferLib, subType)
- .ConfigureAwait(false);
- entity.Type = ((int)subType).ToString();
- entity.AutoCompleteJob = tranType.AutoCompleteJob;
- entity.AutoSubmit = tranType.AutoSubmitRequest;
- entity.AutoAgree = tranType.AutoAgreeRequest;
- entity.AutoHandle = tranType.AutoHandleRequest;
- entity.DirectCreateNote = tranType.DirectCreateNote;
+ //var tranType = await TransactionTypeAclService.GetByTransTypeAsync(EnumTransType.TransferLib, subType)
+ // .ConfigureAwait(false);
+ //entity.Type = ((int)subType).ToString();
+ //entity.AutoCompleteJob = tranType.AutoCompleteJob;
+ //entity.AutoSubmit = tranType.AutoSubmitRequest;
+ //entity.AutoAgree = tranType.AutoAgreeRequest;
+ //entity.AutoHandle = tranType.AutoHandleRequest;
+ //entity.DirectCreateNote = tranType.DirectCreateNote;
await _transferLibRequestManager.CreateAsync(entity).ConfigureAwait(false);
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJob.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJob.cs
index 8f22c73b2..0e75380e3 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJob.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJob.cs
@@ -25,17 +25,11 @@ public class InjectionJob : SfsJobAggregateRootBase
public string ProdLine { get; set; }
///
- /// 要货单号
+ /// 注塑要料单号
///
[IgnoreUpdate]
public string InjectionRequestNumber { get; set; }
- ///
- /// 车间
- ///
- [IgnoreUpdate]
- public string Workshop { get; set; }
-
///
/// 使用在途库
///
@@ -49,36 +43,5 @@ public class InjectionJob : SfsJobAggregateRootBase
[IgnoreUpdate]
public override List Details { get; set; } = new List();
- ///
- /// 设置任务明细的实际库位和实际数量
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public virtual async Task BuildDetail(Guid id, string handledLocationCode, string handledLocationErpCode,
- string handledWarehouseCode, decimal handledQty, string handledSupplierBatch, DateTime handledArriveDate, DateTime handledProduceDate, DateTime handledExpireDate,
- string handledContainerCode, string handledLot, string handledPackingCode)
- {
- var detail = GetDetail(id);
- detail.HandledFromLocationCode = handledLocationCode;
- detail.HandledFromLocationErpCode = handledLocationErpCode;
- detail.HandledFromWarehouseCode = handledWarehouseCode;
- detail.HandledQty = handledQty;
- detail.HandledSupplierBatch = handledSupplierBatch;
- detail.HandledArriveDate = handledArriveDate;
- detail.HandledProduceDate = handledProduceDate;
- detail.HandledExpireDate = handledExpireDate;
- detail.HandledContainerCode = handledContainerCode;
- detail.HandledLot = handledLot;
- detail.HandledPackingCode = handledPackingCode;
- await Task.CompletedTask.ConfigureAwait(false);
- }
-
+
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobDetail.cs
index 5d37078d1..f5efad789 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobDetail.cs
@@ -1,40 +1,80 @@
using System;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Domain;
-public class InjectionJobDetail : SfsJobRecommendFromDetailEntityBase, IHasToLocation
+public class InjectionJobDetail : SfsDetailEntityBase
{
+ #region 库存基础信息
+
///
- /// 请求库位
+ /// 物品代码
///
- public string RequestLocationCode { get; set; }
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
///
- /// 到库位
+ /// 请求库位
///
- public string ToLocationCode { get; set; }
+ public string RequestLocationCode { get; set; }
///
/// 到库区
///
- public string ToLocationArea { get; set; }
+ public string RequestLocationArea { get; set; }
///
/// 到库位组
///
- public string ToLocationGroup { get; set; }
+ public string RequestLocationGroup { get; set; }
///
/// 到ERP库位
///
- public string ToLocationErpCode { get; set; }
+ public string RequestLocationErpCode { get; set; }
///
/// 到仓库
///
- public string ToWarehouseCode { get; set; }
+ public string RequestWarehouseCode { get; set; }
///
/// 在途库库位
@@ -47,59 +87,435 @@ public class InjectionJobDetail : SfsJobRecommendFromDetailEntityBase, IHasToLoc
public string ProdLine { get; set; }
///
- /// 工作中心
+ /// 位置码
///
- public string WorkStation { get; set; }
+ public string PositionCode { get; set; }
///
- /// 过期时间
+ /// 推荐的类型
///
- public DateTime ExpiredTime { get; set; }
+ public EnumRecommendType RecommendType { get; set; }
///
- /// 工序
+ /// 需求数量
///
- public string Operation { get; set; }
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
///
- /// 配送方式
+ /// 推荐来源托标签
///
- public EnumDistributionType DistributionType { get; set; }
+ public string RecommendFromContainerCode { get; set; }
///
- /// 取整方式
+ /// 推荐来源箱标签
///
- public EnumTruncType TruncType { get; set; }
+ public string RecommendFromPackingCode { get; set; }
///
- /// 取整后数量
+ /// 推荐来源批次供应商批次
///
- public decimal RoundedQty { get; set; }
+ public string RecommendFromSupplierBatch { get; set; }
///
- /// 计划拆分规则
+ /// 推荐来源批次到货时间
///
- public EnumPlannedSplitRule PlannedSplitRule { get; set; }
+ public DateTime RecommendFromArriveDate { get; set; }
///
- /// 计划开始时间
+ /// 推荐来源批次生产时间
///
- public DateTime PlanBeginTime { get; set; }
+ public DateTime RecommendFromProduceDate { get; set; }
///
- /// 每次配送数量
+ /// 推荐来源批次过期时间
///
- public decimal DeliveryQty { get; set; }
+ public DateTime RecommendFromExpireDate { get; set; }
///
- /// 位置码
+ /// 推荐来源批次排序
///
- public string PositionCode { get; set; }
+ public string RecommendFromLot { get; set; }
///
- /// 推荐类型
+ /// 推荐来源库位
///
- public EnumRecommendType RecommendType { get; set; }
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
+
+ ///
+ /// 库移来源托标签
+ ///
+ public string TransferLibFromContainerCode { get; set; }
+
+ ///
+ /// 库移来源箱标签
+ ///
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
public void SetId(Guid id)
{
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobManager.cs
index a88e5c213..4f6514f53 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobManager.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobManager.cs
@@ -30,23 +30,6 @@ public class InjectionJobManager : SfsJobManagerBase> GetWorkingListByPackingAsync(string packingCode)
+ public async Task GetAsync(Expression> expression)
{
- return await Repository.GetListAsync(c => c.Details.Any(p => p.RecommendPackingCode == packingCode) && c.JobStatus != EnumJobStatus.Closed && c.JobStatus != EnumJobStatus.Cancelled, true).ConfigureAwait(false);
-
+ return await Repository.FindAsync(expression).ConfigureAwait(false);
}
- public override async Task> GetWorkingListByContainerAsync(string containerCode)
- {
- return await Repository.GetListAsync(c => c.Details.Any(p => p.RecommendContainerCode == containerCode) && c.JobStatus != EnumJobStatus.Closed && c.JobStatus != EnumJobStatus.Cancelled, true).ConfigureAwait(false);
+ #region 无用
+ public override Task> GetWorkingListByPackingAsync(string packingCode)
+ {
+ throw new NotImplementedException();
}
-
- public async Task GetAsync(Expression> expression)
+
+ public override Task> GetWorkingListByContainerAsync(string containerCode)
{
- return await Repository.FindAsync(expression).ConfigureAwait(false);
+ throw new NotImplementedException();
}
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/SfsJobRecommendToDetailEntityBase.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/SfsJobRecommendToDetailEntityBase.cs
index e476d8733..ec39082a9 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/SfsJobRecommendToDetailEntityBase.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/SfsJobRecommendToDetailEntityBase.cs
@@ -14,6 +14,11 @@ public abstract class SfsJobRecommendToDetailEntityBase
, IHasStdPack
{
+ ///
+ /// 物品代码
+ ///
+ public string ItemCode { get; set; }
+
///
/// 物品名称
///
@@ -29,11 +34,6 @@ public abstract class SfsJobRecommendToDetailEntityBase
///
public string ItemDesc2 { get; set; }
- ///
- /// 物品代码
- ///
- public string ItemCode { get; set; }
-
///
/// 标包数量
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNote.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNote.cs
index 582852d31..f5e97fd45 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNote.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNote.cs
@@ -17,12 +17,6 @@ public class InjectionNote : SfsStoreAggregateRootBase, IHa
[IgnoreUpdate]
public string JobNumber { get; set; }
- ///
- /// 车间
- ///
- [IgnoreUpdate]
- public string Workshop { get; set; }
-
///
/// 明细列表
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNoteDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNoteDetail.cs
index 9e9d44882..128c44d6e 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNoteDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNoteDetail.cs
@@ -1,43 +1,519 @@
using System;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Domain;
-public class InjectionNoteDetail : SfsStoreRecommendFromDetailWithFromToEntityBase
+public class InjectionNoteDetail : SfsStoreDetailEntityBase
{
+ #region 库存基础信息
///
- /// 发料时间
+ /// 物品代码
///
- public DateTime IssueTime { get; set; }
+ public string ItemCode { get; set; }
///
- /// 过期时间
+ /// 物品名称
///
- public DateTime ExpiredTime { get; set; }
+ public string ItemName { get; set; }
///
- /// 生产线
+ /// 物品描述1
///
- public string ProdLine { get; set; }
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
///
- /// 工作中心
+ /// 到库区
///
- public string WorkStation { get; set; }
+ public string RequestLocationArea { get; set; }
///
- /// 在途库库位
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
///
public string OnTheWayLocationCode { get; set; }
///
- /// 位置码
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
///
public string PositionCode { get; set; }
///
- /// 推荐类型
+ /// 推荐的类型
///
public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
+
+ ///
+ /// 库移来源托标签
+ ///
+ public string TransferLibFromContainerCode { get; set; }
+
+ ///
+ /// 库移来源箱标签
+ ///
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
}
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 9d3d1b496..2f4759c3a 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
@@ -56,16 +56,6 @@ public class InjectionRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasToLoc
///
public string ProdLine { get; set; }
- ///
- /// 工作中心
- ///
- public string WorkStation { get; set; }
-
- ///
- /// 过期时间
- ///
- public DateTime ExpiredTime { get; set; }
-
///
/// 已发数量
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Jobs/IssueJobs/InjectionJobs/InjectionJobDbContextModelCreatingExtensions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Jobs/IssueJobs/InjectionJobs/InjectionJobDbContextModelCreatingExtensions.cs
index 49690e16a..97047de73 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Jobs/IssueJobs/InjectionJobs/InjectionJobDbContextModelCreatingExtensions.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Jobs/IssueJobs/InjectionJobs/InjectionJobDbContextModelCreatingExtensions.cs
@@ -23,7 +23,6 @@ public static class InjectionJobDbContextModelCreatingExtensions
//Properties
b.Property(q => q.RequestType).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.InjectionRequestNumber).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.Workshop).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength);
//Relations
b.HasMany(q => q.Details).WithOne().HasForeignKey(d => d.MasterID).IsRequired();
@@ -40,21 +39,11 @@ public static class InjectionJobDbContextModelCreatingExtensions
//Configure Sfs base properties
b.ConfigureSfsBase();
//Configure Job base properties
- b.ConfigureJobRecommendFromDetail();
+ //b.ConfigureJobRecommendFromDetail();
//Properties
- b.Property(q => q.ExpiredTime).IsRequired();
- b.Property(q => q.ToLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.ToLocationErpCode).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.ToWarehouseCode).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.ToLocationArea).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.ToLocationGroup).HasMaxLength(SfsPropertyConst.CodeLength);
+
b.Property(q => q.RequestLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.WorkStation).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.Operation).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.DistributionType).HasMaxLength(SfsPropertyConst.NameLength).HasConversion();
- b.Property(q => q.TruncType).HasMaxLength(SfsPropertyConst.NameLength).HasConversion();
- b.Property(q => q.PlannedSplitRule).HasMaxLength(SfsPropertyConst.NameLength).HasConversion();
b.Property(q => q.OnTheWayLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.PositionCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.RecommendType).HasMaxLength(SfsPropertyConst.CodeLength).HasConversion();
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240412052222_Update_Injection.Designer.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240412052222_Update_Injection.Designer.cs
new file mode 100644
index 000000000..13991b8f4
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240412052222_Update_Injection.Designer.cs
@@ -0,0 +1,29666 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Volo.Abp.EntityFrameworkCore;
+using Win_in.Sfs.Wms.Store.EntityFrameworkCore;
+
+#nullable disable
+
+namespace Win_in.Sfs.Wms.Store.Migrations
+{
+ [DbContext(typeof(StoreDbContext))]
+ [Migration("20240412052222_Update_Injection")]
+ partial class Update_Injection
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
+ .HasAnnotation("ProductVersion", "6.0.13")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleJob", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("AcceptTime")
+ .HasColumnType("datetime2");
+
+ b.Property("AcceptUserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("AcceptUserName")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("AssembleRequestNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("CompleteTime")
+ .HasColumnType("datetime2");
+
+ b.Property("CompleteUserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CompleteUserName")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("nvarchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("IsAutoComplete")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bit")
+ .HasDefaultValue(false);
+
+ b.Property("JobDescription")
+ .HasMaxLength(1024)
+ .HasColumnType("nvarchar(1024)");
+
+ b.Property("JobStatus")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("JobType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Priority")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0);
+
+ b.Property("PriorityIncrement")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0);
+
+ b.Property("ProdLine")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("RequestType")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("UpStreamJobNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("UseOnTheWayLocation")
+ .HasColumnType("bit");
+
+ b.Property("WarehouseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("WorkGroupCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Worker")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Workshop")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Job_AssembleJob", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleJobDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("DeliveryQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("DistributionType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ExpiredTime")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledContainerCode");
+
+ b.Property("HandledExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledFromLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationArea");
+
+ b.Property("HandledFromLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationCode");
+
+ b.Property("HandledFromLocationErpCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationErpCode");
+
+ b.Property("HandledFromLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationGroup");
+
+ b.Property("HandledFromWarehouseCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromWarehouseCode");
+
+ b.Property("HandledLot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledLot");
+
+ b.Property("HandledPackingCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledPackingCode");
+
+ b.Property("HandledProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("HandledSupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledSupplierBatch");
+
+ b.Property("ItemCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemCode");
+
+ b.Property("ItemDesc1")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemDesc1");
+
+ b.Property("ItemDesc2")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemDesc2");
+
+ b.Property("ItemName")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemName");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("MasterID")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("OnTheWayLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Operation")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("PlanBeginTime")
+ .HasColumnType("datetime2");
+
+ b.Property("PlannedSplitRule")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("PositionCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProdLine")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("RecommendArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendContainerCode");
+
+ b.Property("RecommendExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendFromLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationArea");
+
+ b.Property("RecommendFromLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationCode");
+
+ b.Property("RecommendFromLocationErpCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationErpCode");
+
+ b.Property("RecommendFromLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationGroup");
+
+ b.Property("RecommendFromWarehouseCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromWarehouseCode");
+
+ b.Property("RecommendLot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendLot");
+
+ b.Property("RecommendPackingCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendPackingCode");
+
+ b.Property("RecommendProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("RecommendSupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendSupplierBatch");
+
+ b.Property("RecommendType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("RequestLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("RoundedQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("StdPackQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("ToLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ToLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ToLocationErpCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ToLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ToWarehouseCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("TruncType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Uom")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("WorkStation")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MasterID");
+
+ b.ToTable("Job_AssembleJobDetail", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleNote", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ActiveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("nvarchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("ConfirmTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Confirmed")
+ .HasColumnType("bit");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("JobNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("JobNumber");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("RequestNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("RequestType")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("UseOnTheWayLocation")
+ .HasColumnType("bit");
+
+ b.Property("Worker")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Workshop")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Store_AssembleNote", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleNoteDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ExpiredTime")
+ .HasColumnType("datetime2");
+
+ b.Property("FromContainerCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FromLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("FromLocationArea");
+
+ b.Property("FromLocationCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("FromLocationCode");
+
+ b.Property("FromLocationErpCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("FromLocationErpCode");
+
+ b.Property("FromLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("FromLocationGroup");
+
+ b.Property("FromLot")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FromPackingCode")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("FromStatus")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("FromWarehouseCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("FromWarehouseCode");
+
+ b.Property("HandledArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledContainerCode");
+
+ b.Property("HandledExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledFromLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationArea");
+
+ b.Property("HandledFromLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationCode");
+
+ b.Property("HandledFromLocationErpCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationErpCode");
+
+ b.Property("HandledFromLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationGroup");
+
+ b.Property("HandledFromWarehouseCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromWarehouseCode");
+
+ b.Property("HandledLot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledLot");
+
+ b.Property("HandledPackingCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledPackingCode");
+
+ b.Property("HandledProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("HandledSupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledSupplierBatch");
+
+ b.Property("IssueTime")
+ .HasColumnType("datetime2");
+
+ b.Property("ItemCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemCode");
+
+ b.Property("ItemDesc1")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemDesc1");
+
+ b.Property("ItemDesc2")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemDesc2");
+
+ b.Property("ItemName")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemName");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("MasterID")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("OnTheWayLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("PositionCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProdLine")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Qty")
+ .HasPrecision(18, 6)
+ .HasColumnType("decimal(18,6)")
+ .HasColumnName("Qty");
+
+ b.Property("RecommendArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendContainerCode");
+
+ b.Property("RecommendExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendFromLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationArea");
+
+ b.Property("RecommendFromLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationCode");
+
+ b.Property("RecommendFromLocationErpCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationErpCode");
+
+ b.Property("RecommendFromLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationGroup");
+
+ b.Property("RecommendFromWarehouseCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromWarehouseCode");
+
+ b.Property("RecommendLot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendLot");
+
+ b.Property("RecommendPackingCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendPackingCode");
+
+ b.Property("RecommendProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("RecommendSupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendSupplierBatch");
+
+ b.Property("RecommendType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("StdPackQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("SupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("SupplierBatch");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("ToContainerCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ToLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ToLocationArea");
+
+ b.Property("ToLocationCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ToLocationCode");
+
+ b.Property("ToLocationErpCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ToLocationErpCode");
+
+ b.Property("ToLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ToLocationGroup");
+
+ b.Property("ToLot")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ToPackingCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ToStatus")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ToWarehouseCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ToWarehouseCode");
+
+ b.Property("Uom")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Uom");
+
+ b.Property("WorkStation")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FromPackingCode");
+
+ b.HasIndex("MasterID");
+
+ b.HasIndex("Number", "FromPackingCode", "FromLocationCode", "ToLocationCode")
+ .IsUnique()
+ .HasFilter("[FromPackingCode] IS NOT NULL");
+
+ b.ToTable("Store_AssembleNoteDetail", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleRequest", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ActiveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("AutoAgree")
+ .HasColumnType("bit");
+
+ b.Property("AutoCompleteJob")
+ .HasColumnType("bit");
+
+ b.Property("AutoHandle")
+ .HasColumnType("bit");
+
+ b.Property("AutoSubmit")
+ .HasColumnType("bit");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("nvarchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("DirectCreateNote")
+ .HasColumnType("bit");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("ProdLine")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("RequestStatus")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("Type")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("UseOnTheWayLocation")
+ .HasColumnType("bit");
+
+ b.Property("Worker")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Store_AssembleRequest", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleRequestDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property