using CMS.Plugin.HIAWms.Domain;
using CMS.Plugin.HIAWms.Domain.WmsContainers;
using CMS.Plugin.HIAWms.Domain.Shared.WmsContainers;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using Volo.Abp.EntityFrameworkCore.Modeling;
namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
///
/// EfCore扩展
///
public static partial class CMSPluginEfCoreExtensions
{
///
/// Includes the details.
///
/// The queryable.
/// if set to true [include].
///
public static IQueryable IncludeDetails(this IQueryable queryable, bool include = true)
{
if (!include)
{
return queryable;
}
return queryable;
}
///
/// Configures the wmscontainer.
///
/// The builder.
public static void ConfigureWmsContainer(this ModelBuilder builder)
{
Check.NotNull(builder, nameof(builder));
builder.Entity(b =>
{
b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsContainers").ToLower(), CMSPluginDbProperties.DbSchema)
.HasComment("托盘信息表");
b.ConfigureByConvention();
//Properties
b.Property(x => x.ContainerNo)
.HasMaxLength(50)
.IsRequired()
.HasComment("托盘编号");
b.Property(x => x.ContainerType)
.IsRequired()
.HasComment("托盘类型");
b.Property(x => x.ContainerStatus)
.IsRequired()
.HasComment("托盘状态");
b.Property(x => x.SpecLength)
.HasPrecision(18, 2)
.HasComment("长度");
b.Property(x => x.SpecWidth)
.HasPrecision(18, 2)
.HasComment("宽度");
b.Property(x => x.SpecHeight)
.HasPrecision(18, 2)
.HasComment("高度");
b.Property(x => x.LimitLength)
.HasPrecision(18, 2)
.HasComment("限长");
b.Property(x => x.LimitWidth)
.HasPrecision(18, 2)
.HasComment("限宽");
b.Property(x => x.LimitHeight)
.HasPrecision(18, 2)
.HasComment("限高");
b.Property(x => x.MaxWeight)
.HasPrecision(18, 2)
.HasComment("载重上限");
b.Property(x => x.ExceptionNumber)
.HasComment("异常数量");
b.Property(x => x.MaterialNumber)
.HasComment("物料数量");
b.Property(x => x.RedundantField1)
.HasMaxLength(200)
.HasComment("冗余字段1 - 预留扩展用途");
b.Property(x => x.RedundantField2)
.HasMaxLength(200)
.HasComment("冗余字段2 - 预留扩展用途");
b.Property(x => x.RedundantField3)
.HasMaxLength(200)
.HasComment("冗余字段3 - 预留扩展用途");
b.Property(x => x.Sort).HasComment("排序");
b.Property(x => x.IsDisabled).IsRequired(false).HasComment("是否禁用");
b.Property(x => x.Remark).HasMaxLength(WmsContainerConsts.MaxRemarkLength).IsRequired(false).HasComment("备注");
b.HasIndex(u => u.ContainerNo).IsUnique();
b.HasIndex(u => u.ContainerType);
b.HasIndex(u => u.ContainerStatus);
b.ApplyObjectExtensionMappings();
});
}
}