Пример #1
0
        //获取分页数据
        public ActionResult GetApprove()
        {
            long     searchId;
            bool     isId = long.TryParse(Request["searchId"], out searchId);
            string   searchName = string.IsNullOrEmpty(Request["searchName"]) ? string.Empty : Request["searchName"];
            DateTime from, to;
            bool     fromIsDate = DateTime.TryParse(Request["from"], out from);
            bool     toIsDate   = DateTime.TryParse(Request["to"], out to);
            string   fromStr    = from.ToString("yyyy-MM-dd HH:mm:ss");
            string   toStr      = to.ToString("yyyy-MM-dd") + " 23:59:59";

            int pageIndex = Request["page"] != null?int.Parse(Request["page"]) : 1;

            int pageSize = Request["rows"] != null?int.Parse(Request["rows"]) : 5;

            int totalCount;
            var stepList = WFStepBll.GetPageList <long>(s => (s.NextId == UserLogin.UserId) && (s.IsEnd == 0) && (isId ? s.InstanceId == searchId : true) && (searchName != string.Empty ? s.WFInstance.InstanceTitle.Contains(searchName) : true) && (fromIsDate ? fromStr.CompareTo(s.WFInstance.SubTime) <= 0 : true) && (toIsDate ? toStr.CompareTo(s.WFInstance.SubTime) >= 0 : true), s => s.InstanceId, false, pageIndex, pageSize, out totalCount);
            var uList    = UserInfoBll.GetList <int>(us => true);
            var result   = from i in stepList
                           from uu in uList
                           where i.SubBy == uu.UserId
                           select new
            {
                StepId        = i.StepId,
                InstanceId    = i.InstanceId,
                InstanceTitle = i.WFInstance.InstanceTitle,
                Details       = i.WFInstance.Details,
                Remark        = i.WFInstance.Remark,
                SubTime       = i.SubTime,
                SubBy         = uu.RealName != null && uu.RealName != "" ? uu.RealName : uu.Username
            };

            return(Json(new { total = totalCount, rows = result }, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        public ActionResult Approve(int stepId)
        {
            WFStep           step  = WFStepBll.GetById(stepId);
            var              uu    = UserInfoBll.GetById(step.WFInstance.SubBy);
            ApproveViewModel model = new ApproveViewModel
            {
                StepId        = step.StepId,
                InstanceId    = step.InstanceId,
                InstanceTitle = step.WFInstance.InstanceTitle,
                Details       = step.WFInstance.Details,
                SubBy         = uu.RealName != null && uu.RealName != "" ? uu.RealName : uu.Username,
                Approve       = true //默认选中同意
            };

            ViewData["SelectList"] = GetNextIdList();
            return(View(model));
        }
Пример #3
0
        public ActionResult ReApply(int InstanceId)
        {
            WFStep           lastStep = WFStepBll.GetList <int>(s => s.WFInstance.InstanceId == InstanceId).OrderByDescending(s => s.StepId).FirstOrDefault();
            WFInstance       instance = lastStep.WFInstance;
            var              uu       = UserInfoBll.GetById(lastStep.SubBy);
            ReApplyViewModel raView   = new ReApplyViewModel
            {
                InstanceId    = instance.InstanceId,
                InstanceTitle = instance.InstanceTitle,
                Details       = instance.Details,
                Tips          = lastStep.Tips,
                RejectBy      = uu.RealName != null && uu.RealName != "" ? uu.RealName : uu.Username,
                RejectTime    = lastStep.SubTime
            };
            var result = GetNextIdList();

            ViewData["SelectList"] = result;
            return(View(raView));
        }
Пример #4
0
        public ActionResult Approve(ApproveViewModel model)
        {
            string     result    = "no";
            WFInstance wInstance = WFInstanceBll.GetById(model.InstanceId);

            //int status = !model.Approve ? -1 : model.Approve && model.NextId == 0 ? 1 : 0;
            //if (wInstance.InstanceTitle.StartsWith("报销"))
            //{
            //    WorkFlowHelper.Resume(new Expense(), Guid.Parse(wInstance.InstanceGuid), "Check", status);
            //}
            //else if (wInstance.InstanceTitle.StartsWith("请假"))
            //{
            //    WorkFlowHelper.Resume(new Leave(), Guid.Parse(wInstance.InstanceGuid), "LeaveCheck", status);
            //}
            //else
            //{
            //    return Content("no");
            //}
            wInstance.WFStep.Add(new WFStep
            {
                Tips    = string.IsNullOrWhiteSpace(model.Tips) ? "" : model.Approve ? "同意,意见为:" + model.Tips : "驳回,意见为:" + model.Tips,
                NextId  = model.NextId,
                SubBy   = UserLogin.UserId,
                SubTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                IsEnd   = model.NextId == 0 ? (byte)1 : (byte)0
            });
            if (model.Approve && model.NextId == 0)
            {
                wInstance.InstanceState = (int)InstanceState.Over;
            }
            else if (!model.Approve)
            {
                wInstance.InstanceState = (int)InstanceState.Reject;
            }
            wInstance.RejectMsg = model.Tips;
            WFStepBll.GetById(model.StepId).IsEnd = 1;
            if (WFInstanceBll.Edit(wInstance))
            {
                result = "ok";
            }
            return(Content(result));
        }
Пример #5
0
        // If your activity returns a value, derive from CodeActivity<TResult>
        // and return the value from the Execute method.
        protected override void Execute(CodeActivityContext context)
        {
            // Obtain the runtime value of the Text input argument
            short  stepStatus    = context.GetValue(this.StepStatus);
            string stepName      = context.GetValue(this.StepName);
            short  isEnd         = context.GetValue(this.IsEnd);
            int    nextProcessBy = context.GetValue(this.NextProcessBy);
            int    inputValue    = context.GetValue(this.InPutValue);
            int    tempId        = context.GetValue(this.TempId);
            int    startBy       = context.GetValue(this.StartBy);
            int    stepId        = context.GetValue(this.StepId);

            Guid insId = context.WorkflowInstanceId;

            //string insIdStr = insId.ToString();
            IWFInstanceBll commonWFInstanceBll = new WFInstanceBll();
            IWFStepBll     commonWFStepBll     = new WFStepBll();

            CommonWFInstance inst = commonWFInstanceBll.GetEntities(F => F.WFInstanceId == insId).FirstOrDefault();

            if (inst == null)
            {
                inst = new CommonWFInstance();
                inst.WFInstanceId = insId;
                inst.MaxValue     = inputValue;
                inst.SubTime      = DateTime.Now;
                inst.status       = isEnd;
                inst.TempId       = tempId;
                inst.UserId       = startBy;
                commonWFInstanceBll.Add(inst);
            }

            //CommonWFStep step = commonWFStepBll.GetEntities(s => s.CommonWFInstanceId == inst.Id && s.ProcessBy == nextProcessBy && s.StepName == stepName).FirstOrDefault();
            //if (step==null)
            //{
            //    step = new CommonWFStep();
            //    step.StepName=stepName;
            //    step.ProcessBy=nextProcessBy;
            //    step.SubTime = DateTime.Now;
            //    step.StepStatus=stepStatus;
            //    step.CommonWFInstanceId = inst.Id;
            //    commonWFStepBll.Add(step);
            //}
            //else
            //{
            //    step.SubTime = DateTime.Now;
            //    step.StepStatus = stepStatus;
            //    commonWFStepBll.Update(step);
            //}

            if (stepId == 0)
            {
                CommonWFStep step = new CommonWFStep();
                step.StepName           = stepName;
                step.ProcessBy          = nextProcessBy;
                step.SubTime            = DateTime.Now;
                step.StepStatus         = stepStatus;
                step.CommonWFInstanceId = inst.Id;
                commonWFStepBll.Add(step);
                context.SetValue(StepId, step.Id);
            }
            else
            {
                CommonWFStep step = commonWFStepBll.GetEntities(s => s.Id == stepId).FirstOrDefault();
                step.SubTime    = DateTime.Now;
                step.StepStatus = stepStatus;
                commonWFStepBll.Update(step);
            }
            if (isEnd == (short)SimpleOA.Enum.WF_InstanceEnum.Processed)
            {
                inst.status = isEnd;
                commonWFInstanceBll.Update(inst);
            }
            //var step = commonWFStepBll.GetEntities(s => s.CommonWFInstance.Id == inst.Id).FirstOrDefault();
            ////Common.LogHelper.WriteLog("SetSetpActivity:" + text);
            //step.StepName = stepName;
            //step.StepStatus = stepStatus;
            //step.ProcessBy = nextProcessBy;
            //step.IsEndStep = end;
            //if (end)
            //{
            //    step.ProcessResult = "审批结束";
            //    step.StepStatus = (short)SimpleOA.Enum.WFStepEnum.Processed;
            //    inst.status = (short)SimpleOA.Enum.WF_InstanceEnum.Processed;
            //    commonWFInstanceBll.Update(inst);
            //}
            //commonWFStepBll.Update(step);
        }