Merge branch 'master' of http://118.178.224.202:3000/ewide/ewide_core
This commit is contained in:
@@ -15,6 +15,18 @@ namespace Ewide.Core
|
|||||||
[Comment("字典类型表")]
|
[Comment("字典类型表")]
|
||||||
public class SysDictType : DEntityBase, IEntityTypeBuilder<SysDictType>
|
public class SysDictType : DEntityBase, IEntityTypeBuilder<SysDictType>
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 父Id
|
||||||
|
/// </summary>
|
||||||
|
[Comment("父Id")]
|
||||||
|
[Column("Pid", TypeName = "varchar(36)")]
|
||||||
|
public string Pid { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 父Ids
|
||||||
|
/// </summary>
|
||||||
|
[Comment("父Ids")]
|
||||||
|
public string Pids { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 名称
|
/// 名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -680,6 +680,16 @@
|
|||||||
字典类型表
|
字典类型表
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:Ewide.Core.SysDictType.Pid">
|
||||||
|
<summary>
|
||||||
|
父Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Ewide.Core.SysDictType.Pids">
|
||||||
|
<summary>
|
||||||
|
父Ids
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:Ewide.Core.SysDictType.Name">
|
<member name="P:Ewide.Core.SysDictType.Name">
|
||||||
<summary>
|
<summary>
|
||||||
名称
|
名称
|
||||||
@@ -3994,6 +4004,11 @@
|
|||||||
状态(字典 0正常 1停用 2删除)
|
状态(字典 0正常 1停用 2删除)
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:Ewide.Core.Service.AddDictTypeInput.Pid">
|
||||||
|
<summary>
|
||||||
|
父Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:Ewide.Core.Service.AddDictTypeInput.Name">
|
<member name="P:Ewide.Core.Service.AddDictTypeInput.Name">
|
||||||
<summary>
|
<summary>
|
||||||
名称
|
名称
|
||||||
@@ -4056,6 +4071,13 @@
|
|||||||
<param name="input"></param>
|
<param name="input"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Service.SysDictDataService.DeleteDictDataBatch(System.Collections.Generic.List{System.String})">
|
||||||
|
<summary>
|
||||||
|
删除字典值 id数组传入
|
||||||
|
</summary>
|
||||||
|
<param name="input"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:Ewide.Core.Service.SysDictDataService.UpdateDictData(Ewide.Core.Service.UpdateDictDataInput)">
|
<member name="M:Ewide.Core.Service.SysDictDataService.UpdateDictData(Ewide.Core.Service.UpdateDictDataInput)">
|
||||||
<summary>
|
<summary>
|
||||||
更新字典值
|
更新字典值
|
||||||
@@ -4162,6 +4184,15 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Service.SysDictTypeService.CreateNewPids(System.String)">
|
||||||
|
<summary>
|
||||||
|
创建Pids格式
|
||||||
|
如果pid是0顶级节点,pids就是 [0];
|
||||||
|
如果pid不是顶级节点,pids就是 pid菜单的 pids + [pid] + ,
|
||||||
|
</summary>
|
||||||
|
<param name="pid"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:Ewide.Core.Service.EmpExtOrgPosOutput">
|
<member name="T:Ewide.Core.Service.EmpExtOrgPosOutput">
|
||||||
<summary>
|
<summary>
|
||||||
附属机构和职位参数
|
附属机构和职位参数
|
||||||
|
|||||||
@@ -35,6 +35,11 @@ namespace Ewide.Core.Service
|
|||||||
|
|
||||||
public class AddDictTypeInput : DictTypeInput
|
public class AddDictTypeInput : DictTypeInput
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 父Id
|
||||||
|
/// </summary>
|
||||||
|
public string Pid { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 名称
|
/// 名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -44,7 +49,6 @@ namespace Ewide.Core.Service
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 编码
|
/// 编码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required(ErrorMessage = "字典类型编码不能为空")]
|
|
||||||
public override string Code { get; set; }
|
public override string Code { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,9 +21,10 @@ namespace Ewide.Core.Service
|
|||||||
public class SysDictDataService : ISysDictDataService, IDynamicApiController, ITransient
|
public class SysDictDataService : ISysDictDataService, IDynamicApiController, ITransient
|
||||||
{
|
{
|
||||||
private readonly IRepository<SysDictData> _sysDictDataRep; // 字典类型表仓储
|
private readonly IRepository<SysDictData> _sysDictDataRep; // 字典类型表仓储
|
||||||
|
private readonly IRepository<SysDictType> _sysDictTypeRep;
|
||||||
public SysDictDataService(IRepository<SysDictData> sysDictDataRep)
|
public SysDictDataService(IRepository<SysDictData> sysDictDataRep, IRepository<SysDictType> sysDictTypeRep)
|
||||||
{
|
{
|
||||||
|
_sysDictTypeRep = sysDictTypeRep;
|
||||||
_sysDictDataRep = sysDictDataRep;
|
_sysDictDataRep = sysDictDataRep;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,7 +69,9 @@ namespace Ewide.Core.Service
|
|||||||
{
|
{
|
||||||
var isExist = await _sysDictDataRep.AnyAsync(u => (u.Code == input.Code || u.Value == input.Value) && u.TypeId == input.TypeId, false);
|
var isExist = await _sysDictDataRep.AnyAsync(u => (u.Code == input.Code || u.Value == input.Value) && u.TypeId == input.TypeId, false);
|
||||||
if (isExist) throw Oops.Oh(ErrorCode.D3003);
|
if (isExist) throw Oops.Oh(ErrorCode.D3003);
|
||||||
|
//datatype 的code 为null 则不能添加
|
||||||
|
var dataType = _sysDictTypeRep.Where(s => s.Id == input.TypeId).FirstOrDefault();
|
||||||
|
if (string.IsNullOrEmpty(dataType.Code)) throw new Exception("此处类型不能添加数据");
|
||||||
var dictData = input.Adapt<SysDictData>();
|
var dictData = input.Adapt<SysDictData>();
|
||||||
await _sysDictDataRep.InsertAsync(dictData);
|
await _sysDictDataRep.InsertAsync(dictData);
|
||||||
}
|
}
|
||||||
@@ -86,7 +89,21 @@ namespace Ewide.Core.Service
|
|||||||
|
|
||||||
await dictData.DeleteAsync();
|
await dictData.DeleteAsync();
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 删除字典值 id数组传入
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idList"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("/sysDictData/deleteBatch")]
|
||||||
|
public async Task DeleteDictDataBatch(List<string> idList)
|
||||||
|
{
|
||||||
|
var dictDataList = await _sysDictDataRep.Where(s => idList.Contains(s.Id)).ToListAsync();
|
||||||
|
if (dictDataList.Count == 0) throw Oops.Oh(ErrorCode.D3004);
|
||||||
|
dictDataList.ForEach(s =>
|
||||||
|
{
|
||||||
|
s.DeleteAsync();
|
||||||
|
});
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 更新字典值
|
/// 更新字典值
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -93,10 +93,13 @@ namespace Ewide.Core.Service
|
|||||||
[HttpPost("/sysDictType/add")]
|
[HttpPost("/sysDictType/add")]
|
||||||
public async Task AddDictType(AddDictTypeInput input)
|
public async Task AddDictType(AddDictTypeInput input)
|
||||||
{
|
{
|
||||||
var isExist = await _sysDictTypeRep.AnyAsync(u => u.Name == input.Name || u.Code == input.Code, false);
|
var isExist = await _sysDictTypeRep.AnyAsync(u => u.Name == input.Name, false);
|
||||||
if (isExist) throw Oops.Oh(ErrorCode.D3001);
|
if (isExist) throw Oops.Oh(ErrorCode.D3001);
|
||||||
|
var dictTypeEntity = _sysDictTypeRep.Where(s => s.Pid == input.Pid).FirstOrDefault();
|
||||||
|
if (dictTypeEntity != null && dictTypeEntity.Code != null) throw new Exception("此类型下不能添加子类型");
|
||||||
var dictType = input.Adapt<SysDictType>();
|
var dictType = input.Adapt<SysDictType>();
|
||||||
|
dictType.Pids = await CreateNewPids(input.Pid);
|
||||||
|
if (input.Code == string.Empty) dictType.Code = null;
|
||||||
await _sysDictTypeRep.InsertAsync(dictType);
|
await _sysDictTypeRep.InsertAsync(dictType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,15 +128,19 @@ namespace Ewide.Core.Service
|
|||||||
[HttpPost("/sysDictType/edit"),]
|
[HttpPost("/sysDictType/edit"),]
|
||||||
public async Task UpdateDictType(UpdateDictTypeInput input)
|
public async Task UpdateDictType(UpdateDictTypeInput input)
|
||||||
{
|
{
|
||||||
var isExist = await _sysDictTypeRep.AnyAsync(u => u.Id == input.Id, false);
|
if (input.Id == input.Pid) throw Oops.Oh(ErrorCode.D4006);
|
||||||
if (!isExist) throw Oops.Oh(ErrorCode.D3000);
|
var result = _sysDictTypeRep.Where(u => u.Id == input.Id).Select(s => new { s.Name, s.Id, s.Code }).ToList().First();
|
||||||
|
if (result == null) throw Oops.Oh(ErrorCode.D3000);
|
||||||
// 排除自己并且判断与其他是否相同
|
if (result.Name == input.Name) throw Oops.Oh(ErrorCode.D3001);
|
||||||
isExist = await _sysDictTypeRep.AnyAsync(u => (u.Name == input.Name || u.Code == input.Code) && u.Id != input.Id, false);
|
// 如果是编辑,父id不能为自己的子节点
|
||||||
if (isExist) throw Oops.Oh(ErrorCode.D3001);
|
//var childIdList = await _sysDictTypeRep.DetachedEntities.Where(u => u.Pids.Contains(input.Id.ToString()))
|
||||||
|
// .Select(u => u.Id).ToListAsync();
|
||||||
|
//if (childIdList.Contains(input.Pid)) throw Oops.Oh(ErrorCode.D4006);
|
||||||
|
|
||||||
var dictType = input.Adapt<SysDictType>();
|
var dictType = input.Adapt<SysDictType>();
|
||||||
await _sysDictTypeRep.UpdateAsync(dictType, ignoreNullValues: true);
|
dictType.Pids = await CreateNewPids(input.Pid);
|
||||||
|
dictType.Code = input.Code == string.Empty ? null : input.Code;
|
||||||
|
await dictType.UpdateIncludeAsync(new string[] { nameof(SysDictType.Pid), nameof(SysDictType.Pids), nameof(SysDictType.Name), nameof(SysDictType.Code), nameof(SysDictType.Sort), nameof(SysDictType.Remark) }, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -185,5 +192,24 @@ namespace Ewide.Core.Service
|
|||||||
}).ToList()
|
}).ToList()
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 创建Pids格式
|
||||||
|
/// 如果pid是0顶级节点,pids就是 [0];
|
||||||
|
/// 如果pid不是顶级节点,pids就是 pid菜单的 pids + [pid] + ,
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pid"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private async Task<string> CreateNewPids(string pid)
|
||||||
|
{
|
||||||
|
if (pid.Equals(System.Guid.Empty.ToString()))
|
||||||
|
{
|
||||||
|
return "[" + System.Guid.Empty + "],";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var dtype = await _sysDictTypeRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == pid);
|
||||||
|
return dtype.Pids + "[" + pid + "],";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,6 +123,8 @@ namespace Ewide.Core.Util
|
|||||||
{
|
{
|
||||||
if (item.Name == currentAssemblyName)
|
if (item.Name == currentAssemblyName)
|
||||||
{
|
{
|
||||||
|
var queryList = item.GetDirectories().Where(s => s.Name == appConfigPath);
|
||||||
|
if (!queryList.Any()) item.CreateSubdirectory(appConfigPath);
|
||||||
targetPath = item.GetDirectories(appConfigPath).FirstOrDefault().FullName;
|
targetPath = item.GetDirectories(appConfigPath).FirstOrDefault().FullName;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -150,7 +152,7 @@ namespace Ewide.Core.Util
|
|||||||
foreach (Type type in types)
|
foreach (Type type in types)
|
||||||
{
|
{
|
||||||
//if (type.Name.EndsWith("SeedData"))
|
//if (type.Name.EndsWith("SeedData"))
|
||||||
if(type.Name.EndsWith("SysEmpExtOrgPos"))
|
if (type.Name.EndsWith("SysEmpExtOrgPos"))
|
||||||
{
|
{
|
||||||
object obHelper = Activator.CreateInstance(type);
|
object obHelper = Activator.CreateInstance(type);
|
||||||
MethodInfo methodinfo = type.GetMethod("HasData");
|
MethodInfo methodinfo = type.GetMethod("HasData");
|
||||||
|
|||||||
Reference in New Issue
Block a user