public ActionResult EditFormContent(int id)
        {
            var instance = FlowInstanceManager.GetDbRecord(id);

            ViewBag.formInstID = FormManager.GetFormInstanceOfFlowInstance(id);
            return(View(instance));
        }
        public ActionResult FlowInstanceList(Guid?id)
        {
            var instances = id == null?FlowInstanceManager.GetAllRecords() : FlowInstanceManager.Query(x => x.WorkflowID == id);

            instances = instances.OrderByDescending(x => x.StartTime).ToList();
            return(View(instances));
        }
Exemple #3
0
        public ActionResult ShowByFlowInst(int id, FormCollection collection, bool partial = false, bool showButton = true)
        {
            int formInstID = FormManager.GetFormInstanceOfFlowInstance(id);
            var formInst   = FormInstanceManager.GetDbRecord(formInstID);
            var form       = FormManager.GetDbRecord(formInst.FormID);
            var flowInst   = FlowInstanceManager.GetDbRecord(formInst.FlowInstanceID);
            var layoutID   = LayoutManager.GetLayoutOfFlowNode(flowInst.CurrentNodeID);
            var markup     = layoutID == null ? form.Layout : LayoutManager.GetDbRecord(layoutID.Value).Markup;

            var data = System.Web.Helpers.Json.Decode <Dictionary <string, string> >(formInst.Data);

            data = data == null ? new Dictionary <string, string>() : data;
            collection.AllKeys.ForEach(x => data[x] = collection[x]);
            FormInstanceManager.UpdateDbRecord(formInstID, record =>
            {
                record.Data = System.Web.Helpers.Json.Encode(data);
            });
            TongJi.Web.Notifications.Notification.EnqueueMessage("表单数据已保存。");

            ViewBag.partial    = partial;
            ViewBag.showButton = showButton;
            ViewBag.Form       = form;
            ViewBag.markup     = markup;
            ViewBag.formInstID = formInstID;
            return(View("Show", data));
        }
 public ActionResult NewFlowInst(Guid id, string name, string number, string comment)
 {
     if (string.IsNullOrEmpty(name))
     {
         ModelState.AddModelError("name", "实例名称不可为空。");
     }
     if (id == Guid.Empty)
     {
         ModelState.AddModelError("id", "请选择项目流程。");
     }
     if (ModelState.IsValid)
     {
         var flowID = id;
         var instID = WorkflowManager.NewInstance(flowID, name, number, comment);
         var formID = FormManager.GetMainFormOfWorkflow(flowID);
         if (formID != null)
         {
             FormManager.NewInstance(formID.Value, string.Empty, instID);
         }
         FlowInstanceManager.GoOn(instID, WebSecurity.CurrentUserName);
         TongJi.Web.Notifications.Notification.EnqueueMessage("新建流程已成功。");
         return(RedirectToAction("FlowStepJump", new { id = instID }));
     }
     ViewBag.FlowList = WorkflowManager.GetFlowList();
     return(View());
 }
        public ActionResult FlowTracking(int id)
        {
            var inst = FlowInstanceManager.GetDbRecord(id);
            var list = FlowInstanceManager.TrackBack(id);

            ViewBag.inst = inst;
            return(View(list));
        }
        public ActionResult SetCurrentNode(int id)
        {
            var instance = FlowInstanceManager.GetDbRecord(id);
            var flowId   = instance.WorkflowID;
            var nodes    = WorkflowManager.GetNodeList(flowId);
            var dict     = nodes.ToDictionary(x => x.ID, x => x.NodeName);

            ViewBag.nodes = dict;
            return(View(instance));
        }
        public ActionResult FlowChart(int id)
        {
            var inst = FlowInstanceManager.GetDbRecord(id);
            var node = FlowNodeManager.GetDbRecord(inst.CurrentNodeID);

            ViewBag.id       = id;
            ViewBag.nodeName = node.Name;
            ViewBag.instName = inst.Name;
            return(View());
        }
        public ActionResult PersonAction(string user)
        {
            if (string.IsNullOrEmpty(user))
            {
                user = WebSecurity.CurrentUserName;
            }
            var list = FlowInstanceManager.UserAction(user);

            return(View(list));
        }
Exemple #9
0
        public ActionResult StepJump(int id)
        {
            var inst = FlowInstanceManager.GetDbRecord(id);
            var node = FlowNodeManager.GetDbRecord(inst.CurrentNodeID);

            switch (node.Name)
            {
            case "窗口接件":
                return(RedirectToAction("Step1", new { id = id }));

            case "审核申请材料":
                return(RedirectToAction("Step2", new { id = id }));

            case "补正材料":
                return(RedirectToAction("Step3", new { id = id }));

            case "出具不予受理决定书":
                return(RedirectToAction("Step4", new { id = id }));

            case "审核是否符合地块控制":
                return(RedirectToAction("Step5", new { id = id }));

            case "准备申请单元控制":
                return(RedirectToAction("Step6", new { id = id }));

            case "输出规划条件":
                return(RedirectToAction("Step7", new { id = id }));

            case "科长审批":
                return(RedirectToAction("Step8", new { id = id }));

            case "会审":
                return(RedirectToAction("Step9", new { id = id }));

            case "局长审批":
                return(RedirectToAction("Step10", new { id = id }));

            case "整理规划条件":
                return(RedirectToAction("Step11", new { id = id }));

            case "窗口出具准予行政许可决定书与规划条件":
                return(RedirectToAction("Step12", new { id = id }));

            case "出具不予行政许可决定书":
                return(RedirectToAction("Step13", new { id = id }));

            case "出具受理通知书":
                return(RedirectToAction("Step14", new { id = id }));

            default:
                return(RedirectToAction("FlowEnd", new { id = id }));
            }
        }
 public ActionResult FlowGoBack(int id, string returnUrl)
 {
     FlowInstanceManager.GoBack(id, WebSecurity.CurrentUserName);
     TongJi.Web.Notifications.Notification.EnqueueMessage("流程已经回退到上一步。您没有权限进一步回退,详情请咨询管理员。");
     if (string.IsNullOrEmpty(returnUrl))
     {
         return(null);
     }
     else
     {
         return(Redirect(returnUrl));
     }
 }
        public ActionResult FlowGoOn(int id, string to, string returnUrl, bool isFinish = false)
        {
            FlowInstanceManager.GoOn(id, WebSecurity.CurrentUserName, to);
            if (isFinish)
            {
                FlowInstanceManager.GoOn(id, WebSecurity.CurrentUserName, "");
            }

            TongJi.Web.Notifications.Notification.EnqueueMessage("操作已成功。");
            if (string.IsNullOrEmpty(returnUrl))
            {
                return(null);
            }
            else
            {
                return(Redirect(returnUrl));
            }
        }
Exemple #12
0
        public ActionResult ShowByFlowInst(int id, bool partial = false, bool showButton = true)
        {
            int formInstID = FormManager.GetFormInstanceOfFlowInstance(id);
            var formInst   = FormInstanceManager.GetDbRecord(formInstID);
            var form       = FormManager.GetDbRecord(formInst.FormID);
            var flowInst   = FlowInstanceManager.GetDbRecord(formInst.FlowInstanceID);
            var layoutID   = LayoutManager.GetLayoutOfFlowNode(flowInst.CurrentNodeID);
            var markup     = layoutID == null ? form.Layout : LayoutManager.GetDbRecord(layoutID.Value).Markup;

            ViewBag.partial    = partial;
            ViewBag.showButton = showButton;
            ViewBag.Form       = form;
            ViewBag.markup     = markup;
            ViewBag.formInstID = formInstID;
            var data = System.Web.Helpers.Json.Decode <Dictionary <string, string> >(formInst.Data);

            return(View("Show", data));
        }
        public ActionResult FlowStep(int id)
        {
            var  inst       = FlowInstanceManager.GetDbRecord(id);
            var  flow       = WorkflowManager.GetDbRecord(inst.WorkflowID);
            var  node       = FlowNodeManager.GetDbRecord(inst.CurrentNodeID);
            bool allowed    = FlowNodeManager.IsUserAllowed(inst.CurrentNodeID, WebSecurity.CurrentUserName);
            bool completed  = inst.Completed;
            int  formInstID = FormManager.GetFormInstanceOfFlowInstance(id);
            var  layoutID   = LayoutManager.GetLayoutOfFlowNode(inst.CurrentNodeID);

            ViewBag.inst       = inst;
            ViewBag.flow       = flow;
            ViewBag.node       = node;
            ViewBag.allowed    = allowed;
            ViewBag.completed  = completed;
            ViewBag.formInstID = formInstID;
            ViewBag.hasLayout  = layoutID != null;
            return(View());
        }
Exemple #14
0
        public async Task <IActionResult> InstanceRepost(int data)
        {
            var instance = await FlowInstanceManager.GetByIdFromCacheAsync(data);

            switch (instance.FormType)
            {
            case FormType.Html:
                ViewBag.FormContent = instance.FormContent;
                ViewBag.FormData    = instance.FormData;
                return(View("HtmlRepost"));

            case FormType.Designer:
                return(View("DesignerRepost"));

            case FormType.Spread:
                return(View("SpreadRepost"));
            }
            return(View());
        }
        public ActionResult FlowStepJump(int id)
        {
            var  inst    = FlowInstanceManager.GetDbRecord(id);
            bool allowed = FlowNodeManager.IsUserAllowed(inst.CurrentNodeID, WebSecurity.CurrentUserName);

            if (!allowed)
            {
                return(RedirectToAction("TodoList", "Workflow"));
            }
            //if (inst.WorkflowID == Guid.Parse(UPlanWeb.Models.UPlanDb.WorkflowID_Project))
            //{
            //    return RedirectToAction("StepJump", "ProjectFlow", new { id = id });
            //}
            //else if (inst.WorkflowID == Guid.Parse(UPlanWeb.Models.UPlanDb.WorkflowID_UnitMutate))
            //{
            //    return RedirectToAction("Page", "UnitMutateFlow", new { id = id });
            //}
            return(RedirectToAction("StepJump", string.Format("Flow{0}", inst.WorkflowID.ToString().Replace("-", "_")), new { id = id }));
            //return RedirectToAction("FlowStep", new { id = id });
        }
Exemple #16
0
        /// <summary>
        /// 流程实例的表单查看
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public async Task <IActionResult> InstanceView(int data, string mode)
        {
            var user = await UserManager.GetByIdAsync(AbpSession.UserId.Value);

            ViewBag.IsCenter = user.IsCenterUser;
            var instance = await FlowInstanceManager.GetAll().Include(o => o.FlowForm).IgnoreQueryFilters().Where(o => o.Id == data).FirstOrDefaultAsync();

            if (instance == null)
            {
                return(Error(L("此单据已不存在")));
            }
            var flowSheet = await FlowSheetManager.GetByInstanceId(data);

            var defaultForms = Configuration.Modules.Core().DefaultForms;
            var defaultForm  = defaultForms.FirstOrDefault(o => o.FormKey == instance.FlowForm.FormKey);

            switch (instance.FormType)
            {
            case FormType.Html:
                //ViewBag.FormContent = instance.FormContent;
                ViewBag.FormContent = string.IsNullOrEmpty(instance.FlowForm.FormContent) ? defaultForm?.FormContent : instance.FlowForm.FormContent;
                ViewBag.FormData    = instance.FormData;
                ViewBag.Mode        = mode;
                ViewBag.SheetId     = flowSheet.Id;
                ViewBag.UpdateTime  = instance.LastModificationTime?.ToString("yyyy-MM-dd HH:mm:ss");
                ViewBag.OrderStatus = flowSheet?.OrderStatus;
                return(View("HtmlView"));

            case FormType.Designer:
                return(View("DesignerView"));

            case FormType.Spread:
                return(View("SpreadView"));
            }
            return(View());
        }
Exemple #17
0
        /// <summary>
        /// 流程实例的表单查看
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public async Task <IActionResult> InstanceView(int data)
        {
            var instance = await FlowInstanceManager.GetAll().IgnoreQueryFilters().Where(o => o.Id == data).FirstOrDefaultAsync();

            if (instance == null)
            {
                return(Error(L("此单据已不存在")));
            }

            switch (instance.FormType)
            {
            case FormType.Html:
                ViewBag.FormContent = instance.FormContent;
                ViewBag.FormData    = instance.FormData;
                return(View("HtmlView"));

            case FormType.Designer:
                return(View("DesignerView"));

            case FormType.Spread:
                return(View("SpreadView"));
            }
            return(View());
        }
 public ActionResult SetCurrentNode(int id, Guid nodeId)
 {
     FlowInstanceManager.SetCurrentNode(id, nodeId);
     return(RedirectToAction("FlowInstanceList"));
 }
        public ActionResult GetInstJson(int id)
        {
            var data = FlowInstanceManager.GetJsonObject(id);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }