//获取分页数据 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)); }
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)); }
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)); }
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)); }
// 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); }