Exemplo n.º 1
0
        public FormControlEntity GetControlByWorkId(string workId, string controlId)
        {
            FormControlEntity model = new FormControlEntity();

            using (var db = new RepositoryBase())
            {
                WorkEntity workEntity = db.FindEntity <WorkEntity>(m => m.Id == workId);
                if (workEntity != null && !string.IsNullOrEmpty(workEntity.Id))
                {
                    FlowVersionEntity flowVersionEntity = db.FindEntity <FlowVersionEntity>(m => m.Id == workEntity.FlowVersionId);
                    if (flowVersionEntity != null && !string.IsNullOrEmpty(flowVersionEntity.Id))
                    {
                        FlowEntity flowEntity = db.FindEntity <FlowEntity>(m => m.Id == flowVersionEntity.FlowId);
                        if (flowEntity != null && !string.IsNullOrEmpty(flowEntity.Id))
                        {
                            FormEntity formEntity = db.FindEntity <FormEntity>(m => m.Id == flowEntity.FormId);
                            if (formEntity != null && !string.IsNullOrEmpty(formEntity.Id))
                            {
                                model = db.FindEntity <FormControlEntity>(m => m.FormId == formEntity.Id && m.ControlId == controlId);
                            }
                        }
                    }
                }
            }
            return(model);
        }
Exemplo n.º 2
0
 public void SaveDesign(FlowVersionEntity flowVersionEntity)
 {
     using (var db = new RepositoryBase().BeginTrans())
     {
         flowVersionEntity.Create();
         if (flowVersionEntity.Nodes != null && flowVersionEntity.Nodes.Count > 0)
         {
             foreach (var flowNodes in flowVersionEntity.Nodes)
             {
                 flowNodes.FlowVersionId = flowVersionEntity.Id;
                 db.Insert(flowNodes);
             }
         }
         if (flowVersionEntity.Lines != null && flowVersionEntity.Lines.Count > 0)
         {
             foreach (var flowLines in flowVersionEntity.Lines)
             {
                 flowLines.FlowVersionId = flowVersionEntity.Id;
                 db.Insert(flowLines);
             }
         }
         if (flowVersionEntity.Areas != null && flowVersionEntity.Areas.Count > 0)
         {
             foreach (var flowAreas in flowVersionEntity.Areas)
             {
                 flowAreas.FlowVersionId = flowVersionEntity.Id;
                 db.Insert(flowAreas);
             }
         }
         db.Insert(flowVersionEntity);
         db.Commit();
     }
 }
Exemplo n.º 3
0
        private static void GenFlowLines(FlowVersionEntity flowVersionEntity, KeyValuePair <string, JToken> item)
        {
            if (flowVersionEntity.Lines == null)
            {
                flowVersionEntity.Lines = new List <FlowLineEntity>();
            }
            JObject objnode = JObject.Parse(item.Value.ToString());

            if (objnode != null)
            {
                foreach (KeyValuePair <string, JToken> itemnode in objnode)
                {
                    FlowLineEntity flowLine = new FlowLineEntity();
                    flowLine.Id       = Guid.NewGuid().ToString();
                    flowLine.MarkName = itemnode.Key.ToString();
                    flowLine.Marked   = false;
                    JObject objnodeitem = JObject.Parse(itemnode.Value.ToString());
                    if (objnodeitem != null)
                    {
                        foreach (KeyValuePair <string, JToken> itemnodeitem in objnodeitem)
                        {
                            if (itemnodeitem.Key == "name")
                            {
                                flowLine.Name = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "from")
                            {
                                flowLine.FromNode = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "to")
                            {
                                flowLine.ToNode = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "type")
                            {
                                flowLine.TypeName = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "strategiestype")
                            {
                                flowLine.PlotType = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "plot")
                            {
                                flowLine.Plot = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "sqlplot")
                            {
                                flowLine.SqlPlot = itemnodeitem.Value.ToString();
                            }
                        }
                    }
                    flowVersionEntity.Lines.Add(flowLine);
                }
            }
        }
Exemplo n.º 4
0
        public void StartApply(string flowId, string key, List <WorkControlEntity> controls)
        {
            WorkEntity workEntity = new WorkEntity();

            if (flowId != null)
            {
                FlowEntity flowentity = flowApp.GetForm(flowId);
                if (flowentity != null && !string.IsNullOrEmpty(flowentity.Id))
                {
                    FormEntity        formEntity        = formApp.GetForm(flowentity.FormId);
                    FlowVersionEntity flowVersionEntity = flowApp.GetDesign(flowId);
                    if (flowentity != null && !string.IsNullOrEmpty(flowentity.Id) &&
                        formEntity != null && !string.IsNullOrEmpty(formEntity.Id) &&
                        flowVersionEntity != null && !string.IsNullOrEmpty(flowVersionEntity.Id))
                    {
                        workEntity.Create();
                        workEntity.FullName      = flowentity.FullName;
                        workEntity.FlowVersionId = flowVersionEntity.Id;
                        workEntity.FlowStatus    = (int)WorkStatus.Applying;
                        workEntity.Codes         = formEntity.Codes;
                        workEntity.Contents      = key;
                        var loguser = OperatorProvider.Provider.GetCurrent();
                        if (loguser != null)
                        {
                            workEntity.ApplyUserId = loguser.UserId;
                        }
                        service.AddForm(workEntity, controls, null);
                        try
                        {
                            workFlowApp.Start(workEntity.Id);
                        }
                        catch (Exception ex)
                        {
                            workEntity.FlowStatus = (int)WorkStatus.Save;
                            service.Update(workEntity);
                            throw ex;
                        }
                    }
                    else
                    {
                        throw new Exception("操作失败!");
                    }
                }
                else
                {
                    throw new Exception("操作失败!");
                }
            }
            else
            {
                throw new Exception("操作失败,提交状态无效!");
            }
        }
Exemplo n.º 5
0
        private static void GenFlowAreas(FlowVersionEntity flowVersionEntity, KeyValuePair <string, JToken> item)
        {
            if (flowVersionEntity.Areas == null)
            {
                flowVersionEntity.Areas = new List <FlowAreaEntity>();
            }
            JObject objnode = JObject.Parse(item.Value.ToString());

            if (objnode != null)
            {
                foreach (KeyValuePair <string, JToken> itemnode in objnode)
                {
                    FlowAreaEntity flowArea = new FlowAreaEntity();
                    flowArea.Id       = Guid.NewGuid().ToString();
                    flowArea.MarkName = itemnode.Key.ToString();
                    flowArea.Marked   = false;
                    JObject objnodeitem = JObject.Parse(itemnode.Value.ToString());
                    if (objnodeitem != null)
                    {
                        foreach (KeyValuePair <string, JToken> itemnodeitem in objnodeitem)
                        {
                            if (itemnodeitem.Key == "name")
                            {
                                flowArea.Name = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "left")
                            {
                                flowArea.Left = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "top")
                            {
                                flowArea.Top = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "width")
                            {
                                flowArea.Width = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "height")
                            {
                                flowArea.Height = (int)itemnodeitem.Value;
                            }
                        }
                    }
                    flowVersionEntity.Areas.Add(flowArea);
                }
            }
        }
Exemplo n.º 6
0
        public void SaveDesign(string keyValue, string codes)
        {
            FlowEntity        flowEntity        = GetForm(keyValue);
            FlowVersionEntity flowVersionEntity = new FlowVersionEntity();
            Random            rand = new Random();

            flowVersionEntity.EnCode = "V" + DateTime.Now.ToString("yyyyMMddHHmmss") + rand.Next(0000, 9999);
            flowVersionEntity.Codes  = codes;
            if (flowEntity != null && !string.IsNullOrEmpty(flowEntity.Id))
            {
                flowVersionEntity.FlowId = flowEntity.Id;
                JObject obj = JObject.Parse(codes);
                if (obj != null)
                {
                    foreach (KeyValuePair <string, JToken> item in obj)
                    {
                        string key = item.Key;
                        switch (key)
                        {
                        case "title":
                            break;

                        case "nodes":
                            GenFlowNodes(flowVersionEntity, item);
                            break;

                        case "lines":
                            GenFlowLines(flowVersionEntity, item);
                            break;

                        case "areas":
                            GenFlowAreas(flowVersionEntity, item);
                            break;

                        case "initNum":
                            flowVersionEntity.InitNum = (int)item.Value;
                            break;
                        }
                    }
                }
                service.SaveDesign(flowVersionEntity);
            }
            else
            {
                throw new Exception("获取数据异常!");
            }
        }
Exemplo n.º 7
0
        private static void GenFlowNodes(FlowVersionEntity flowVersionEntity, KeyValuePair <string, JToken> item)
        {
            if (flowVersionEntity.Nodes == null)
            {
                flowVersionEntity.Nodes = new List <FlowNodeEntity>();
            }
            JObject objnode = JObject.Parse(item.Value.ToString());

            if (objnode != null)
            {
                foreach (KeyValuePair <string, JToken> itemnode in objnode)
                {
                    FlowNodeEntity flowNode = new FlowNodeEntity();
                    flowNode.Id          = Guid.NewGuid().ToString();
                    flowNode.MarkName    = itemnode.Key.ToString();
                    flowNode.Marked      = false;
                    flowNode.IsStartNode = false;
                    flowNode.IsEndNode   = false;
                    JObject objnodeitem = JObject.Parse(itemnode.Value.ToString());
                    if (objnodeitem != null)
                    {
                        foreach (KeyValuePair <string, JToken> itemnodeitem in objnodeitem)
                        {
                            if (itemnodeitem.Key == "name")
                            {
                                flowNode.Name = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "left")
                            {
                                flowNode.Left = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "top")
                            {
                                flowNode.Top = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "width")
                            {
                                flowNode.Width = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "height")
                            {
                                flowNode.Height = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "type")
                            {
                                flowNode.TypeName = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "steptype")
                            {
                                flowNode.StepType = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "rejecttype")
                            {
                                flowNode.RejectType = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "rejectnode")
                            {
                                flowNode.RejectNode = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "reviewertype")
                            {
                                flowNode.ReviewerType = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "reviewerusers")
                            {
                                flowNode.ReviewerUser = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "reviewerorgs")
                            {
                                flowNode.ReviewerOrg = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "cctype")
                            {
                                flowNode.CcType = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "ccusers")
                            {
                                flowNode.CcUser = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "ccorgs")
                            {
                                flowNode.CcOrg = itemnodeitem.Value.ToString();
                            }
                            if (itemnodeitem.Key == "messagetype")
                            {
                                flowNode.MessageType = (int)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "isstart")
                            {
                                flowNode.IsStartNode = (bool)itemnodeitem.Value;
                            }
                            if (itemnodeitem.Key == "isend")
                            {
                                flowNode.IsEndNode = (bool)itemnodeitem.Value;
                            }
                        }
                    }
                    flowVersionEntity.Nodes.Add(flowNode);
                }
            }
        }