public JsonResult ExecuteDeploy(string code, string node) { return(ExecuteFunctionRun(() => { ActionResult result = new ActionResult(); FunctionNodeType nodeType = FunctionNodeType.Function; if (string.IsNullOrEmpty(code) || !Enum.TryParse <FunctionNodeType>(node, out nodeType)) { result.Extend = new { State = false, ErroMsg = "SysDeploymen.Msg0" }; return Json(result.Extend, JsonRequestBehavior.AllowGet); } string loginName = this.Session["LoginName"].ToString(); string password = this.Session["Password"].ToString(); DeploymentProcess deploymentProcess = new DeploymentProcess(this, loginName, password); deploymentProcess.Connection(); object obj = deploymentProcess.OneButtonDeployment(nodeType, code); deploymentProcess.Dispose(); return Json(obj, JsonRequestBehavior.AllowGet); })); }
/// <summary> /// 获取目录下拉列表 /// </summary> /// <returns></returns> private List <Item> GetFloders(string objectType, string parentId) { List <Item> itemList = new List <Item>(); FunctionNodeType nodeType = string.IsNullOrWhiteSpace(objectType) ? FunctionNodeType.BizWorkflowPackage : (FunctionNodeType)Enum.Parse(typeof(FunctionNodeType), objectType); FunctionNode[] reportnode = this.Engine.FunctionAclManager.GetFunctionNodesByNodeType(FunctionNodeType.Report); if (reportnode != null) { foreach (FunctionNode report in reportnode) { itemList.Add(new Item(string.IsNullOrWhiteSpace(report.DisplayName) ? report.Code : report.DisplayName, report.Code));//提供一个可以选择新建报表页在跟目录的机会 } } FunctionNode[] folders = nodeType == FunctionNodeType.ReportFolder ? this.Engine.FunctionAclManager.GetFunctionNodesByNodeType(FunctionNodeType.ReportFolder) : new FunctionNode[] { this.Engine.FunctionAclManager.GetFunctionNode(parentId) }; if (folders != null) { foreach (FunctionNode folder in folders) { itemList.Add(new Item(string.IsNullOrWhiteSpace(folder.DisplayName) ? folder.Code : folder.DisplayName, folder.Code)); } } return(itemList); }
public JsonResult SaveWorkflowPackage(WorkflowPackageViewModel model) { return(ExecuteFunctionRun(() => { ActionResult result = new ActionResult(false); if (this.WorkflowLimit != 0) { int workflowCount = this.Engine.Query.Count(OThinker.H3.WorkflowTemplate.WorkflowClause.TableName, new string[] { OThinker.H3.WorkflowTemplate.WorkflowClause.PropertyName_State + "=" + (int)OThinker.H3.WorkflowTemplate.WorkflowState.Active }); if (workflowCount >= this.WorkflowLimit) { result.Success = false; result.Message = "WorkflowPackage.OverLimit"; return Json(result, JsonRequestBehavior.AllowGet); } } FunctionNodeType nodeType = string.IsNullOrWhiteSpace(model.ObjectType) ? FunctionNodeType.BizWorkflowPackage : (FunctionNodeType)Enum.Parse(typeof(FunctionNodeType), model.ObjectType); if (!Validator(nodeType, model, out result)) { return Json(result, JsonRequestBehavior.AllowGet); } if (nodeType == FunctionNodeType.BizWorkflowPackage) //流程包 { result = SavePackage(model); return Json(result, JsonRequestBehavior.AllowGet); } else //流程 { string code = model.Code.Trim(); if (this.Engine.WorkflowManager.GetDraftTemplate(code) != null) { result.Success = false; result.Message = "WorkflowPackage.Msg8"; return Json(result, JsonRequestBehavior.AllowGet); } int sortKey; Int32.TryParse(model.SortKey, out sortKey); OThinker.H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetDraftSchema(model.Folder); WorkflowTemplate.WorkflowClause wClause = new WorkflowTemplate.WorkflowClause(model.Folder, code, model.DisplayName, sortKey); wClause.IsShared = schema.IsShared; if (schema.IsQuotePacket) { //使用共享包的,用共享包的模型创建 wClause = new WorkflowTemplate.WorkflowClause(schema.BindPacket, code, model.DisplayName, sortKey); //加自己的标识 wClause.OwnSchemaCode = schema.SchemaCode; } result.Success = this.Engine.WorkflowManager.AddClause(wClause); result.Extend = model.ParentId; } return Json(result, JsonRequestBehavior.AllowGet); })); }
public List <OThinker.H3.Controllers.ViewModels.WorkflowNode> GetWorkflowNodeByParentCode( string parentCode, string searchKey, FunctionNodeType targetNodeType, bool ShowFavorite, List <FunctionNode> nodes, List <string> favoriteWorkflowCodes, List <string> aclWorkflowCodes, List <PublishedWorkflowTemplateHeader> headers, Dictionary <string, string> WorkflowIcons, Dictionary <string, string> WorkflowIconFileNames) { return(GetWorkflowNodeByParentCode(parentCode, searchKey, targetNodeType, ShowFavorite, nodes, favoriteWorkflowCodes, aclWorkflowCodes, headers, WorkflowIcons, WorkflowIconFileNames, false, false)); }
private AbstractPortalTreeHandler CreateHandler(string FunctionType, string ContainDraft, string IsBizObjectMode, string IsSharedPacket) { FunctionNodeType nodeType = (FunctionNodeType)Enum.Parse(typeof(FunctionNodeType), FunctionType); switch (nodeType) { case FunctionNodeType.ProcessModel: //流程模型 case FunctionNodeType.BizWFFolder: case FunctionNodeType.BizFolder: case FunctionNodeType.BizWorkflowPackage: return(new WorkflowHandler(ContainDraft, IsBizObjectMode, IsSharedPacket, this)); default: return(new FunctionHandler(this)); } }
/// <summary> /// 获取加载数据地址 /// </summary> /// <param name="typeCode">加载数据类型,如加载组织,加载公司,加载部门</param> /// <param name="funCode">加载数据的编码,如公司ID,部门ID</param> /// <returns></returns> protected string GetLoadDataUrl(string FunctionId, string FunctionCode, FunctionNodeType FunctionType, string OwnSchemaCode = "") { string loadDataUrl = string.Format(controller.PortalRoot + "/Index/LoadTreeData/?{0}={1}&{2}={3}&{4}={5}" , FunctionIDStr , HttpUtility.UrlEncode(FunctionId) , FunctionCodeStr , HttpUtility.UrlEncode(FunctionCode) , FunctionTypeStr , HttpUtility.UrlEncode(FunctionType.ToString())); if (!string.IsNullOrEmpty(OwnSchemaCode)) { loadDataUrl = string.Format(loadDataUrl + "&{0}={1}", OwnSchemaCodeStr, HttpUtility.UrlEncode(OwnSchemaCode)); } return(loadDataUrl); }
private AbstractPortalTreeHandler CreateHandler(string functionType) { FunctionNodeType nodeType = (FunctionNodeType)Enum.Parse(typeof(FunctionNodeType), functionType); switch (nodeType) { case FunctionNodeType.Organization: //加载组织机构子节点 return(new OrganizationHandler(this)); case FunctionNodeType.ProcessModel: //流程模型 case FunctionNodeType.Report: //报表模型qiancheng case FunctionNodeType.ReportFolder: //报表目录 case FunctionNodeType.ReportFolderPage: //报表页 case FunctionNodeType.BizWFFolder: case FunctionNodeType.BizFolder: return(new ProcessModelHandler(this)); //流程目录 case FunctionNodeType.ServiceFolder: //业务服务目录 return(new BizServiceChildren(this)); case FunctionNodeType.RuleFolder: //业务规则目录 return(new RuleFolderChildren(this)); case FunctionNodeType.BizRule: return(new BizRuleChildren(this)); case FunctionNodeType.BizWorkflowPackage: //流程包 return(new WrokflowPackageChildren(this)); case FunctionNodeType.BizObject: //数据模型 return(new BizOjectChildren(this)); case FunctionNodeType.Apps: //应用程序 return(new AppsChildren(this)); case FunctionNodeType.AppNavigation: //应用列表 return(new AppNavigationChildren(this)); case FunctionNodeType.BPAReportSource: //数据源 case FunctionNodeType.ReportTemplateFolder: //报表模板目录 return(new ReportTreeHander(this)); default: return(new FunctionHandler(this)); } }
/// <summary> /// 表单信息验证 /// </summary> /// <param name="NodeType">节点类型</param> /// <param name="model">工作流程信息</param> /// <param name="result">out:验证结果</param> /// <returns>验证是否通过</returns> private bool Validator(FunctionNodeType NodeType, WorkflowPackageViewModel model, out ActionResult result) { result = new ActionResult(); if (string.IsNullOrWhiteSpace(model.Code.Trim()) || string.IsNullOrWhiteSpace(model.DisplayName.Trim())) { result.Success = false; result.Message = "WorkflowPackage.Msg2"; return(false); } if (model.Code.Trim().Replace(" ", string.Empty).Length != model.Code.Trim().Length) { result.Success = false; result.Message = "WorkflowPackage.Msg3"; return(false); } int MaxColeLength = NodeType == FunctionNodeType.BizWorkflowPackage ? BizObjectSchema.MaxCodeLength : FunctionNode.MaxCodeLength; if (model.Code.Trim().Length > MaxColeLength) { result.Success = false; result.Message = "WorkflowPackage.Msg4"; result.Extend = MaxColeLength; } //校验编码规范 System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(BizObjectSchema.CodeRegex); if (!regex.Match(model.Code.Trim()).Success) { result.Success = false; result.Message = "WorkflowPackage.SchemaMsg"; return(false); } if (model.DisplayName.Trim().Length > FunctionNode.MaxNameLength) { result.Success = false; result.Message = "WorkflowPackage.Msg4"; result.Extend = FunctionNode.MaxNameLength; return(false); } return(true); }
private AbstractPortalTreeHandler CreateHandler(ControllerBase context, FunctionNodeType nodeType) { switch (nodeType) { case FunctionNodeType.Organization: //加载组织机构子节点 return(new OrganizationHandler(context)); case FunctionNodeType.ProcessModel: //流程模型 case FunctionNodeType.BizWFFolder: case FunctionNodeType.BizFolder: return(new ProcessModelHandler(context)); //流程目录 case FunctionNodeType.ServiceFolder: //业务服务目录 return(new BizServiceChildren(context)); case FunctionNodeType.RuleFolder: //业务规则目录 return(new RuleFolderChildren(context)); case FunctionNodeType.BizRule: return(new BizRuleChildren(context)); case FunctionNodeType.BizWorkflowPackage: //流程包 return(new WrokflowPackageChildren(context)); case FunctionNodeType.BizObject: //数据模型 return(new BizOjectChildren(context)); case FunctionNodeType.Apps: //应用程序 return(new AppsChildren(context)); case FunctionNodeType.AppNavigation: //应用列表 return(new AppNavigationChildren(context)); case FunctionNodeType.BPAReportSource: //数据源 case FunctionNodeType.ReportTemplateFolder: //报表模板目录 return(new ReportTreeHander(context)); default: return(new FunctionHandler(context)); } }
public JsonResult SaveWorkflowPackage(ReportPagePackageViewModel model) { return(ExecuteFunctionRun(() => { ActionResult result = new ActionResult(); FunctionNodeType nodeType = string.IsNullOrWhiteSpace(model.ObjectType) ? FunctionNodeType.BizWorkflowPackage : (FunctionNodeType)Enum.Parse(typeof(FunctionNodeType), model.ObjectType); if (!Validator(nodeType, model, out result)) { return Json(result, JsonRequestBehavior.AllowGet); } if (nodeType == FunctionNodeType.ReportFolder) //报表页 { result = SavePackage(model); return Json(result, JsonRequestBehavior.AllowGet); } return Json(result, JsonRequestBehavior.AllowGet); })); }
private AbstractPortalTreeHandler CreateHandler(string functionType) { FunctionNodeType nodeType = (FunctionNodeType)Enum.Parse(typeof(FunctionNodeType), functionType); switch (nodeType) { case FunctionNodeType.Organization: //加载组织机构子节点 return(new OrganizationHandler(this)); //case FunctionNodeType.ProcessModel://流程模型 //case FunctionNodeType.BizWFFolder: //case FunctionNodeType.BizFolder: // return new ProcessModelHandler(context);//流程目录 case FunctionNodeType.ServiceFolder: //业务服务目录 return(new BizServiceChildren(this)); case FunctionNodeType.RuleFolder: //业务规则目录 return(new RuleFolderChildren(this)); case FunctionNodeType.BizRule: return(new BizRuleChildren(this)); //case FunctionNodeType.BizWorkflowPackage://流程包 // return new WrokflowPackageChildren(context); //case FunctionNodeType.BizObject://数据模型 // return new BizOjectChildren(context); //case FunctionNodeType.Apps://应用程序 // return new AppsChildren(context); //case FunctionNodeType.AppNavigation://应用列表 // return new AppNavigationChildren(context); //case FunctionNodeType.BPAReportSource://数据源 //case FunctionNodeType.ReportTemplateFolder://报表模板目录 // return new ReportTreeHander(context); default: var obj = UserValidator; var child = this.UserValidator; return(new FunctionHandler(this)); } }
public List <OThinker.H3.Controllers.ViewModels.WorkflowNode> GetWorkflowNodeByParentCode( string parentCode, string searchKey, FunctionNodeType targetNodeType, bool ShowFavorite, List <FunctionNode> nodes, List <string> favoriteWorkflowCodes, List <string> aclWorkflowCodes, List <PublishedWorkflowTemplateHeader> headers, Dictionary <string, string> WorkflowIcons, Dictionary <string, string> WorkflowIconFileNames, bool IsShared, bool Isbilingual) { List <OThinker.H3.Controllers.ViewModels.WorkflowNode> WorkflowNodes = new List <OThinker.H3.Controllers.ViewModels.WorkflowNode>(); List <FunctionNode> childrenNodes = this.GetChildNodesByParentCode(parentCode, nodes, targetNodeType);// nodes.Where(p => p.ParentCode.ToLower() == parentCode.ToLower()).ToList(); if (childrenNodes == null || childrenNodes.Count == 0) { return(null); } if (IsShared) { childrenNodes = childrenNodes.Where(s => s.NodeType != FunctionNodeType.BizObject).ToList(); } System.Collections.ArrayList sortedChildrenNodes = new System.Collections.ArrayList(); System.Collections.ArrayList keyList = new System.Collections.ArrayList(); foreach (FunctionNode c in childrenNodes) { sortedChildrenNodes.Add(c); keyList.Add(c.SortKey); } sortedChildrenNodes = OThinker.Data.Sorter.Sort(keyList, sortedChildrenNodes); List <PublishedWorkflowTemplateHeader> tmpHeaders; //读取常用流程 if (parentCode == FunctionNode.Category_ProcessModel_Code && ShowFavorite) { string DisplayName = string.Empty; string Icon = string.Empty; if (Isbilingual) { DisplayName = "常用流程"; Icon = "fa fa-folder-o"; } else { DisplayName = "FrequentFlow"; Icon = null; } OThinker.H3.Controllers.ViewModels.WorkflowNode FavoriteNode = new OThinker.H3.Controllers.ViewModels.WorkflowNode() { IsLeaf = false, ObjectID = Guid.NewGuid().ToString(), DisplayName = DisplayName, children = new List <OThinker.H3.Controllers.ViewModels.WorkflowNode>(), Icon = Icon }; foreach (string workflowcode in aclWorkflowCodes) { tmpHeaders = FindTemplateHeaders(headers, workflowcode); if (tmpHeaders != null) { foreach (PublishedWorkflowTemplateHeader tmpHeader in tmpHeaders) { if (favoriteWorkflowCodes.Where(c => string.Compare(c, tmpHeader.WorkflowCode, true) == 0).Count() != 0) { FavoriteNode.children.Add(new OThinker.H3.Controllers.ViewModels.WorkflowNode() { IsLeaf = true, ObjectID = tmpHeader.ObjectID, Code = tmpHeader.WorkflowCode, DisplayName = this.GetDisplayName(nodes, tmpHeader.WorkflowCode, tmpHeader.DisplayName), PublishedTime = tmpHeader.PublishTime.ToShortDateString(), Version = tmpHeader.WorkflowVersion, Frequent = 1, Icon = "icon-liuchengmoxing" }); } } } } if (FavoriteNode.children.Count > 0) { WorkflowNodes.Add(FavoriteNode); } } foreach (FunctionNode node in sortedChildrenNodes) { if (targetNodeType != node.NodeType && node.NodeType != FunctionNodeType.BizObject && node.NodeType != FunctionNodeType.BizFolder && node.NodeType != FunctionNodeType.BizWFFolder) { continue; } if (searchKey != string.Empty && (node.DisplayName.IndexOf(searchKey) == -1 && (node.NodeType == FunctionNodeType.BizWorkflowPackage || node.NodeType == FunctionNodeType.BizObject || node.NodeType == FunctionNodeType.BizWorkflow))) { continue; } switch (node.NodeType) { case FunctionNodeType.BizWorkflowPackage: tmpHeaders = FindTemplateHeaders(headers, node.Code); WorkflowNodes.Add(new OThinker.H3.Controllers.ViewModels.WorkflowNode() { IsLeaf = true, ObjectID = node.ObjectID, // tmpHeader.ObjectID, Code = node.Code, //.WorkflowCode, DisplayName = node.DisplayName, // string.IsNullOrEmpty(tmpHeader.DisplayName) ? node.DisplayName : tmpHeader.DisplayName, PublishedTime = DateTime.MinValue.ToShortDateString(), // tmpHeader.PublishTime, Version = -1, // tmpHeader.WorkflowVersion, Icon = "icon-liuchengshujumoxing", Frequent = 0 //(favoriteWorkflowCodes.Where(c => string.Compare(c, tmpHeader.WorkflowCode, true) == 0).Count() != 0 ? 1 : 0) }); break; case FunctionNodeType.BizObject: WorkflowNodes.Add(new OThinker.H3.Controllers.ViewModels.WorkflowNode() { IsLeaf = true, ObjectID = node.ObjectID, // tmpHeader.ObjectID, Code = node.Code, //.WorkflowCode, DisplayName = node.DisplayName, // string.IsNullOrEmpty(tmpHeader.DisplayName) ? node.DisplayName : tmpHeader.DisplayName, PublishedTime = DateTime.MinValue.ToShortDateString(), // tmpHeader.PublishTime, Version = -1, // tmpHeader.WorkflowVersion, Icon = "icon-zhushujushili", Frequent = 0 //(favoriteWorkflowCodes.Where(c => string.Compare(c, tmpHeader.WorkflowCode, true) == 0).Count() != 0 ? 1 : 0) }); break; case FunctionNodeType.BizWorkflow: tmpHeaders = FindTemplateHeaders(headers, node.Code); foreach (PublishedWorkflowTemplateHeader tmpHeader in tmpHeaders) { WorkflowNodes.Add(new OThinker.H3.Controllers.ViewModels.WorkflowNode() { IsLeaf = true, ObjectID = tmpHeader.ObjectID, Code = tmpHeader.WorkflowCode, DisplayName = string.IsNullOrEmpty(tmpHeader.DisplayName) ? node.DisplayName : tmpHeader.DisplayName, PublishedTime = tmpHeader.PublishTime.ToShortDateString(), Version = tmpHeader.WorkflowVersion, Icon = "icon-liuchengmoxing", Frequent = (favoriteWorkflowCodes.Where(c => string.Compare(c, tmpHeader.WorkflowCode, true) == 0).Count() != 0 ? 1 : 0) }); headers.Remove(tmpHeader); } break; default: List <OThinker.H3.Controllers.ViewModels.WorkflowNode> nodeChildren = GetWorkflowNodeByParentCode(node.Code, searchKey, targetNodeType, ShowFavorite, nodes, favoriteWorkflowCodes, aclWorkflowCodes, headers, WorkflowIcons, WorkflowIconFileNames, IsShared, false); if (nodeChildren != null && nodeChildren.Count > 0) { WorkflowNodes.Add(new OThinker.H3.Controllers.ViewModels.WorkflowNode() { IsLeaf = false, ObjectID = node.ObjectID, Code = node.Code, DisplayName = node.DisplayName, children = nodeChildren, Icon = "fa fa-folder-o" }); } break; } } //设置图标 foreach (OThinker.H3.Controllers.ViewModels.WorkflowNode n in WorkflowNodes) { if (n.Code != null) { if (WorkflowIcons.ContainsKey(n.Code.ToLower())) { n.Icon = WorkflowIcons[n.Code.ToLower()]; } if (WorkflowIconFileNames.ContainsKey(n.Code.ToLower())) { n.IconFileName = WorkflowIconFileNames[n.Code.ToLower()]; } } if (n.children != null) { foreach (OThinker.H3.Controllers.ViewModels.WorkflowNode child in n.children) { if (child.Code != null) { if (WorkflowIcons.ContainsKey(child.Code.ToLower())) { child.Icon = WorkflowIcons[child.Code.ToLower()]; } if (WorkflowIconFileNames.ContainsKey(child.Code.ToLower())) { child.IconFileName = WorkflowIconFileNames[child.Code.ToLower()]; } } } } } return(WorkflowNodes); }
private List <FunctionNode> GetChildNodesByParentCode(string parentCode, List <FunctionNode> nodes, FunctionNodeType targetNodeType) { if (targetNodeType == FunctionNodeType.BizWorkflowPackage) { List <FunctionNode> children = nodes.Where(p => p.ParentCode.ToLower() == parentCode.ToLower()).ToList(); return(children); } else { List <FunctionNode> results = new List <FunctionNode>(); nodes = nodes.OrderBy(s => s.DisplayName).OrderBy(s => s.SortKey).ToList(); foreach (FunctionNode node in nodes) { if (node.NodeType == targetNodeType) { FunctionNode parentNode = nodes.Find(n => n.Code == node.ParentCode && n.NodeType == FunctionNodeType.BizWorkflowPackage); if (parentNode != null && parentNode.ParentCode == parentCode) { node.SortKey = parentNode.SortKey; results.Add(node); } if (parentNode != null && parentNode.ParentCode == FunctionNodeType.BizWorkflowPackage.ToString()) { node.SortKey = parentNode.SortKey; results.Add(node); } } else if ((node.NodeType == FunctionNodeType.BizFolder || node.NodeType == FunctionNodeType.BizWFFolder) && node.ParentCode == parentCode) { results.Add(node); } } return(results); } }
/// <summary> /// 删除文件夹 /// </summary> /// <param name="model"></param> /// <returns></returns> public JsonResult DeleteFolder(string nodeId, string nodeCode, string objectType) { return(ExecuteFunctionRun(() => { nodeCode = HttpUtility.UrlDecode(nodeCode); string nodeType = objectType.ToString() ?? ""; ActionResult result = new ActionResult(true); //Node.ID 与Node.Code值相同 if (string.IsNullOrWhiteSpace(nodeType) || nodeType.ToLowerInvariant().Equals(FunctionNodeType.BizWorkflowPackage.ToString().ToLowerInvariant()) || nodeType.ToLowerInvariant().Equals(FunctionNodeType.BizFolder.ToString().ToLowerInvariant()) || nodeType.ToLowerInvariant().Equals(FunctionNodeType.BizWFFolder.ToString().ToLowerInvariant()) ) { FunctionNode node = this.Engine.FunctionAclManager.GetFunctionNode(nodeId); if (node.NodeType == FunctionNodeType.BizWorkflowPackage) { DeleteReportSourceAndTemplate(node.Code);//删除关联的报表模板和报表数据源模板 FunctionNode[] Fs = this.Engine.FunctionAclManager.GetFunctionNodes(); foreach (FunctionNode f in Fs) { if (!string.IsNullOrEmpty(f.Url)) { if (f.Url.IndexOf("SchemaCode") > -1) { string[] memebrs = f.Url.Split('&'); foreach (string schemastring in memebrs) { if (schemastring.IndexOf("SchemaCode") > -1) { string schemacode = schemastring.Replace("SchemaCode=", ""); if (node.Code == schemacode) { this.Engine.FunctionAclManager.RemoveFunctionNode(f.ObjectID, false); } } } } } } this.Engine.LogWriter.Write(string.Format("--------------------->删除节点{0},操作用户{1}", node.DisplayName, this.UserValidator.UserCode)); this.Engine.AppPackageManager.DeleteAppPackage(node); this.Engine.WorkflowConfigManager.DeleteFavoriteWorkflow(this.UserValidator.UserID, node.Code); } else if (node.NodeType == FunctionNodeType.ReportTemplateFolder) // 删除报表模板目录 { Analytics.Reporting.ReportTemplate[] reportTemplates = this.Engine.Analyzer.GetReportTemplateByFolderCode(node.Code); //存在报表模板不能直接删除 if (reportTemplates != null && reportTemplates.Length > 0) { result.Success = false; } else { result.Success = this.Engine.FunctionAclManager.RemoveFunctionNode(nodeId, false); } } else { if (node.NodeType == FunctionNodeType.RuleFolder) { //检测是否有子目录 FunctionNode[] Folders = this.Engine.FunctionAclManager.GetFunctionNodesByParentCode(nodeCode); BizService[] bizServices = this.Engine.BizBus.GetBizServicesByFolderCode(nodeCode); if ((Folders != null && Folders.Length > 0) || (bizServices != null && bizServices.Length > 0)) { result.Success = false; result.Message = "msgGlobalString.HasChildNotDelete"; return Json(result); } result.Success = this.Engine.FunctionAclManager.RemoveFunctionNode(nodeId, false); }//流程目录 else if (node.NodeType == FunctionNodeType.BizWFFolder) { //检测是否有子目录 FunctionNode[] Folders = this.Engine.FunctionAclManager.GetFunctionNodesByParentCode(nodeCode); DataModel.BizObjectSchema bizSchema = this.Engine.BizObjectManager.GetPublishedSchema(nodeCode); if ((Folders != null && Folders.Length > 0) || bizSchema != null) { result.Success = false; result.Message = "msgGlobalString.HasChildNotDelete"; return Json(result); } result.Success = this.Engine.FunctionAclManager.RemoveFunctionNode(nodeId, false); } else { result.Success = this.Engine.FunctionAclManager.RemoveFunctionNode(nodeId, false); } } } else { FunctionNodeType type = (FunctionNodeType)Enum.Parse(typeof(FunctionNodeType), nodeType); switch (type) { case FunctionNodeType.BizSheet: var sheet = this.Engine.BizSheetManager.GetBizSheetByCode(nodeCode); if (sheet.IsShared) { //共享流程包,只有主包可以删除共享表单 if (nodeId == sheet.ObjectID) { result.Success = this.Engine.BizSheetManager.DeleteBizSheet(nodeCode); } else { result.Success = false; } } else { result.Success = this.Engine.BizSheetManager.DeleteBizSheet(nodeCode); } break; case FunctionNodeType.BizWorkflow: this.Engine.WorkflowManager.RemoveClause(nodeCode); result.Success = true; break; } } if (result.Success) { result.Message = "ProcessFolder.Msg_DeleteSuccess"; } else { result.Message = "ProcessFolder.Msg_DeleteFailed"; //ajaxResult.ResultMsg = this.PortalResource.GetString("Msg_DeleteFailed") + ":" + this.PortalResource.GetString("AddProcessFolder_Mssg1"); } return Json(result); })); }
/// <summary> /// 获取流程模板类型加载数据地址 /// </summary> /// <param name="typeCode">加载数据类型,如加载组织,加载公司,加载部门</param> /// <param name="funCode">加载数据的编码,如公司ID,部门ID</param> /// <param name="containDraft">是否包含设计中的流程模板</param> /// <returns></returns> protected string GetLoadWorkflowDataUrl(string FunctionId, string FunctionCode, FunctionNodeType FunctionType, bool containDraft, bool IsBizObjectMode) { return(string.Format(controller.PortalRoot + "/WorkflowTree/CreateWorkflowTree?{0}={1}&{2}={3}&{4}={5}&{6}={7}&{8}={9}" , FunctionIDStr , HttpUtility.UrlEncode(FunctionId) , FunctionCodeStr , HttpUtility.UrlEncode(FunctionCode) , FunctionTypeStr , HttpUtility.UrlEncode(FunctionType.ToString()) , ContainDraftStr , HttpUtility.UrlEncode((containDraft ? true : false).ToString().ToLower()) , IsBizObjectModeStr , HttpUtility.UrlEncode((IsBizObjectMode ? true : false).ToString().ToLower()))); }
/// <summary> /// 获取流程模板类型加载数据地址 /// </summary> /// <param name="typeCode">加载数据类型,如加载组织,加载公司,加载部门</param> /// <param name="funCode">加载数据的编码,如公司ID,部门ID</param> /// <returns></returns> protected string GetLoadWorkflowDataUrl(string FunctionId, string FunctionCode, FunctionNodeType FunctionType) { return(GetLoadWorkflowDataUrl(FunctionId, FunctionCode, FunctionType, false, false)); }