diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/DTOs/LocationDTO.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/DTOs/LocationDTO.cs
index b7db27277..c4ef5aa6c 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/DTOs/LocationDTO.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/DTOs/LocationDTO.cs
@@ -1,4 +1,3 @@
-using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs
new file mode 100644
index 000000000..57dcc7553
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs
@@ -0,0 +1,159 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Win_in.Sfs.Basedata.Application.Contracts;
+using Win_in.Sfs.Label.Domain.Shared;
+using Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
+
+namespace Win_in.Sfs.Wms.Store.SplitPackings;
+public class SplitPackingRecDTO : SfsBaseDataDTOBase
+{
+ ///
+ /// 操作类型
+ ///
+ [Display(Name = "操作类型")]
+ public OprTypeEnum OprType { get; set; }
+
+ ///
+ /// 源箱码
+ ///
+ [Display(Name = "源箱码")]
+ public string FromPackingCode { get; set; }
+
+ ///
+ /// 源顶级箱码
+ ///
+ [Display(Name = "源顶级箱码")]
+ public string FromTopPackingCode { get; set; }
+
+ ///
+ /// 源标包数量
+ ///
+ [Display(Name = "源标包数量")]
+ public decimal FromStdPackQty { get; set; }
+
+ ///
+ /// 源计量单位
+ ///
+ [Display(Name = "源计量单位")]
+ public string FromUom { get; set; }
+
+ ///
+ /// 源数量
+ ///
+ [Display(Name = "源数量")]
+ public decimal FromQty { get; set; }
+
+ ///
+ /// 目标箱码
+ ///
+ [Display(Name = "目标箱码")]
+ public string ToPackingCode { get; set; }
+
+ ///
+ /// 目标顶级箱码
+ ///
+ [Display(Name = "目标顶级箱码")]
+ public string ToTopPackingCode { get; set; }
+
+ ///
+ /// 目标标包数量
+ ///
+ [Display(Name = "目标标包数量")]
+ public decimal ToStdPackQty { get; set; }
+
+ ///
+ /// 目标计量单位
+ ///
+ [Display(Name = "目标计量单位")]
+ public string ToUom { get; set; }
+
+ ///
+ /// 目标数量
+ ///
+ [Display(Name = "目标数量")]
+ public decimal ToQty { get; set; }
+
+ ///
+ /// 物料号
+ ///
+ [Display(Name = "物料号")]
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物料名称
+ ///
+ [Display(Name = "物料名称")]
+ public string ItemName { get; set; }
+
+ ///
+ /// 物料描述1
+ ///
+ [Display(Name = "物料描述1")]
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物料描述2
+ ///
+ [Display(Name = "物料描述2")]
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 源批次
+ ///
+ [Display(Name = "源批次")]
+ public string FromLot { get; set; }
+
+ ///
+ /// 目标批次
+ ///
+ [Display(Name = "目标批次")]
+ public string ToLot { get; set; }
+
+ ///
+ /// 采购订单
+ ///
+ [Display(Name = "采购订单")]
+ public string PurchaseInfo_PoNumber { get; set; }
+
+ ///
+ /// 供应商发货单
+ ///
+ [Display(Name = "供应商发货单")]
+ public string PurchaseInfo_AsnNumber { get; set; }
+
+ ///
+ /// 到货通知
+ ///
+ [Display(Name = "到货通知")]
+ public string ArrivalNoticNumber { get; set; }
+
+ ///
+ /// 任务单
+ ///
+ [Display(Name = "任务单")]
+ public string TaskOrderNumber { get; set; }
+
+ ///
+ /// 收货记录单
+ ///
+ [Display(Name = "收货记录单")]
+ public string ReceiptRecNumber { get; set; }
+
+ ///
+ /// 上架单
+ ///
+ [Display(Name = "上架单")]
+ public string PutOnShelfNumber { get; set; }
+
+ ///
+ /// 标签类型
+ ///
+ [Display(Name = "标签类型")]
+ public EnumLabelType LabelType { get; set; }
+
+}
+
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs
new file mode 100644
index 000000000..df7886391
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Win_in.Sfs.Basedata.Application.Contracts;
+using Win_in.Sfs.Shared.Application.Contracts;
+using Win_in.Sfs.Wms.Store.Application.Contracts;
+
+namespace Win_in.Sfs.Wms.Store.SplitPackings;
+
+public interface ISplitPackingRecAppService
+ : ISfsStoreAppServiceBase
+{
+ Task BatchInsertAsync(List inputs);
+
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs
new file mode 100644
index 000000000..1c9e5350a
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs
@@ -0,0 +1,161 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Win_in.Sfs.Basedata.Application.Contracts;
+using Win_in.Sfs.Label.Domain.Shared;
+using Win_in.Sfs.Shared.Domain;
+using Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
+
+namespace Win_in.Sfs.Wms.Store.SplitPackings;
+
+public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase
+{
+ ///
+ /// 操作类型
+ ///
+ [Required(ErrorMessage = "{0}是必填项")]
+ public OprTypeEnum OprType { get; set; }
+
+ ///
+ /// 源箱码
+ ///
+ [Required(ErrorMessage = "{0}是必填项")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string FromPackingCode { get; set; }
+
+ ///
+ /// 源顶级箱码
+ ///
+ //public string FromTopPackingCode { get; set; }
+
+ ///
+ /// 源标包数量
+ ///
+ [Required(ErrorMessage = "{0}是必填项")]
+ public decimal FromStdPackQty { get; set; }
+
+ ///
+ /// 源计量单位
+ ///
+ [Required(ErrorMessage = "{0}是必填项")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string FromUom { get; set; }
+
+ ///
+ /// 源数量
+ ///
+ [Required(ErrorMessage = "{0}是必填项")]
+ public decimal FromQty { get; set; }
+
+ ///
+ /// 目标箱码
+ ///
+ [Required(ErrorMessage = "{0}是必填项")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string ToPackingCode { get; set; }
+
+ ///
+ /// 目标顶级箱码
+ ///
+ //public string ToTopPackingCode { get; set; }
+
+ ///
+ /// 目标标包数量
+ ///
+ [Required(ErrorMessage = "{0}是必填项")]
+ public decimal ToStdPackQty { get; set; }
+
+ ///
+ /// 目标计量单位
+ ///
+ [Required(ErrorMessage = "{0}是必填项")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string ToUom { get; set; }
+
+ ///
+ /// 目标数量
+ ///
+ [Required(ErrorMessage = "{0}是必填项")]
+ public decimal ToQty { get; set; }
+
+ ///
+ /// 物料号
+ ///
+ [Required(ErrorMessage = "{0}是必填项")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物料名称
+ ///
+ [StringLength(SfsEfCorePropertyConst.NameLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string ItemName { get; set; }
+
+ ///
+ /// 物料描述1
+ ///
+ [StringLength(SfsEfCorePropertyConst.DescLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物料描述2
+ ///
+ [StringLength(SfsEfCorePropertyConst.DescLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 源批次
+ ///
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string FromLot { get; set; }
+
+ ///
+ /// 目标批次
+ ///
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string ToLot { get; set; }
+
+ ///
+ /// 采购订单
+ ///
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string PurchaseInfo_PoNumber { get; set; }
+
+ ///
+ /// 供应商发货单
+ ///
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string PurchaseInfo_AsnNumber { get; set; }
+
+ ///
+ /// 到货通知
+ ///
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string ArrivalNoticNumber { get; set; }
+
+ ///
+ /// 任务单
+ ///
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string TaskOrderNumber { get; set; }
+
+ ///
+ /// 收货记录单
+ ///
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string ReceiptRecNumber { get; set; }
+
+ ///
+ /// 上架单
+ ///
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string PutOnShelfNumber { get; set; }
+
+ ///
+ /// 标签类型
+ ///
+ public EnumLabelType LabelType { get; set; }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Inputs/SplitPackingRecImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Inputs/SplitPackingRecImportInput.cs
new file mode 100644
index 000000000..12c9827ea
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Inputs/SplitPackingRecImportInput.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Win_in.Sfs.Wms.Store.Application.Contracts;
+
+namespace Win_in.Sfs.Wms.Store.SplitPackings.Inputs;
+
+[Display(Name = "拆箱记录")]
+public class SplitPackingRecImportInput : SfsStoreImportInputBase
+{
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs
index 5bf6599ae..4a664821c 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs
@@ -125,48 +125,38 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase
[HttpPost("split-packing")]
public async Task SplitPackingAsync(TransferNoteEditInput transferNoteEditInput)
{
+ //插入拆箱记录表
foreach (var inputDetail in transferNoteEditInput.Details)
{
- //插入拆箱记录表
List recLst = new List();
- SplitPackingRec fromRec = new SplitPackingRec();
- fromRec.OprType = Domain.Shared.SplitPackings.OprTypeEnum.SplitBox;
- //fromRec.GroupCode = ;
- //fromRec.OprLevel = ;
- fromRec.NodeType = Domain.Shared.SplitPackings.NodeTypeEnum.FromBox;
- //fromRec.ParentId = ;
- fromRec.PackingCode = inputDetail.FromPackingCode;
- //fromRec.RootPackingCode = ;
- fromRec.ItemCode = inputDetail.ItemCode;
- fromRec.ItemName = inputDetail.ItemName;
- fromRec.ItemDesc1 = inputDetail.ItemDesc1;
- fromRec.ItemDesc2 = inputDetail.ItemDesc2;
- fromRec.Lot = inputDetail.FromLot;
- fromRec.StdPackQty = inputDetail.StdPackQty;
- fromRec.Uom = inputDetail.Uom;
- fromRec.Qty = inputDetail.Qty;
- recLst.Add(fromRec);
-
- SplitPackingRec toRec = new SplitPackingRec();
- toRec.OprType = Domain.Shared.SplitPackings.OprTypeEnum.SplitBox;
- //toRec.GroupCode = ;
- //toRec.OprLevel = ;
- toRec.NodeType = Domain.Shared.SplitPackings.NodeTypeEnum.ToBox;
- //toRec.ParentId = ;
- toRec.PackingCode = inputDetail.ToPackingCode;
- //toRec.RootPackingCode = ;
- toRec.ItemCode = inputDetail.ItemCode;
- toRec.ItemName = inputDetail.ItemName;
- toRec.ItemDesc1 = inputDetail.ItemDesc1;
- toRec.ItemDesc2 = inputDetail.ItemDesc2;
- toRec.Lot = inputDetail.ToLot;
- toRec.StdPackQty = inputDetail.StdPackQty;
- toRec.Uom = inputDetail.Uom;
- toRec.Qty = inputDetail.Qty;
- recLst.Add(toRec);
- await _splitPackingRecManager.DoSplitPacking(recLst).ConfigureAwait(false);
+ SplitPackingRec packRec = new SplitPackingRec();
+ packRec.OprType = Domain.Shared.SplitPackings.OprTypeEnum.SplitBox;
+ packRec.FromPackingCode = inputDetail.FromPackingCode;
+ //packRec.FromTopPackingCode = inputDetail.;
+ packRec.FromStdPackQty = inputDetail.StdPackQty;
+ packRec.FromUom = inputDetail.Uom;
+ packRec.FromQty = inputDetail.Qty;
+ packRec.ToPackingCode = inputDetail.ToPackingCode;
+ //packRec.ToTopPackingCode = inputDetail.;
+ packRec.ToStdPackQty = inputDetail.StdPackQty;
+ packRec.ToUom = inputDetail.Uom;
+ packRec.ToQty = inputDetail.Qty;
+ packRec.ItemCode = inputDetail.ItemCode;
+ packRec.ItemName = inputDetail.ItemName;
+ packRec.ItemDesc1 = inputDetail.ItemDesc1;
+ packRec.ItemDesc2 = inputDetail.ItemDesc2;
+ packRec.FromLot = inputDetail.FromLot;
+ packRec.ToLot = inputDetail.ToLot;
+ //packRec.PurchaseInfo_PoNumber = inputDetail.; // 采购订单
+ //packRec.PurchaseInfo_AsnNumber = inputDetail.; //供应商发货单
+ //packRec.ArrivalNoticNumber = inputDetail.; //到货通知
+ //packRec.TaskOrderNumber = inputDetail.; //任务单
+ //packRec.ReceiptRecNumber = inputDetail.; //收货记录单
+ //packRec.PutOnShelfNumber = inputDetail.; //上架单
+ recLst.Add(packRec);
+ await _splitPackingRecManager.BatchInsertAsync(recLst).ConfigureAwait(false);
}
-
+ //更新库存
transferNoteEditInput.Type = EnumTransSubType.Transfer_SplitPacking.ToString();
return await CreateAsync(transferNoteEditInput).ConfigureAwait(false);
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/SplitPackings/SplitPackingRecAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/SplitPackings/SplitPackingRecAppService.cs
new file mode 100644
index 000000000..8ef438605
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/SplitPackings/SplitPackingRecAppService.cs
@@ -0,0 +1,44 @@
+/*
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Components;
+using Win_in.Sfs.Wms.Store.Application;
+using Win_in.Sfs.Wms.Store.Application.Contracts;
+using Win_in.Sfs.Wms.Store.Domain;
+using Win_in.Sfs.Wms.Store.Domain.Shared;
+using Win_in.Sfs.Wms.Store.SplitPackings.Inputs;
+
+namespace Win_in.Sfs.Wms.Store.SplitPackings;
+
+///
+/// 拆箱记录
+///
+//[Authorize]
+//[Route($"{StoreConsts.RootPath}split-packing-rec")]
+public class SplitPackingRecAppService :
+ SfsStoreAppServiceBase
+ //, ISplitPackingRecAppService
+{
+ private readonly ISplitPackingRecManager _splitPackingRecManager;
+
+ public SplitPackingRecAppService(
+ ISplitPackingRecRepository repository,
+ ISplitPackingRecManager splitPackingRecManager
+ ) : base(repository)
+ {
+ _splitPackingRecManager = splitPackingRecManager;
+ }
+
+ public async Task BatchInsertAsync(List inputs)
+ {
+ List lst = ObjectMapper.Map, List>(inputs);
+ bool ret = await _splitPackingRecManager.BatchInsertAsync(lst).ConfigureAwait(false);
+ return ret;
+ }
+
+}
+*/
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/SplitPackings/SplitPackingRecAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/SplitPackings/SplitPackingRecAutoMapperProfile.cs
new file mode 100644
index 000000000..096df08b8
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/SplitPackings/SplitPackingRecAutoMapperProfile.cs
@@ -0,0 +1,17 @@
+using AutoMapper;
+using Volo.Abp.AutoMapper;
+using Win_in.Sfs.Basedata.Application.Contracts;
+using Win_in.Sfs.Basedata.Domain;
+using Win_in.Sfs.Wms.Store.Domain;
+using Win_in.Sfs.Wms.Store.SplitPackings;
+
+namespace Win_in.Sfs.Basedata.Application;
+
+public partial class StoreApplicationAutoMapperProfile : Profile
+{
+ public void SplitPackingRecAutoMapperProfile()
+ {
+ CreateMap();
+ CreateMap();
+ }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs
index 8dfb70eb6..57454f3d1 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs
@@ -104,6 +104,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
#endregion
ExchangeDataAutoMapperProfile();
+ SplitPackingRecAutoMapperProfile();
}
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Shared/SplitPackings/OprTypeEnum.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Shared/SplitPackings/OprTypeEnum.cs
index 39871764d..667741dd6 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Shared/SplitPackings/OprTypeEnum.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Shared/SplitPackings/OprTypeEnum.cs
@@ -7,6 +7,11 @@ using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
public enum OprTypeEnum
{
+ ///
+ /// 其它
+ ///
+ Other = 0,
+
///
/// 拆箱
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/ISplitPackingRecManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/ISplitPackingRecManager.cs
index 0e2b1db47..6ce3f4e5c 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/ISplitPackingRecManager.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/ISplitPackingRecManager.cs
@@ -9,5 +9,5 @@ using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.SplitPackings;
public interface ISplitPackingRecManager : IDomainService
{
- Task DoSplitPacking(List input);
+ Task BatchInsertAsync(List input);
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/SplitPackingRec.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/SplitPackingRec.cs
index 1faed30aa..5f2c2f7fe 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/SplitPackingRec.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/SplitPackingRec.cs
@@ -1,6 +1,7 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Label.Domain.Shared;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
@@ -12,8 +13,6 @@ namespace Win_in.Sfs.Wms.Store.Domain;
///
public class SplitPackingRec : SfsAggregateRootBase
, IHasItem
- , IHasQty
- , IHasStdPack
{
///
/// 操作类型
@@ -21,56 +20,126 @@ public class SplitPackingRec : SfsAggregateRootBase
public OprTypeEnum OprType { get; set; }
///
- ///
+ /// 源箱码
///
- public string GroupCode { get; set; }
+ public string FromPackingCode { get; set; }
///
- ///
+ /// 源顶级箱码
///
- public long OprLevel { get; set; }
+ public string FromTopPackingCode { get; set; }
///
- ///
+ /// 源标包数量
///
- public NodeTypeEnum NodeType { get; set; }
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal FromStdPackQty { get; set; }
- public Guid? ParentId { get; set; }
+ ///
+ /// 源计量单位
+ ///
+ [Display(Name = "计量单位")]
+ [MaxLength(SfsPropertyConst.CodeLength)]
+ public string FromUom { get; set; }
- public string PackingCode { get; set; }
+ ///
+ /// 源数量
+ ///
+ [Display(Name = "数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal FromQty { get; set; }
- public string RootPackingCode { get; set; }
+ ///
+ /// 目标箱码
+ ///
+ public string ToPackingCode { get; set; }
+
+ ///
+ /// 目标顶级箱码
+ ///
+ public string ToTopPackingCode { get; set; }
- //public string FullBarcodeString { get; set; }
+ ///
+ /// 目标标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal ToStdPackQty { get; set; }
+
+ ///
+ /// 目标计量单位
+ ///
+ [Display(Name = "计量单位")]
+ [MaxLength(SfsPropertyConst.CodeLength)]
+ public string ToUom { get; set; }
+
+ ///
+ /// 目标数量
+ ///
+ [Display(Name = "数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal ToQty { get; set; }
+ ///
+ /// 物料号
+ ///
public string ItemCode { get; set; }
+ ///
+ /// 物料名称
+ ///
public string ItemName { get; set; }
+ ///
+ /// 物料描述1
+ ///
public string ItemDesc1 { get; set; }
+ ///
+ /// 物料描述2
+ ///
public string ItemDesc2 { get; set; }
- public string Lot { get; set; }
+ ///
+ /// 源批次
+ ///
+ public string FromLot { get; set; }
///
- /// 标包数量
+ /// 目标批次
///
- [Display(Name = "标包数量")]
- [Column(TypeName = "decimal(18,6)")]
- public decimal StdPackQty { get; set; }
+ public string ToLot { get; set; }
///
- /// 计量单位
+ /// 采购订单
///
- [Display(Name = "计量单位")]
- [MaxLength(SfsPropertyConst.CodeLength)]
- public string Uom { get; set; }
+ public string PurchaseInfo_PoNumber { get; set; }
///
- /// 数量
+ /// 供应商发货单
///
- [Display(Name = "数量")]
- [Column(TypeName = "decimal(18,6)")]
- public decimal Qty { get; set; }
+ public string PurchaseInfo_AsnNumber { get; set; }
+
+ ///
+ /// 到货通知
+ ///
+ public string ArrivalNoticNumber { get; set; }
+
+ ///
+ /// 任务单
+ ///
+ public string TaskOrderNumber { get; set; }
+
+ ///
+ /// 收货记录单
+ ///
+ public string ReceiptRecNumber { get; set; }
+
+ ///
+ /// 上架单
+ ///
+ public string PutOnShelfNumber { get; set; }
+
+ public EnumLabelType LabelType { get; set; }
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/SplitPackingRecManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/SplitPackingRecManager.cs
index f2589e7a9..a608676f9 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/SplitPackingRecManager.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/SplitPackingRecManager.cs
@@ -4,50 +4,130 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
+using Volo.Abp;
using Volo.Abp.Domain.Services;
+using Volo.Abp.ObjectMapping;
+using Win_in.Sfs.Label.Domain;
using Win_in.Sfs.Wms.Store.Domain;
+using Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
namespace Win_in.Sfs.Wms.Store.SplitPackings;
public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
{
private readonly ISplitPackingRecRepository _repository;
+ private readonly IObjectMapper _autoMapper;
+ private readonly ILabelDefinitionManager _labelDefinitionManager;
- public SplitPackingRecManager(ISplitPackingRecRepository repository)
+ public SplitPackingRecManager(ISplitPackingRecRepository repository, IObjectMapper autoMapper, ILabelDefinitionManager labelDefinitionManager)
{
_repository = repository;
+ _autoMapper = autoMapper;
+ _labelDefinitionManager = labelDefinitionManager;
}
- public async Task DoSplitPacking(List input)
+ public async Task BatchInsertAsync(List input)
{
- string groupCode = Guid.NewGuid().ToString();
- long maxOprLevel;
- Guid? parentId;
- string rootPackingCode;
- SplitPackingRec fromRec = input.First(itm => itm.NodeType == Domain.Shared.SplitPackings.NodeTypeEnum.FromBox);
var query = await _repository.GetQueryableAsync().ConfigureAwait(false);
- var hasData = await query.AnyAsync(itm => itm.PackingCode == fromRec.PackingCode).ConfigureAwait(false);
- if (hasData)
+ foreach (SplitPackingRec item in input)
+ {
+ if (item.OprType == OprTypeEnum.Other) //入库等
+ {
+ if (item.FromPackingCode != item.ToPackingCode)
+ {
+ throw new UserFriendlyException("操作类型不是拆箱或合箱状态,源箱码和目标箱码必须相同!");
+ }
+
+ throw new UserFriendlyException("操作类型不是拆箱或合箱状态,源箱码和目标箱码必须相等!");
+ }
+ else //拆箱或合箱
+ {
+ if (item.FromPackingCode == item.ToPackingCode)
+ {
+ throw new UserFriendlyException("操作类型是拆箱或合箱状态,源箱码和目标箱码不能相同!");
+ }
+ }
+ if (item.OprType == OprTypeEnum.SplitBox || item.OprType == OprTypeEnum.MergeBox)
+ {
+ if (string.IsNullOrEmpty(item.ToPackingCode))
+ {
+ item.ToPackingCode = await _labelDefinitionManager.GenerateAsync(item.LabelType.ToString(), DateTime.Now).ConfigureAwait(false);
+ }
+ string toPackCode = item.ToPackingCode;
+ //拆箱时,如果目标箱不存在,插入目标箱(两个箱码相同)
+ var toHis = await query.FirstOrDefaultAsync(itm => itm.FromPackingCode == toPackCode).ConfigureAwait(false);
+ if (toHis == null)
+ {
+ SplitPackingRec newObj = new SplitPackingRec();
+ _autoMapper.Map(item, newObj);
+ newObj.SetId(Guid.NewGuid());
+ newObj.OprType = OprTypeEnum.Other;
+ newObj.FromPackingCode = newObj.ToPackingCode;
+ newObj.FromTopPackingCode = newObj.ToTopPackingCode;
+ newObj.FromStdPackQty = newObj.ToStdPackQty;
+ newObj.FromUom = newObj.ToUom;
+ newObj.FromQty = newObj.ToQty;
+ newObj.FromLot = newObj.ToLot;
+ await _repository.InsertAsync(newObj).ConfigureAwait(false);
+ }
+ }
+
+ item.FromTopPackingCode = GetTopPackingCode(query, item.FromPackingCode);
+ item.ToTopPackingCode = GetTopPackingCode(query, item.ToPackingCode);
+ SetBillNumber(query, item);
+ }
+ await _repository.InsertManyAsync(input).ConfigureAwait(false);
+ return true;
+ }
+
+ ///
+ /// 取顶级箱码
+ ///
+ /// 箱码历史
+ /// 当前箱码
+ ///
+ private static string GetTopPackingCode(IQueryable historyQuery, string packingCode)
+ {
+ var historyRec = historyQuery.Where(itm => itm.FromPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault();
+ if (historyRec != null)
{
- maxOprLevel = await query.Where(itm => itm.PackingCode == fromRec.PackingCode).MaxAsync(itm => itm.OprLevel).ConfigureAwait(false);
- SplitPackingRec lastRec = await query.FirstAsync(itm => itm.PackingCode == fromRec.PackingCode && itm.OprLevel == maxOprLevel).ConfigureAwait(false);
- parentId = lastRec.Id;
- rootPackingCode = lastRec.RootPackingCode;
+ return historyRec.FromTopPackingCode;
}
else
{
- maxOprLevel = 1;
- parentId = null;
- rootPackingCode = fromRec.PackingCode;
+ historyRec = historyQuery.Where(itm => itm.ToPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault();
+ if (historyRec != null)
+ {
+ return historyRec.ToTopPackingCode;
+ }
}
+ return null;
+ }
- foreach (SplitPackingRec item in input)
+ private static void SetBillNumber(IQueryable historyQuery, SplitPackingRec obj)
+ {
+ var historyRec = historyQuery.Where(itm => itm.FromPackingCode == obj.FromPackingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault();
+ if (historyRec != null)
{
- item.GroupCode = groupCode;
- item.OprLevel = maxOprLevel + 1;
- item.ParentId = parentId;
- item.RootPackingCode = rootPackingCode;
+ obj.PurchaseInfo_PoNumber = historyRec.PurchaseInfo_PoNumber; //采购订单
+ obj.PurchaseInfo_AsnNumber = historyRec.PurchaseInfo_AsnNumber; //供应商发货单
+ obj.ArrivalNoticNumber = historyRec.ArrivalNoticNumber; //到货通知
+ obj.TaskOrderNumber = historyRec.TaskOrderNumber; //任务单
+ obj.ReceiptRecNumber = historyRec.ReceiptRecNumber; //收货记录单
+ obj.PutOnShelfNumber = historyRec.PutOnShelfNumber; //上架单
}
- await _repository.InsertManyAsync(input).ConfigureAwait(false);
- return true;
+ //else
+ //{
+ // historyRec = historyQuery.Where(itm => itm.ToPackingCode == obj.ToPackingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault();
+ // if (historyRec != null)
+ // {
+ // obj.PurchaseInfo_PoNumber = historyRec.PurchaseInfo_PoNumber; //采购订单
+ // obj.PurchaseInfo_AsnNumber = historyRec.PurchaseInfo_AsnNumber; //供应商发货单
+ // obj.ArrivalNoticNumber = historyRec.ArrivalNoticNumber; //到货通知
+ // obj.TaskOrderNumber = historyRec.TaskOrderNumber; //任务单
+ // obj.ReceiptRecNumber = historyRec.ReceiptRecNumber; //收货记录单
+ // obj.PutOnShelfNumber = historyRec.PutOnShelfNumber; //上架单
+ // }
+ //}
}
+
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Win_in.Sfs.Wms.Store.Domain.csproj b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Win_in.Sfs.Wms.Store.Domain.csproj
index e2ffaaf0a..a48cbcc3d 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Win_in.Sfs.Wms.Store.Domain.csproj
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Win_in.Sfs.Wms.Store.Domain.csproj
@@ -30,6 +30,8 @@
+
+
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/ExchangeData/ExchangeDataDbContextModelCreatingExtensions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/ExchangeData/ExchangeDataDbContextModelCreatingExtensions.cs
index 1321c944e..d6b66a324 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/ExchangeData/ExchangeDataDbContextModelCreatingExtensions.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/ExchangeData/ExchangeDataDbContextModelCreatingExtensions.cs
@@ -30,7 +30,7 @@ public static class ExchangeDataDbContextModelCreatingExtensions
b.Property(p => p.ReadTime);
b.Property(p => p.ErrorCode).IsRequired().HasMaxLength(SfsPropertyConst.NameLength).HasConversion();
b.Property(p => p.ErrorMessage).HasMaxLength(SfsPropertyConst.RemarkLength);
- b.Property(p => p.TyrpNumber).IsRequired().HasDefaultValueSql();
+ b.Property(p => p.TyrpNumber).IsRequired(); //.HasDefaultValueSql()
//Relations
//Indexes
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240222014023_Mig_Store_Init.Designer.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240222014023_Mig_Store_Init.Designer.cs
new file mode 100644
index 000000000..1554bcd27
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240222014023_Mig_Store_Init.Designer.cs
@@ -0,0 +1,21669 @@
+//
+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("20240222014023_Mig_Store_Init")]
+ partial class Mig_Store_Init
+ {
+ 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.BackFlushNote", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ActiveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("CompleteTime")
+ .HasColumnType("datetime2");
+
+ 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("ExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ 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("JobNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("LocationArea")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationArea");
+
+ b.Property("LocationCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationCode");
+
+ b.Property("LocationErpCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationErpCode");
+
+ b.Property("LocationGroup")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationGroup");
+
+ b.Property("Lot")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Lot");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("PackingCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProdLine")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ProductReceiptNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ProductRecycleNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ProductionPlanNumber")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Qty")
+ .HasPrecision(18, 6)
+ .HasColumnType("decimal(18,6)")
+ .HasColumnName("Qty");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("Shift")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("SupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("SupplierBatch");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("Uom")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Uom");
+
+ b.Property("WarehouseCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("WarehouseCode");
+
+ b.Property("Worker")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Workshop")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Store_BackFlushNote", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.BackFlushNoteDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("BomVersion")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ContainerCode");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("IsOffLine")
+ .HasColumnType("bit");
+
+ 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("LocationArea")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationArea");
+
+ b.Property("LocationCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationCode");
+
+ b.Property("LocationErpCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationErpCode");
+
+ b.Property("LocationGroup")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationGroup");
+
+ b.Property("Lot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Lot");
+
+ b.Property("MasterID")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("PackingCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("PackingCode");
+
+ b.Property("ProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Qty")
+ .HasPrecision(18, 6)
+ .HasColumnType("decimal(18,6)")
+ .HasColumnName("Qty");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ 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("Uom")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Uom");
+
+ b.Property("WarehouseCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("WarehouseCode");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MasterID");
+
+ b.HasIndex("Number", "ItemCode", "Lot")
+ .IsUnique()
+ .HasFilter("[Lot] IS NOT NULL");
+
+ b.ToTable("Store_BackFlushNoteDetail", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.CheckJob", 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("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("DeliverNoteNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ 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("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("UpStreamJobNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("WarehouseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("WorkGroupCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Worker")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Job_CheckJob", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.CheckJobDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ContainerCode");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("CustomerItemCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ExpireDate")
+ .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("LocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationArea");
+
+ b.Property("LocationCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationCode");
+
+ b.Property("LocationErpCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationErpCode");
+
+ b.Property("LocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationGroup");
+
+ b.Property("Lot")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Lot");
+
+ b.Property("MasterID")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Order")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("PackingCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("PackingCode");
+
+ b.Property("ProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Qty")
+ .HasPrecision(18, 6)
+ .HasColumnType("decimal(18,6)")
+ .HasColumnName("Qty");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ 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("Uom")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Uom");
+
+ b.Property("WarehouseCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("WarehouseCode");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MasterID");
+
+ b.ToTable("Job_CheckJobDetail", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.ContainerBindNote", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ActiveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("BindTime")
+ .HasColumnType("datetime2");
+
+ b.Property("BindType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("nvarchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("ContainerCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("LocationCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("Worker")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Store_ContainerBindNote", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.ContainerBindNoteDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ContainerCode");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExpireDate")
+ .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("Lot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Lot");
+
+ b.Property("MasterID")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("PackingCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("PackingCode");
+
+ b.Property("ProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Qty")
+ .HasPrecision(18, 6)
+ .HasColumnType("decimal(18,6)")
+ .HasColumnName("Qty");
+
+ 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("Uom")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Uom");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MasterID");
+
+ b.HasIndex("Number", "PackingCode")
+ .IsUnique();
+
+ b.ToTable("Store_ContainerBindNoteDetail", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.CountAdjustNote", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ActiveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("nvarchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("CountAdjustRequestNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CountNoteNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CountPlanNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("IsAdjusted")
+ .HasColumnType("bit");
+
+ b.Property("JobNumber")
+ .HasColumnType("nvarchar(max)");
+
+ 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("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("Type")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Worker")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Store_CountAdjustNote", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.CountAdjustNoteDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("AdjustQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("ArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ContainerCode");
+
+ b.Property("CountLabel")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("CountQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("InventoryQty")
+ .HasColumnType("decimal(18,6)");
+
+ 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("LocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationArea");
+
+ b.Property("LocationCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationCode");
+
+ b.Property("LocationErpCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationErpCode");
+
+ b.Property("LocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("LocationGroup");
+
+ b.Property("Lot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Lot");
+
+ b.Property("MasterID")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("PackingCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("PackingCode");
+
+ b.Property("ProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ReasonCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ 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("TransInOut")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Uom")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("WarehouseCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("WarehouseCode");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MasterID");
+
+ b.HasIndex("Number", "CountLabel", "ItemCode", "LocationCode", "Lot", "Status", "PackingCode")
+ .IsUnique()
+ .HasFilter("[Lot] IS NOT NULL");
+
+ b.ToTable("Store_CountAdjustNoteDetail", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.CountAdjustRequest", 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("CountNoteNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("CountPlanNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property