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