示例#1
0
 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));
     }
 }
示例#2
0
        /// <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);
        }