Пример #1
0
 /// <summary>
 /// 流程信息新增
 /// </summary>
 /// <param name="fiDto"></param>
 public void FlowInfoInsert(TMB_FLOWINFODTO fiDto)
 {
     try
     {
         TMB_FLOWINFO fiEf = AutoMapper.Mapper.Map <TMB_FLOWINFO>(fiDto);
         fiEf.C_ID     = Guid.NewGuid().ToString();
         fiEf.N_STATUS = 1;
         _FlowInfo.Add(fiEf);
         List <TMB_STEPINFODTO> siDto = fiDto.StepInfos.Where(x => x.IsCheck == true).ToList();
         foreach (var item in siDto)
         {
             TMB_FLOWSTEP fsEf = new TMB_FLOWSTEP()
             {
                 C_FLOW_ID = fiEf.C_ID,
                 C_STEP_ID = item.C_ID,
                 //N_TYPE = short.Parse(item.N_Type.ToString()),
                 N_STATUS     = short.Parse(item.N_STATUS.ToString()),
                 N_SORT       = short.Parse(item.N_SORT.ToString()),
                 C_EMP_ID     = fiEf.C_EMP_ID,
                 C_EMP_NAME   = fiEf.C_EMP_NAME,
                 D_MOD_DT     = fiEf.D_MOD_DT,
                 C_APPROVE_ID = item.C_NAME
             };
             _FlowStep.Add(fsEf);
         }
         this.Commit();
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Пример #2
0
        /// <summary>
        /// 获取流程信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public TMB_FLOWINFODTO GetFlowInfo(string id)
        {
            TMB_FLOWINFO    fiEf  = _FlowInfo.Find(id);
            TMB_FLOWINFODTO fiDto = AutoMapper.Mapper.Map <TMB_FLOWINFODTO>(fiEf);

            fiDto.StepInfos = GetStepInfos();
            var news = from flowStep in _FlowStep
                       where flowStep.C_FLOW_ID.Equals(id)
                       select new TMB_STEPINFODTO
            {
                C_ID         = flowStep.C_STEP_ID,
                C_APPROVE_ID = flowStep.C_APPROVE_ID,
                N_SORT       = flowStep.N_SORT,
                IsCheck      = true,
            };

            if (news.Count() > 0)
            {
                for (int i = 0; i < fiDto.StepInfos.Count; i++)
                {
                    var sis = news.ToList().FirstOrDefault(x => x.C_ID.Equals(fiDto.StepInfos[i].C_ID));
                    if (sis != null)
                    {
                        fiDto.StepInfos[i].IsCheck = true;
                        fiDto.StepInfos[i].N_SORT  = sis.N_SORT;
                    }
                }
            }
            return(fiDto);
        }
Пример #3
0
        /// <summary>
        /// 验证流程信息是否重复
        /// </summary>
        /// <param name="fiDto"></param>
        /// <param name="type">操作方式1修改 0新增</param>
        /// <returns></returns>
        public bool ValidateIsRepeat(TMB_FLOWINFODTO fiDto, int type)
        {
            TMB_FLOWINFO ef = null;

            try
            {
                Expression <Func <TMB_FLOWINFO, bool> > where = null;
                where = where.And(x => x.N_STATUS == 1);
                where = where.And(x => x.C_NAME.Equals(fiDto.C_NAME));
                if (type == 1)
                {
                    where = where.And(x => x.C_ID != fiDto.C_ID);
                }
                ef = _FlowInfo.FirstOrDefault(where);
            }
            catch (Exception e)
            { throw e; }
            bool result = false;

            if (ef == null)
            {
                result = true;
            }
            return(result);
        }
Пример #4
0
        public ActionResult FlowInfo(TMB_FLOWINFODTO fiDto)
        {
            //获取列表
            PageResult <TMB_FLOWINFO> ef = service.FlowInfos(fiDto);
            //获取分页数据
            BASEPAGE page = AUTOMAPING.Mapping <BASEPAGE>(ef);

            this.HttpContext.Session["Page"] = page;
            //EF实体转换DTO
            fiDto.FlowInfos = MAPPING.ConvertEntityToDtoList <TMB_FLOWINFO, TMB_FLOWINFODTO>(ef.DataList);
            return(View(fiDto));
        }
Пример #5
0
        /// <summary>
        /// 流程配置修改
        /// </summary>
        /// <returns></returns>
        public ActionResult FlowInfoUpdate(string id)
        {
            TMB_FLOWINFODTO fiDto = new TMB_FLOWINFODTO();

            fiDto       = service.GetFlowInfo(id);
            fiDto.Title = "流程配置修改";
            //生成下拉列表
            //List<SelectListItem> items = new List<SelectListItem>();
            //items.Add(new SelectListItem() { Text = "顺序处理", Value = "0" });
            //items.Add(new SelectListItem() { Text = "并行处理", Value = "1" });
            //fiDto.items = items;
            return(View("FlowInfoInsert", fiDto));
        }
Пример #6
0
        /// <summary>
        /// 流程信息列表(分页)
        /// </summary>
        /// <param name="fiDto"></param>
        /// <returns></returns>
        public PageResult <TMB_FLOWINFO> FlowInfos(TMB_FLOWINFODTO fiDto)
        {
            Expression <Func <TMB_FLOWINFO, bool> > where = null;
            where = where.And <TMB_FLOWINFO>(x => x.N_STATUS == 1);

            if (fiDto.N_TYPE != null)
            {
                where = where.And <TMB_FLOWINFO>(x => x.N_TYPE == fiDto.N_TYPE);
            }

            Expression <Func <TMB_FLOWINFO, int> > order = null;

            order = t => t.N_SORT ?? 1;

            return(QueryPage <TMB_FLOWINFO, int>(where, fiDto.BasePage.PageSize, fiDto.BasePage.PageIndex, order));
        }
Пример #7
0
        /// <summary>
        /// 验证流程信息是否重复
        /// </summary>
        /// <param name="fiDto"></param>
        /// <returns></returns>
        public bool ValidateIsRepeat(TMB_FLOWINFODTO fiDto)
        {
            Expression <Func <TMB_FLOWINFO, bool> > where = null;
            where = where.And(x => x.N_STATUS == 1);
            where = where.And(x => x.C_NAME.Equals(fiDto.C_NAME));


            TMB_FLOWINFO ef = _FlowInfo.FirstOrDefault(
                x => x.C_NAME.Equals(fiDto.C_NAME) &&
                x.N_STATUS == 1);
            bool result = false;

            if (ef.Equals(null))
            {
                result = true;
            }
            return(result);
        }
Пример #8
0
        public ActionResult FlowInfoInsert(TMB_FLOWINFODTO fiDto)
        {
            fiDto.Title = "流程配置新增";
            //生成下拉列表
            List <SelectListItem> items = new List <SelectListItem>();

            items.Add(new SelectListItem()
            {
                Text = "顺序处理", Value = "0"
            });
            items.Add(new SelectListItem()
            {
                Text = "并行处理", Value = "1"
            });
            fiDto.items = items;
            //验证模型字段
            if (!ModelState.IsValid)
            {
                return(View(fiDto));
            }
            //审批步骤必须选择
            else if (!fiDto.StepInfos.Select(x => x.IsCheck == true).Contains(true))
            {
                ModelState.AddModelError("error", "审批步骤不能为空");
                return(View(fiDto));
            }
            //验证是否重复
            else if (!service.ValidateIsRepeat(fiDto, 0))
            {
                ModelState.AddModelError("error", "流程名称重复!");
                return(View(fiDto));
            }
            //新增
            else
            {
                fiDto.C_EMP_ID   = BaseUser.Id;
                fiDto.C_EMP_NAME = BaseUser.Name;
                fiDto.D_MOD_DT   = DateTime.Now;
                service.FlowInfoInsert(fiDto);
                fiDto.ResultType = 1;
                return(View(fiDto));
            }
        }
Пример #9
0
        /// <summary>
        /// 流程配置新增
        /// </summary>
        /// <returns></returns>
        public ActionResult FlowInfoInsert()
        {
            TMB_FLOWINFODTO fiDto = new TMB_FLOWINFODTO();

            fiDto.Title = "流程配置新增";
            //生成下拉列表
            List <SelectListItem> items = new List <SelectListItem>();

            items.Add(new SelectListItem()
            {
                Text = "顺序处理", Value = "0"
            });
            items.Add(new SelectListItem()
            {
                Text = "并行处理", Value = "1"
            });
            fiDto.items = items;
            //获取角色生成流程
            fiDto.StepInfos = service.GetStepInfos();
            return(View(fiDto));
        }