Esempio n. 1
0
        //详情数据
        public DetailModel GetDetail(string id)
        {
            var             workflow = Workflow.Core.Workflow.CreateWorkflow(context, id);
            WorkflowContent content  = WorkflowInstUtil.CreateContent(workflow.WorkflowRow);
            //得到上一个人工步骤
            var workflowInst = context.WF_WORKFLOW_INST.FirstOrDefault <WF_WORKFLOW_INST>(n => n.WI_ID == id);
            var stepInst     = workflowInst == null ? null : context.WF_STEP_INST.OrderByDescending(m => m.SI_INDEX).FirstOrDefault <WF_STEP_INST>(m => m.SI_WI_ID == id && m.SI_CURRENT_STEP == workflowInst.WI_LAST_MANUAL);

            return(new DetailModel
            {
                WorkflowInstId = workflow.WorkflowId,
                Title = string.Format(ObjectUtil.SysCulture, "{0}-{1}-{2}", workflow.Config.DisplayName, workflow.WorkflowRow.WI_NAME, workflow.CurrentStep.Config.DisplayName),
                TabControlActions = workflow.Config.ControlActions.Where(a => a.ShowKind == ShowKind.Tab).OrderBy(a => a.Order).ToList(),
                TileControlActions = workflow.Config.ControlActions.Where(a => a.ShowKind == ShowKind.Tile).OrderBy(a => a.Order).ToList(),
                MapModel = GetMapModel(workflow),
                ReceiveTime = stepInst == null ? null : stepInst.SI_RECEIVE_DATE,
                ProcessTime = stepInst == null ? null : stepInst.SI_PROCESS_DATE,
                WorkflowContent = content.SaveString()
            });
        }
Esempio n. 2
0
        public string WorkflowProcess(string wid, DataSet PostDataSet)
        {
            Workflow.Core.Workflow wf = Workflow.Core.Workflow.CreateWorkflow(context, wid);
            WorkflowConfig.ConnString = PlugAreaRegistration.CONN;
            ManualStepConfig config = wf.CurrentStep.Config as ManualStepConfig;

            AtawDebug.AssertNotNull(config, "调用时机有误,当前的步骤必须是人工步骤,现在不是", this);

            WorkflowContent content = WorkflowInstUtil.CreateContent(wf.WorkflowRow);

            if (!string.IsNullOrEmpty(config.Process.UIOperation.RegName))
            {
                UIProcessor processor = AtawIocContext.Current.FetchInstance <UIProcessor>(
                    config.Process.UIOperation.PlugIn);
                processor.Config  = config;
                processor.Source  = context;
                processor.Content = content;

                processor.UIData = PostDataSet;
                processor.Execute(wf.WorkflowRow);
                WorkflowInstUtil.ManualSendWorkflow(wf.WorkflowRow, GlobalVariable.UserId, processor);
            }
            else
            {
                wf.WorkflowRow.WI_PROCESS_ID   = GlobalVariable.UserId.ToString();
                wf.WorkflowRow.WI_PROCESS_DATE = context.Now;
                wf.WorkflowRow.WI_STATUS       = (int)StepState.ProcessNotSend;
            }
            //context.Submit();
            wf.UpdateState(ManualPNSState.Instance);
            string url = wf.GetWorkflowUrl();
            JsResponseResult <string> res = new JsResponseResult <string>()
            {
                ActionType = JsActionType.Url,
                Content    = url
            };

            return(res.ToJSON());
        }
Esempio n. 3
0
 /// <summary>
 /// Construcor
 /// </summary>
 public Workflow() : base()
 {
     ContentType = ContentType.Workflow;
     Metadata    = new WorkflowMetadata();
     Content     = new WorkflowContent();
 }
 public void DoAction(string userId, DataAccess.WF_WORKFLOW_INST mainRow, WorkflowContent content, IUnitOfData source)
 {
     // throw new NotImplementedException();
 }
Esempio n. 5
0
        public ActionResult StepContent(string contentXml)
        {
            WorkflowContent content = XmlUtil.ReadFromString <WorkflowContent>(contentXml);

            return(View());
        }