/// <summary> /// 保存审批流程 /// </summary> /// <param name="procModel"></param> /// <returns></returns> public SavedResult <Int64> SaveAppvalProc(GAppvalProcModel procModel) { if (procModel.Proc4PostModels == null || procModel.Proc4PostModels.Count == 0) { throw new Exception("审批流程与审批岗位的对应关系为空!"); } //判断审批流程编码,名称是否重复 IList <GAppvalProcModel> findedResults = GAppvalProcRule.Find(t => (t.FCode == procModel.FCode || t.FName == procModel.FName) && t.SPLXPhid == procModel.SPLXPhid && t.OrgPhid == procModel.OrgPhid); if (findedResults != null && findedResults.Count > 0) { throw new Exception("流程代码或流程名称重复!"); } //保存审批流程主表 if (procModel.Ucode == "Admin") { procModel.IsSystem = (byte)1; } else { procModel.IsSystem = (byte)0; } procModel.PersistentState = PersistentState.Added; SavedResult <Int64> savedResult = GAppvalProcRule.Save <Int64>(procModel); //保存审批流程和岗位的对应关系 List <GAppvalProc4PostModel> proc4PostModels = procModel.Proc4PostModels; foreach (GAppvalProc4PostModel model in proc4PostModels) { model.ProcPhid = savedResult.KeyCodes[0]; model.PersistentState = PersistentState.Added; } GAppvalProc4PostRule.Save <Int64>(proc4PostModels); //保存审批流程条件 if (procModel.CondsModels != null && procModel.CondsModels.Count > 0) { foreach (GAppvalProcCondsModel conds in procModel.CondsModels) { conds.ProcPhid = savedResult.KeyCodes[0]; conds.PersistentState = PersistentState.Added; } GAppvalProcCondsRule.Save <Int64>(procModel.CondsModels); } return(savedResult); }
/// <summary> /// 批量删除审批流程 /// </summary> /// <param name="procModels"></param> /// <returns></returns> public int DeleteAppvalProc(IList <GAppvalProcModel> procModels) { int result = 0; if (procModels != null && procModels.Count > 0) { List <GAppvalProcModel> models = procModels.ToList(); List <long> procIds = models.Select(t => t.PhId).ToList(); //加入判断,若审批流在审批中心已经被调用,则不能删除 if (procIds != null && procIds.Count > 0) { var records = this.GAppvalRecordRule.Find(t => procIds.Contains(t.PhId)); if (records != null && records.Count > 0) { throw new Exception("审批流已被调用,无法进行更改!"); } } //删除审批流程与审批岗位的对应关系 Dictionary <string, object> where = new Dictionary <string, object>(); new CreateCriteria(where) .Add(ORMRestrictions <List <long> > .In("ProcPhid", procIds)); result += GAppvalProc4PostRule.Delete(where); //删除审批流程条件 Dictionary <string, object> where2 = new Dictionary <string, object>(); new CreateCriteria(where2) .Add(ORMRestrictions <List <long> > .In("ProcPhid", procIds)); result += GAppvalProcCondsRule.Delete(where2); //删除审批流程 Dictionary <string, object> where3 = new Dictionary <string, object>(); new CreateCriteria(where3) .Add(ORMRestrictions <List <long> > .In("PhId", procIds)); result += GAppvalProcRule.Delete(where3); } return(result); }