种子数据不导出枚举转字典的数据

This commit is contained in:
yzp 2025-08-24 11:25:05 +08:00
parent 2c0067d563
commit 2183e3b582
5 changed files with 36 additions and 2 deletions

View File

@ -95,4 +95,13 @@ public partial class SysDictData : EntityBase
/// </summary>
[SugarColumn(ColumnDescription = "状态", DefaultValue = "1")]
public StatusEnum Status { get; set; } = StatusEnum.Enable;
/// <summary>
/// 是否是枚举转换字典Y-是N-否)
/// </summary>
/// <remarks>
/// 这里为Y时导出种子数据时不导出这些记录如果有其它由代码自动生成的字典数据也可以借用这个字段来处理。
/// </remarks>
[SugarColumn(ColumnDescription = "是否是枚举转换字典", DefaultValue = "2")]
public virtual YesNoEnum IsEnum { get; set; } = YesNoEnum.N;
}

View File

@ -1,4 +1,4 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
@ -60,6 +60,16 @@ public partial class SysDictType : EntityBase
[SugarColumn(ColumnDescription = "是否是租户字典", DefaultValue = "2")]
public virtual YesNoEnum IsTenant { get; set; } = YesNoEnum.N;
/// <summary>
/// 是否是枚举转换字典Y-是N-否)
/// </summary>
/// <remarks>
/// 这里为Y时导出种子数据时不导出这些记录如果有其它由代码自动生成的字典数据也可以借用这个字段来处理。
/// </remarks>
[SugarColumn(ColumnDescription = "是否是枚举转换字典", DefaultValue = "2")]
public virtual YesNoEnum IsEnum { get; set; } = YesNoEnum.N;
/// <summary>
/// 字典值集合
/// </summary>

View File

@ -477,6 +477,15 @@ public class SysDatabaseService : IDynamicApiController, ITransient
// 查询所有数据
var query = db.QueryableByObject(entityType);
// 如果 entityType.Name=="SysDictType"或"SysDictData"或"SysDictDataTenant" 加入查询条件 u.IsEnum!=1
if (entityType.Name == "SysDictType" || entityType.Name == "SysDictData" || entityType.Name == "SysDictDataTenant")
{
if (config.DbSettings.EnableUnderLine)
query = query.Where("is_enum != 1");
else
query = query.Where("IsEnum != 1");
}
// 优先用创建时间排序
DbColumnInfo orderField = dbColumnInfos.FirstOrDefault(u => u.DbColumnName.ToLower() == "create_time" || u.DbColumnName.ToLower() == "createtime");
if (orderField != null) query = query.OrderBy(orderField.DbColumnName);

View File

@ -1,4 +1,4 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
@ -40,6 +40,7 @@ public class SysDictTypeService : IDynamicApiController, ITransient
.WhereIF(!string.IsNullOrEmpty(input.Code?.Trim()), u => u.Code.Contains(input.Code))
.WhereIF(!string.IsNullOrEmpty(input.Name?.Trim()), u => u.Name.Contains(input.Name))
.WhereIF(input.SysFlag > 0, u => u.SysFlag == input.SysFlag)
.OrderByDescending(u => u.IsEnum)
.OrderBy(u => new { u.OrderNo, u.Code })
.ToPagedListAsync(input.Page, input.PageSize);
}

View File

@ -203,6 +203,7 @@ public class SysEnumService : IDynamicApiController, ITransient
Remark = u.TypeRemark,
Status = StatusEnum.Enable,
SysFlag = YesNoEnum.Y,
IsEnum = YesNoEnum.Y
}).ToList();
// 新增字典数据
@ -218,6 +219,7 @@ public class SysEnumService : IDynamicApiController, ITransient
Remark = t2.Remark,
OrderNo = u.Value + OrderOffset,
TagType = u.Theme != "" ? u.Theme : DefaultTagType,
IsEnum = YesNoEnum.Y
}).ToList()
}).SelectMany(x => x.Data).ToList();
@ -253,6 +255,7 @@ public class SysEnumService : IDynamicApiController, ITransient
var updatedDictType = value;
updatedDictType.Name = e.TypeDescribe;
updatedDictType.Remark = e.TypeRemark;
updatedDictType.IsEnum = YesNoEnum.Y;
updatedSysDictTypes.Add(updatedDictType);
var updatedDictData = updatedDictType.Children.Where(u => u.DictTypeId == updatedDictType.Id).ToList();
@ -267,6 +270,7 @@ public class SysEnumService : IDynamicApiController, ITransient
dictData.Value = enumData.Value.ToString();
dictData.OrderNo = enumData.Value + OrderOffset;
dictData.TagType = enumData.Theme != "" ? enumData.Theme : dictData.TagType != "" ? dictData.TagType : DefaultTagType;
dictData.IsEnum = YesNoEnum.Y;
updatedSysDictData.Add(dictData);
}
}
@ -288,6 +292,7 @@ public class SysEnumService : IDynamicApiController, ITransient
Remark = updatedDictType.Remark,
OrderNo = enumData.Value + OrderOffset,
TagType = enumData.Theme != "" ? enumData.Theme : DefaultTagType,
IsEnum = YesNoEnum.Y
};
dictData.TagType = enumData.Theme != "" ? enumData.Theme : dictData.TagType != "" ? dictData.TagType : DefaultTagType;
newSysDictData.Add(dictData);