/// <summary> /// 批量生成代码 /// </summary> /// <returns></returns> public async Task <OperateStatus> GeneratingCode() { OperateStatus operateStatus = new OperateStatus(); try { //获取所有字典树 var dics = (await GetAllEnumerableAsync()).ToList(); var topDics = dics.Where(w => w.ParentId == Guid.Empty); foreach (var dic in topDics) { dic.Code = PinYinUtil.GetFirst(dic.Name); await UpdateAsync(dic); await GeneratingCodeRecursion(dic, dics.ToList(), ""); } } catch (Exception ex) { operateStatus.Message = string.Format(Chs.Error, ex.Message); return(operateStatus); } operateStatus.Message = Chs.Successful; operateStatus.ResultSign = ResultSign.Successful; return(operateStatus); }
/// <summary> /// 递归获取代码 /// </summary> /// <param name="dictionary"></param> /// <param name="dictionaries"></param> /// <param name="generationCode"></param> private async Task GeneratingCodeRecursion(SystemDictionary dictionary, IList <SystemDictionary> dictionaries, string generationCode) { string emp = PinYinUtil.GetFirst(dictionary.Name); //获取下级 var nextDic = dictionaries.Where(w => w.ParentId == dictionary.DictionaryId).ToList(); if (nextDic.Any()) { emp = generationCode.IsNullOrEmpty() ? emp : generationCode + "_" + emp; } foreach (var dic in nextDic) { dic.Code = emp + "_" + PinYinUtil.GetFirst(dic.Name); await UpdateAsync(dic); await GeneratingCodeRecursion(dic, dictionaries, emp); } }
/// <summary> /// 递归获取代码 /// </summary> /// <param name="organization"></param> /// <param name="dictionaries"></param> /// <param name="generationCode"></param> private async Task GeneratingCodeRecursion(SystemOrganization organization, IList <SystemOrganization> dictionaries, string generationCode) { string emp = PinYinUtil.GetFirst(organization.Name); //获取下级 var nextOrg = dictionaries.Where(w => w.ParentId == organization.OrganizationId).ToList(); if (nextOrg.Any()) { emp = generationCode.IsNullOrEmpty() ? emp : generationCode + "_" + emp; } foreach (var org in nextOrg) { org.Code = emp + "_" + PinYinUtil.GetFirst(org.Name); await UpdateAsync(org); await GeneratingCodeRecursion(org, dictionaries, emp); } }
/// <summary> /// 递归获取代码 /// </summary> /// <param name="menu"></param> /// <param name="menus"></param> /// <param name="generationCode"></param> private async Task GeneratingCodeRecursion(SystemMenu menu, IList <SystemMenu> menus, string generationCode) { string emp = PinYinUtil.GetFirst(menu.Name); //获取下级 var nextMenu = menus.Where(w => w.ParentId == menu.MenuId).ToList(); if (nextMenu.Any()) { emp = generationCode.IsNullOrEmpty() ? emp : generationCode + "_" + emp; } foreach (var me in nextMenu) { me.Code = emp + "_" + PinYinUtil.GetFirst(me.Name); await UpdateAsync(me); await GeneratingCodeRecursion(me, menus, emp); } }