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); }
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(); } }
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); } } }
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("操作失败,提交状态无效!"); } }
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); } } }
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("获取数据异常!"); } }
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); } } }