using CMS.Plugin.HIAWms.Domain;
|
using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos;
|
using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialInfos;
|
using Microsoft.EntityFrameworkCore;
|
using Volo.Abp;
|
using Volo.Abp.EntityFrameworkCore.Modeling;
|
|
namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
|
|
/// <summary>
|
/// EfCore扩展
|
/// </summary>
|
public static partial class CMSPluginEfCoreExtensions
|
{
|
/// <summary>
|
/// Includes the details.
|
/// </summary>
|
/// <param name="queryable">The queryable.</param>
|
/// <param name="include">if set to <c>true</c> [include].</param>
|
/// <returns></returns>
|
public static IQueryable<WmsMaterialInfo> IncludeDetails(this IQueryable<WmsMaterialInfo> queryable, bool include = true)
|
{
|
if (!include)
|
{
|
return queryable;
|
}
|
|
return queryable;
|
}
|
|
/// <summary>
|
/// Configures the wmsmaterialinfo.
|
/// </summary>
|
/// <param name="builder">The builder.</param>
|
public static void ConfigureWmsMaterialInfo(this ModelBuilder builder)
|
{
|
Check.NotNull(builder, nameof(builder));
|
|
builder.Entity<WmsMaterialInfo>(b =>
|
{
|
// 配置表和架构名称
|
b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsMaterialInfos").ToLower(),
|
CMSPluginDbProperties.DbSchema)
|
.HasComment("WMS物料信息表");
|
|
b.ConfigureByConvention();
|
|
// 主键配置
|
b.HasKey(x => x.Id);
|
|
// 属性配置
|
b.Property(x => x.MaterialNo)
|
.HasMaxLength(WmsMaterialInfoConsts.MaxMaterialNoLength)
|
.IsRequired()
|
.HasComment("物料代号");
|
|
b.Property(x => x.MaterialName)
|
.HasMaxLength(WmsMaterialInfoConsts.MaxMaterialNameLength)
|
.IsRequired()
|
.HasComment("物料名称");
|
|
b.Property(x => x.MaterialModel)
|
.HasMaxLength(WmsMaterialInfoConsts.MaxMaterialModelLength)
|
.HasComment("机型/规格");
|
|
b.Property(x => x.MaterialId)
|
.HasMaxLength(WmsMaterialInfoConsts.MaxMaterialIdLength)
|
.IsRequired()
|
.HasComment("物料唯一码");
|
|
b.Property(x => x.StockNumber)
|
.HasComment("库存数量");
|
|
b.Property(x => x.MaterialBatch)
|
.HasMaxLength(WmsMaterialInfoConsts.MaxMaterialBatchLength)
|
.HasComment("物料批号");
|
|
b.Property(x => x.SupplierCode)
|
.HasMaxLength(WmsMaterialInfoConsts.MaxSupplierCodeLength)
|
.HasComment("供应商编号");
|
|
b.Property(x => x.CheckStatus)
|
.HasComment("检验状态(0:未检验,1:检验通过,2:检验不通过)");
|
|
b.Property(x => x.RedundantField1)
|
.HasMaxLength(WmsMaterialInfoConsts.MaxRedundantFieldLength)
|
.HasComment("冗余字段1");
|
|
b.Property(x => x.RedundantField2)
|
.HasMaxLength(WmsMaterialInfoConsts.MaxRedundantFieldLength)
|
.HasComment("冗余字段2");
|
|
b.Property(x => x.RedundantField3)
|
.HasMaxLength(WmsMaterialInfoConsts.MaxRedundantFieldLength)
|
.HasComment("冗余字段3");
|
|
b.Property(x => x.Sort)
|
.HasDefaultValue(0)
|
.HasComment("排序");
|
|
b.Property(x => x.Remark)
|
.HasMaxLength(WmsMaterialInfoConsts.MaxRemarkLength)
|
.HasComment("备注");
|
|
b.Property(x => x.IsDisabled)
|
.HasComment("是否禁用");
|
|
// 索引配置
|
b.HasIndex(x => x.MaterialNo).IsUnique();
|
b.HasIndex(x => x.MaterialName);
|
b.HasIndex(x => x.MaterialId).IsUnique();
|
b.HasIndex(x => x.MaterialBatch);
|
b.HasIndex(x => x.SupplierCode);
|
b.HasIndex(x => x.CheckStatus);
|
|
// 扩展属性配置
|
b.ApplyObjectExtensionMappings();
|
});
|
}
|
}
|