public BaseResponse SubmitChildParamsOption(SaveVMDictionaryRequest request) { try { var result = dictionaryDomainService.SaveOrUpdateChild(request); if (result.IsSuccess) { result?.Commit(); return(ApiSuccessResult(true)); } else { return(ApiFailResult("提交失败,请查看原因!")); } } catch (Exception ex) { _Log4Net.Error("SubmitChildParamsOption--异常信息", ex); return(ApiErrorResult(ex.Message)); } }
/// <summary> /// 新增修改明细字典内容 /// </summary> /// <param name="viewModel"></param> public UnitOfWorkResult SaveOrUpdateChild(SaveVMDictionaryRequest viewModel) { //var result = UnitOfWorkResult.GetCurrentUow(); //父类 参数名称:必输,最大字符20 //参数描述:非必输,最大字符50 //参数选项:选项名称必输,最大字段20,选项描述非必输,最大字符50 //排序:必输,正整数 //校验长度 //校验是否已经存在映射关系 StringBuilder errormsg = new StringBuilder(); if (viewModel != null) { foreach (var item in viewModel.selectOptions) { //校验长度 if (string.IsNullOrEmpty(item.SysDictValue)) { errormsg.AppendFormat("参数名称必填"); } else { if (item.SysDictValue.Length > 20) { errormsg.AppendFormat("参数名称最大字符20"); } } if ((!string.IsNullOrEmpty(item.SysDictDesc)) && (item.SysDictDesc.Length > 50)) { errormsg.AppendFormat("参数描述最大字符50"); } } List <VM_SYS_Dictionary> updateDictList = new List <VM_SYS_Dictionary>();//记录修改的节点 //获取当前字典类型的所有子节点,循环判断新增或修改 //var childDbDictList = this.getPOCBasiceChildParamsList(new Guid(viewModel.parentGuid)); GetDictionaryRequest request = new GetDictionaryRequest(); request.ParentGuid.Add(new Guid(viewModel.parentGuid)); List <T_SYS_Dictionary> childDbDictList = dictionaryRepository.GetDictEntityList(request); int iOrderNo = 1;//排序号 foreach (var itemDb in childDbDictList) { iOrderNo++; var findItem = viewModel.selectOptions.Find(t => t.DictGuid == itemDb.DictGuid); if (findItem != null)//修改 { //判断新增或修改或删除 T_SYS_Dictionary dictnew = new T_SYS_Dictionary(); dictnew.Id = findItem.Id; dictnew.DictGuid = findItem.DictGuid; dictnew.ParentGuid = new Guid(viewModel.parentGuid);//父节点Guid dictnew.SysDictKey = dictnew.DictGuid.ToString(); dictnew.SysDictValue = findItem.SysDictValue; dictnew.SysDictDesc = findItem.SysDictDesc; dictnew.SysDictSort = iOrderNo; dictnew.SysCatalogCode = viewModel.vmParentDict.SysCatalogCode; dictnew.SysCatalogName = viewModel.vmParentDict.SysCatalogName; dictnew.SysIsCatalog = false; dictnew.SysIsEnabled = true; dictnew.SysIsEdit = true; dictnew.UpdaterUserId = findItem.UpdaterUserId; dictnew.UpdaterUserName = findItem.UpdaterUserName; dictnew.CreatedDate = findItem.CreatedDate; dictnew.UpdateDate = DateTime.Now; dictnew.SaveType = SaveType.Modify; var uowSave = Save(dictnew); updateDictList.Add(findItem); } else { //校验是否已经存在映射关系 if (this.CheckHasMappedBasciData(itemDb.DictGuid)) { errormsg.AppendFormat($"{itemDb.SysDictValue}已存在映射关系的数据,不能删除!"); } //校验是否已经存在映射关系 if (this.CheckIsExtractorBasciData(itemDb.DictGuid)) { errormsg.AppendFormat($"{itemDb.SysDictValue}提取正在使用,不能删除!"); } //删除没在界面上存在 var uowDel = Remove(itemDb); } } if (!string.IsNullOrWhiteSpace(errormsg.ToString())) { throw new Exception(errormsg.ToString()); } foreach (var item in viewModel.selectOptions) { var findItem = updateDictList.Find(t => t.DictGuid == item.DictGuid); if (findItem == null)//没找到的是要新增的节点 { iOrderNo++; T_SYS_Dictionary dictnew = new T_SYS_Dictionary(); dictnew.DictGuid = Guid.NewGuid(); dictnew.ParentGuid = new Guid(viewModel.parentGuid);//父节点Guid dictnew.SysDictKey = dictnew.DictGuid.ToString(); dictnew.SysDictValue = item.SysDictValue; dictnew.SysDictDesc = item.SysDictDesc; dictnew.SysDictSort = iOrderNo; dictnew.SysCatalogCode = viewModel.vmParentDict.SysCatalogCode; dictnew.SysCatalogName = viewModel.vmParentDict.SysCatalogName; dictnew.SysIsCatalog = false; dictnew.SysIsEnabled = true; dictnew.SysIsEdit = true; dictnew.UpdaterUserId = ""; dictnew.UpdaterUserName = ""; dictnew.CreatedDate = DateTime.Now; dictnew.UpdateDate = DateTime.Now; dictnew.SaveType = SaveType.Add; var uowAdd = Add(dictnew); } } } //父节点赋值 viewModel.vmParentDict.SysDictValue = viewModel.SysDictValue; viewModel.vmParentDict.SysDictDesc = viewModel.SysDictDesc; viewModel.vmParentDict.SysDictSort = viewModel.SysDictSort; var uowParent = dictionaryRepository.UpdateParentDict(viewModel.vmParentDict); var result = UnitOfWorkResult.GetCurrentUow(); //throw new NotImplementedException(); return(result); }