/// <summary> /// 获取树节点列表 /// </summary> /// <param name="ens"></param> /// <param name="checkIds"></param> /// <returns></returns> public string GetTreeList(Entities ens, string checkIds, string unCheckIds) { StringBuilder appSend = new StringBuilder(); appSend.Append("["); foreach (EntityTree item in ens) { if (appSend.Length > 1) { appSend.Append(",{"); } else { appSend.Append("{"); } appSend.Append("\"id\":\"" + item.No + "\""); appSend.Append(",\"text\":\"" + item.Name + "\""); SysFormTree node = item as SysFormTree; //文件夹节点图标 string ico = "icon-tree_folder"; //判断未完全选中 if (unCheckIds.Contains("," + item.No + ",")) { ico = "collaboration"; } appSend.Append(",iconCls:\""); appSend.Append(ico); appSend.Append("\""); if (checkIds.Contains("," + item.No + ",")) { appSend.Append(",\"checked\":true"); } //判断是否还有子节点icon-3 //BP.GPM.Menus menus = new BP.GPM.Menus(); //menus.RetrieveByAttr("ParentNo", item.No); //if (menus != null && menus.Count > 0) //{ // appSend.Append(",state:\"closed\""); // appSend.Append(",\"children\":"); // appSend.Append("[{"); // appSend.Append(string.Format("\"id\":\"{0}\",\"text\":\"{1}\"", item.No + "01", "加载中...")); // appSend.Append("}]"); //} appSend.Append("}"); } appSend.Append("]"); return(appSend.ToString()); }
public void BindFrmSorts() { SysFormTrees fss = new SysFormTrees(); fss.RetrieveAll(); this.Pub1.AddH2("表单类别维护"); this.Pub1.AddHR(); this.Pub1.AddTable("align=left"); this.Pub1.AddTR(); this.Pub1.AddTDTitle("序号"); this.Pub1.AddTDTitle("类别编号"); this.Pub1.AddTDTitle("类别名称"); this.Pub1.AddTREnd(); for (int i = 1; i <= 15; i++) { this.Pub1.AddTR(); this.Pub1.AddTDIdx(i); TextBox tb = new TextBox(); tb.Text = i.ToString().PadLeft(2, '0'); SysFormTree fs = fss.GetEntityByKey(SysFormTreeAttr.No, tb.Text) as SysFormTree; tb.ID = "TB_No_" + i; tb.Columns = 5; tb.ReadOnly = true; this.Pub1.AddTD(tb.Text); tb = new TextBox(); tb.ID = "TB_Name_" + i; tb.Columns = 40; if (fs != null) { tb.Text = fs.Name; } this.Pub1.AddTD(tb); this.Pub1.AddTREnd(); } Button btn = new Button(); btn.Text = "Save"; btn.CssClass = "Btn"; btn.Click += new EventHandler(btn_SaveFrmSort_Click); this.Pub1.Add(btn); this.Pub1.AddTR(); this.Pub1.AddTD("colspan=2", btn); this.Pub1.AddTD("要删除类别,请把文本框数据清空保存即可。"); this.Pub1.AddTREnd(); this.Pub1.AddTableEndWithHR(); }
void btn_SaveFrmSort_Click(object sender, EventArgs e) { for (int i = 1; i <= 15; i++) { TextBox tbName = this.Pub1.GetTextBoxByID("TB_Name_" + i); SysFormTree fs = new SysFormTree(); fs.No = i.ToString().PadLeft(2, '0'); fs.Name = tbName.Text.ToString(); if (fs.Name.Length > 1) { fs.Save(); } else { fs.Delete(); } } this.Alert("保存成功"); }
public void Share() { this.Pub1.AddTable(); this.Pub1.AddCaptionLeftTX("在施工中.."); this.Pub1.AddTR(); this.Pub1.AddTDTitle("项目"); this.Pub1.AddTDTitle("采集"); this.Pub1.AddTDTitle("说明"); this.Pub1.AddTREnd(); this.Pub1.AddTR(); this.Pub1.AddTD("表单类别"); MapData md = new MapData(this.RefNo); TextBox tb = new TextBox(); tb.ID = "TB_Sort"; if (string.IsNullOrEmpty(md.FK_FrmSort.Trim())) { /*没有类别,就考虑是节点表单*/ } else { SysFormTree fs = new SysFormTree(); fs.No = md.No; fs.RetrieveFromDBSources(); tb.Text = md.No; } this.Pub1.AddTD(tb); this.Pub1.AddTD(); this.Pub1.AddTREnd(); this.Pub1.AddTR(); this.Pub1.AddTD("表单名称"); tb = new TextBox(); tb.ID = "TB_Name"; tb.Text = md.Name; this.Pub1.AddTD(tb); this.Pub1.AddTD(); this.Pub1.AddTREnd(); //this.Pub1.AddTR(); //this.Pub1.AddTD("设计者"); //tb = new TextBox(); //tb.ID = "TB_Designer"; //tb.Text = md.Designer; //this.Pub1.AddTD(tb); //this.Pub1.AddTD(); //this.Pub1.AddTREnd(); //this.Pub1.AddTR(); //this.Pub1.AddTD("设计单位"); //tb = new TextBox(); //tb.ID = "TB_DesignerContact"; //tb.Text = md.DesignerContact; //this.Pub1.AddTD(tb); //this.Pub1.AddTD(); //this.Pub1.AddTREnd(); //this.Pub1.AddTR(); //this.Pub1.AddTD("联系方式"); //tb = new TextBox(); //tb.ID = "TB_DesignerContact"; //tb.Text = md.DesignerContact; //tb.Columns = 50; //this.Pub1.AddTD(tb); //this.Pub1.AddTD(); //this.Pub1.AddTREnd(); this.Pub1.AddTableEnd(); this.Pub1.AddTR(); this.Pub1.AddTD(); Button btn = new Button(); btn.CssClass = "Btn"; btn.ID = "Btn_Save"; btn.Text = "Share It"; btn.Click += new EventHandler(btn_ShareIt_Click); this.Pub1.AddTD(btn); this.Pub1.AddTD(); this.Pub1.AddTREnd(); this.Pub1.AddTableEnd(); this.Pub1.AddFieldSet("共享说明"); this.Pub1.Add("如果您想批量的共享表单,请转到流程设计器-功能执行-导出流程与表单模板,发送邮件到[email protected]中。"); this.Pub1.AddFieldSetEnd(); }
public override object Do() { string msg = ""; #region 检查数据文件是否完整. string path = "C:\\CCFlowTemplete"; if (System.IO.Directory.Exists(path) == false) { msg += "@错误:约定的目录不存在服务器" + path + ",请把从ccflow备份的文件放入" + path; } //PortTables. string file = path + "\\PortTables.xml"; if (System.IO.File.Exists(file) == false) { msg += "@错误:约定的文件不存在," + file; } //SysTables. file = path + "\\SysTables.xml"; if (System.IO.File.Exists(file) == false) { msg += "@错误:约定的文件不存在," + file; } //FlowTables. file = path + "\\FlowTables.xml"; if (System.IO.File.Exists(file) == false) { msg += "@错误:约定的文件不存在," + file; } #endregion 检查数据文件是否完整. #region 1 装载流程基础表数据. DataSet ds = new DataSet(); ds.ReadXml(path + "\\FlowTables.xml"); //流程类别. FlowSorts sorts = new FlowSorts(); sorts.ClearTable(); DataTable dt = ds.Tables["WF_FlowSort"]; // sorts = QueryObject.InitEntitiesByDataTable(sorts, dt, null) as FlowSorts; foreach (FlowSort item in sorts) { item.DirectInsert(); //插入数据. } #endregion 1 装载流程基础表数据. #region 2 组织结构. ds = new DataSet(); ds.ReadXml(path + "\\PortTables.xml"); //Port_Emp. Emps emps = new Emps(); emps.ClearTable(); dt = ds.Tables["Port_Emp"]; emps = QueryObject.InitEntitiesByDataTable(emps, dt, null) as Emps; foreach (Emp item in emps) { item.DirectInsert(); //插入数据. } //Depts. Depts depts = new Depts(); depts.ClearTable(); dt = ds.Tables["Port_Dept"]; depts = QueryObject.InitEntitiesByDataTable(depts, dt, null) as Depts; foreach (Dept item in depts) { item.DirectInsert(); //插入数据. } //Stations. Stations stas = new Stations(); stas.ClearTable(); dt = ds.Tables["Port_Station"]; stas = QueryObject.InitEntitiesByDataTable(stas, dt, null) as Stations; foreach (Station item in stas) { item.DirectInsert(); //插入数据. } //EmpDepts. EmpDepts eds = new EmpDepts(); eds.ClearTable(); dt = ds.Tables["Port_EmpDept"]; eds = QueryObject.InitEntitiesByDataTable(eds, dt, null) as EmpDepts; foreach (EmpDept item in eds) { item.DirectInsert(); //插入数据. } //EmpStations. EmpStations ess = new EmpStations(); ess.ClearTable(); dt = ds.Tables["Port_EmpStation"]; ess = QueryObject.InitEntitiesByDataTable(ess, dt, null) as EmpStations; foreach (EmpStation item in ess) { item.DirectInsert(); //插入数据. } #endregion 2 组织结构. #region 3 恢复系统数据. ds = new DataSet(); ds.ReadXml(path + "\\SysTables.xml"); //枚举Main. SysEnumMains sems = new SysEnumMains(); sems.ClearTable(); dt = ds.Tables["Sys_EnumMain"]; sems = QueryObject.InitEntitiesByDataTable(sems, dt, null) as SysEnumMains; foreach (SysEnumMain item in sems) { item.DirectInsert(); //插入数据. } //枚举. SysEnums ses = new SysEnums(); ses.ClearTable(); dt = ds.Tables["Sys_Enum"]; ses = QueryObject.InitEntitiesByDataTable(ses, dt, null) as SysEnums; foreach (SysEnum item in ses) { item.DirectInsert(); //插入数据. } ////Sys_FormTree. //BP.Sys.SysFormTrees sfts = new SysFormTrees(); //sfts.ClearTable(); //dt = ds.Tables["Sys_FormTree"]; //sfts = QueryObject.InitEntitiesByDataTable(sfts, dt, null) as SysFormTrees; //foreach (SysFormTree item in sfts) //{ // try // { // item.DirectInsert(); //插入数据. // } // catch // { // } //} #endregion 3 恢复系统数据. #region 4.备份表单相关数据. if (1 == 2) { string pathOfTables = path + "\\SFTables"; System.IO.Directory.CreateDirectory(pathOfTables); SFTables tabs = new SFTables(); tabs.RetrieveAll(); foreach (SFTable item in tabs) { if (item.No.Contains(".")) { continue; } string sql = "SELECT * FROM " + item.No; ds = new DataSet(); ds.Tables.Add(BP.DA.DBAccess.RunSQLReturnTable(sql)); ds.WriteXml(pathOfTables + "\\" + item.No + ".xml"); } } #endregion 4 备份表单相关数据. #region 5.恢复表单数据. //删除所有的流程数据. MapDatas mds = new MapDatas(); mds.RetrieveAll(); foreach (MapData fl in mds) { //if (fl.FK_FormTree.Length > 1 || fl.FK_FrmSort.Length > 1) // continue; fl.Delete(); //删除流程. } //清除数据. SysFormTrees fss = new SysFormTrees(); fss.ClearTable(); // 调度表单文件。 string frmPath = path + "\\Form"; DirectoryInfo dirInfo = new DirectoryInfo(frmPath); DirectoryInfo[] dirs = dirInfo.GetDirectories(); foreach (DirectoryInfo item in dirs) { if (item.FullName.Contains(".svn")) { continue; } string[] fls = System.IO.Directory.GetFiles(item.FullName); if (fls.Length == 0) { continue; } SysFormTree fs = new SysFormTree(); fs.No = item.Name.Substring(0, item.Name.IndexOf('.')); fs.Name = item.Name.Substring(item.Name.IndexOf('.')); fs.ParentNo = "0"; fs.Insert(); foreach (string f in fls) { try { msg += "@开始调度表单模板文件:" + f; System.IO.FileInfo info = new System.IO.FileInfo(f); if (info.Extension != ".xml") { continue; } ds = new DataSet(); ds.ReadXml(f); MapData md = MapData.ImpMapData(ds, false); md.FK_FrmSort = fs.No; md.Update(); } catch (Exception ex) { msg += "@调度失败,文件:" + f + ",异常信息:" + ex.Message; } } } #endregion 5.恢复表单数据. #region 6.恢复流程数据. //删除所有的流程数据. Flows flsEns = new Flows(); flsEns.RetrieveAll(); foreach (Flow fl in flsEns) { fl.DoDelete(); //删除流程. } dirInfo = new DirectoryInfo(path + "\\Flow\\"); dirs = dirInfo.GetDirectories(); //删除数据. FlowSorts fsRoots = new FlowSorts(); fsRoots.ClearTable(); //生成流程树. FlowSort fsRoot = new FlowSort(); fsRoot.No = "99"; fsRoot.Name = "流程树"; fsRoot.ParentNo = "0"; fsRoot.DirectInsert(); foreach (DirectoryInfo dir in dirs) { if (dir.FullName.Contains(".svn")) { continue; } string[] fls = System.IO.Directory.GetFiles(dir.FullName); if (fls.Length == 0) { continue; } FlowSort fs = new FlowSort(); fs.No = dir.Name.Substring(0, dir.Name.IndexOf('.')); fs.Name = dir.Name.Substring(3); fs.ParentNo = fsRoot.No; fs.Insert(); foreach (string filePath in fls) { msg += "@开始调度流程模板文件:" + filePath; Flow myflow = BP.WF.Flow.DoLoadFlowTemplate(fs.No, filePath, ImpFlowTempleteModel.AsTempleteFlowNo); msg += "@流程:" + myflow.Name + "装载成功。"; System.IO.FileInfo info = new System.IO.FileInfo(filePath); myflow.Name = info.Name.Replace(".xml", ""); if (myflow.Name.Substring(2, 1) == ".") { myflow.Name = myflow.Name.Substring(3); } myflow.DirectUpdate(); } } #endregion 6.恢复流程数据. BP.DA.Log.DefaultLogWriteLineInfo(msg); //删除多余的空格. BP.WF.DTS.DeleteBlankGroupField dts = new DeleteBlankGroupField(); dts.Do(); //执行生成签名. GenerSiganture gs = new GenerSiganture(); gs.Do(); return(msg); }
public string Do(string doWhat, string para1, bool isLogin) { // 如果admin账户登陆时有错误发生,则返回错误信息 var result = LetAdminLogin("CH", isLogin); if (string.IsNullOrEmpty(result) == false) { return(result); } switch (doWhat) { case "GenerFlowTemplete": Flow temp = new BP.WF.Flow(para1); return(null); case "GetFlowSorts": //获取所有流程类型 DataTable dtSorts = null; try { dtSorts = BP.DA.DBAccess.RunSQLReturnTable("SELECT no,name FROM WF_FlowSort"); } catch (Exception ex) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = true, msg = string.Empty, data = dtSorts.Rows.Cast <DataRow>().Select(dr => new { Key = dr["no"].ToString(), Value = dr["name"].ToString() }) })); case "NewSameLevelFrmSort": //创建同级别的 表单树 目录. SysFormTree frmSort = null; try { var para = para1.Split(','); frmSort = new SysFormTree(para[0]); string sameNodeNo = frmSort.DoCreateSameLevelNode().No; frmSort = new SysFormTree(sameNodeNo); frmSort.Name = para[1]; frmSort.Update(); return(null); } catch (Exception ex) { return("Do Method NewFormSort Branch has a error , para:\t" + para1 + ex.Message); } case "NewSubLevelFrmSort": //创建子级别的 表单树 目录. SysFormTree frmSortSub = null; try { var para = para1.Split(','); frmSortSub = new SysFormTree(para[0]); string sameNodeNo = frmSortSub.DoCreateSubNode().No; frmSortSub = new SysFormTree(sameNodeNo); frmSortSub.Name = para[1]; frmSortSub.Update(); return(null); } catch (Exception ex) { return("Do Method NewSubLevelFrmSort Branch has a error , para:\t" + para1 + ex.Message); } case "NewSameLevelFlowSort": //创建同级别的 流程树 目录. FlowSort fs = null; try { var para = para1.Split(','); fs = new FlowSort(para[0]); string sameNodeNo = fs.DoCreateSameLevelNode().No; fs = new FlowSort(sameNodeNo); fs.Name = para[1]; fs.Update(); return (Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = string.Empty, data = fs.No })); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("Do Method NewSameLevelFlowSort Branch has a error , para:\t" + para1 + ex.Message); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "NewSubFlowSort": //创建子级别的 表单树 目录. try { var para = para1.Split(','); FlowSort fsSub = new FlowSort(para[0]); string subNodeNo = fsSub.DoCreateSubNode().No; FlowSort subFlowSort = new FlowSort(subNodeNo); subFlowSort.Name = para[1]; subFlowSort.Update(); return (Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = string.Empty, data = subFlowSort.No })); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("Do Method NewSubFlowSort Branch has a error , para:\t" + ex.Message); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "EditFlowSort": //编辑表单树. try { var para = para1.Split(','); fs = new FlowSort(para[0]); fs.Name = para[1]; fs.Save(); return (Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = string.Empty, data = fs.No })); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("Do Method EditFlowSort Branch has a error , para:\t" + para1 + ex.Message); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "NewFlow": //创建新流程. Flow fl = new Flow(); try { string[] ps = para1.Split(','); if (ps.Length != 5) { throw new Exception("@创建流程参数错误"); } string fk_floSort = ps[0]; //类别编号. string flowName = ps[1]; // 流程名称. DataStoreModel dataSaveModel = (DataStoreModel)int.Parse(ps[2]); //数据保存方式。 string pTable = ps[3]; // 物理表名。 string FlowMark = ps[4]; // 流程标记. fl.DoNewFlow(fk_floSort, flowName, dataSaveModel, pTable, FlowMark); return (Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = string.Empty, data = new { no = fl.No, name = fl.Name } })); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("Do Method NewFlow Branch has a error , para:\t" + para1 + ex.Message); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "DelFlow": //删除流程. try { return (Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = WorkflowDefintionManager.DeleteFlowTemplete(para1) })); } catch (Exception ex) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "DelFlowSort": try { FlowSort delfs = new FlowSort(); delfs.No = para1; delfs.Delete(); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = true })); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("Do Method DelFlowSort Branch has a error , para:\t" + para1 + ex.Message); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "DelNode": try { if (!string.IsNullOrEmpty(para1)) { BP.WF.Node delNode = new BP.WF.Node(int.Parse(para1)); delNode.Delete(); } else { throw new Exception("@参数错误:" + para1); } } catch (Exception ex) { return("err:" + ex.Message); } return(null); case "GetSettings": return(SystemConfig.AppSettings[para1]); case "SaveFlowFrm": //保存独立表单. Entity en = null; try { AtPara ap = new AtPara(para1); string enName = ap.GetValStrByKey("EnName"); string pk = ap.GetValStrByKey("PKVal"); en = ClassFactory.GetEn(enName); en.ResetDefaultVal(); if (en == null) { throw new Exception("无效的类名:" + enName); } if (string.IsNullOrEmpty(pk) == false) { en.PKVal = pk; en.RetrieveFromDBSources(); } foreach (string key in ap.HisHT.Keys) { if (key == "PKVal") { continue; } en.SetValByKey(key, ap.HisHT[key].ToString().Replace('^', '@')); } en.Save(); return(en.PKVal as string); } catch (Exception ex) { if (en != null) { en.CheckPhysicsTable(); } return("Error:" + ex.Message); } case "ChangeNodeType": var p = para1.Split(','); try { if (p.Length != 3) { throw new Exception("@修改节点类型参数错误"); } //var sql = "UPDATE WF_Node SET Icon='{0}' WHERE FK_Flow='{1}' AND NodeID='{2}'"; var sql = "UPDATE WF_Node SET RunModel={0} WHERE FK_Flow='{1}' AND NodeID={2}"; DBAccess.RunSQL(string.Format(sql, p[0], p[1], p[2])); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = true })); } catch (Exception ex) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "ChangeNodeIcon": p = para1.Split(','); try { if (p.Length != 3) { throw new Exception("@修改节点图标参数错误"); } var sql = "UPDATE WF_Node SET Icon='{0}' WHERE FK_Flow='{1}' AND NodeID={2}"; DBAccess.RunSQL(string.Format(sql, p[0], p[1], p[2])); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = true })); } catch (Exception ex) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } default: throw new Exception("@没有约定的执行标记:" + doWhat); } }
public string DoType(string doType, string v1, string v2, string v3, string v4, string v5) { try { switch (doType) { case "FrmTreeUp": // 表单树 SysFormTree sft = new SysFormTree(); sft.DoUp(); return(null); case "FrmTreeDown": // 表单树 SysFormTree sft1 = new SysFormTree(); sft1.DoDown(); return(null); case "FrmUp": MapData md1 = new MapData(v1); md1.DoOrderDown(); return(null); case "FrmDown": MapData md = new MapData(v1); md.DoOrderDown(); return(null); case "AdminLogin": try { //if (BP.Sys.SystemConfig.IsDebug == true) // return null; BP.Port.Emp emp = new BP.Port.Emp(); emp.No = v1; emp.RetrieveFromDBSources(); if (emp.Pass == v2) { BP.Web.WebUser.SignInOfGener(emp); return (Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = string.Empty, data = new { no = emp.No, name = emp.Name, sid = BP.Web.WebUser.SID } })); } return(Newtonsoft.Json.JsonConvert.SerializeObject( new { success = false, msg = "用户名或密码错误" })); } catch (Exception ex) { return(Newtonsoft.Json.JsonConvert.SerializeObject( new { success = false, msg = ex.Message })); } case "DeleteFrmSort": SysFormTree fs = new SysFormTree(); fs.No = v1; fs.Delete(); SysFormTree ft = new SysFormTree(); ft.No = v1; ft.Delete(); return(null); case "DeleteFrm": //删除表单. case "DelFrm": MapData md4 = new MapData(); md4.No = v1; md4.Delete(); return(null); case "InitDesignerXml": string path = BP.Sys.SystemConfig.PathOfData + "\\Xml\\Designer.xml"; DataSet ds = new DataSet(); ds.ReadXml(path); ds = this.TurnXmlDataSet2SLDataSet(ds); return(Silverlight.DataSetConnector.Connector.ToXml(ds)); default: throw new Exception("没有判断的,功能编号" + doType); } } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("执行错误,功能编号" + doType + " error:" + ex.Message); throw new Exception("执行错误,功能编号" + doType + " error:" + ex.Message); } }
/// <summary> /// 树节点管理 /// </summary> public string Do() { string doWhat = getUTF8ToString("doWhat"); string para1 = getUTF8ToString("para1"); // 如果admin账户登陆时有错误发生,则返回错误信息 var result = LetAdminLogin("CH", true); if (string.IsNullOrEmpty(result) == false) { return(result); } switch (doWhat) { case "GetFlowSorts": //获取所有流程类型 try { FlowSorts flowSorts = new FlowSorts(); flowSorts.RetrieveAll(FlowSortAttr.Idx); return(BP.Tools.Entitis2Json.ConvertEntitis2GenerTree(flowSorts, "0")); } catch (Exception ex) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "NewSameLevelFrmSort": //创建同级别的 表单树 目录. SysFormTree frmSort = null; try { var para = para1.Split(','); frmSort = new SysFormTree(para[0]); string sameNodeNo = frmSort.DoCreateSameLevelNode().No; frmSort = new SysFormTree(sameNodeNo); frmSort.Name = para[1]; frmSort.Update(); return(null); } catch (Exception ex) { return("Do Method NewFormSort Branch has a error , para:\t" + para1 + ex.Message); } case "NewSubLevelFrmSort": //创建子级别的 表单树 目录. SysFormTree frmSortSub = null; try { var para = para1.Split(','); frmSortSub = new SysFormTree(para[0]); string sameNodeNo = frmSortSub.DoCreateSubNode().No; frmSortSub = new SysFormTree(sameNodeNo); frmSortSub.Name = para[1]; frmSortSub.Update(); return(null); } catch (Exception ex) { return("Do Method NewSubLevelFrmSort Branch has a error , para:\t" + para1 + ex.Message); } case "NewSameLevelFlowSort": //创建同级别的 流程树 目录. FlowSort fs = null; try { var para = para1.Split(','); fs = new FlowSort(para[0].Replace("F", "")); //传入的编号多出F符号,需要替换掉 string sameNodeNo = fs.DoCreateSameLevelNode().No; fs = new FlowSort(sameNodeNo); fs.Name = para[1]; fs.Update(); return (Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = string.Empty, data = "F" + fs.No })); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("Do Method NewSameLevelFlowSort Branch has a error , para:\t" + para1 + ex.Message); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "NewSubFlowSort": //创建子级别的 流程树 目录. try { var para = para1.Split(','); FlowSort fsSub = new FlowSort(para[0].Replace("F", ""));//传入的编号多出F符号,需要替换掉 string subNodeNo = fsSub.DoCreateSubNode().No; FlowSort subFlowSort = new FlowSort(subNodeNo); subFlowSort.Name = para[1]; subFlowSort.Update(); return (Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = string.Empty, data = "F" + subFlowSort.No })); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("Do Method NewSubFlowSort Branch has a error , para:\t" + ex.Message); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "EditFlowSort": //编辑表单树. try { var para = para1.Split(','); fs = new FlowSort(para[0].Replace("F", ""));//传入的编号多出F符号,需要替换掉 fs.Name = para[1]; fs.Save(); return (Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = string.Empty, data = fs.No })); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("Do Method EditFlowSort Branch has a error , para:\t" + para1 + ex.Message); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "NewFlow": //创建新流程. try { string[] ps = para1.Split(','); if (ps.Length != 6) { throw new Exception("@创建流程参数错误"); } string fk_floSort = ps[0]; //类别编号. fk_floSort = fk_floSort.Replace("F", ""); //传入的编号多出F符号,需要替换掉 string flowName = ps[1]; // 流程名称. DataStoreModel dataSaveModel = (DataStoreModel)int.Parse(ps[2]); //数据保存方式。 string pTable = ps[3]; // 物理表名。 string flowMark = ps[4]; // 流程标记. string flowVer = ps[5]; // 流程版本 string FK_Flow = BP.BPMN.Glo.NewFlow(fk_floSort, flowName, dataSaveModel, pTable, flowMark, flowVer); return (Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = string.Empty, data = new { no = FK_Flow, name = flowName } })); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("Do Method NewFlow Branch has a error , para:\t" + para1 + ex.Message); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "DelFlow": //删除流程. try { return(Newtonsoft.Json.JsonConvert.SerializeObject( new { success = true, msg = WorkflowDefintionManager.DeleteFlowTemplete(para1) })); } catch (Exception ex) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "DelFlowSort": try { string FK_FlowSort = para1.Replace("F", ""); string forceDel = getUTF8ToString("force"); FlowSort delfs = new FlowSort(); delfs.No = FK_FlowSort; //强制删除,不需判断是否含有子项。 if (forceDel == "true") { delfs.DeleteFlowSortSubNode_Force(); delfs.Delete(); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = true, reason = "" })); } //判断是否包含子类别 if (delfs.HisSubFlowSorts != null && delfs.HisSubFlowSorts.Count > 0) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, reason = "havesubsorts", msg = "此类别下包含子类别。" })); } //判断是否包含工作流程 if (delfs.HisFlows != null && delfs.HisFlows.Count > 0) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, reason = "haveflows", msg = "此类别下包含流程。" })); } //执行删除 delfs.Delete(); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = true, reason = "" })); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineError("Do Method DelFlowSort Branch has a error , para:\t" + para1 + ex.Message); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "DelNode": try { if (!string.IsNullOrEmpty(para1)) { BP.WF.Node delNode = new BP.WF.Node(int.Parse(para1)); delNode.Delete(); } else { throw new Exception("@参数错误:" + para1); } } catch (Exception ex) { return("err:" + ex.Message); } return(null); case "SetBUnit": try { if (!string.IsNullOrEmpty(para1)) { BP.WF.Node nd = new BP.WF.Node(int.Parse(para1)); nd.IsTask = !nd.IsBUnit; nd.Update(); } else { throw new Exception("@参数错误:" + para1); } } catch (Exception ex) { return("err:" + ex.Message); } return(null); case "GetSettings": return(SystemConfig.AppSettings[para1]); case "SaveFlowFrm": //保存流程表单. Entity en = null; try { AtPara ap = new AtPara(para1); string enName = ap.GetValStrByKey("EnName"); string pk = ap.GetValStrByKey("PKVal"); en = ClassFactory.GetEn(enName); en.ResetDefaultVal(); if (en == null) { throw new Exception("无效的类名:" + enName); } if (string.IsNullOrEmpty(pk) == false) { en.PKVal = pk; en.RetrieveFromDBSources(); } foreach (string key in ap.HisHT.Keys) { if (key == "PKVal") { continue; } en.SetValByKey(key, ap.HisHT[key].ToString().Replace('^', '@')); } en.Save(); return(en.PKVal as string); } catch (Exception ex) { if (en != null) { en.CheckPhysicsTable(); } return("Error:" + ex.Message); } case "ChangeNodeType": var p = para1.Split(','); try { if (p.Length != 3) { throw new Exception("@修改节点类型参数错误"); } //var sql = "UPDATE WF_Node SET Icon='{0}' WHERE FK_Flow='{1}' AND NodeID='{2}'"; var sql = "UPDATE WF_Node SET RunModel={0} WHERE FK_Flow='{1}' AND NodeID={2}"; DBAccess.RunSQL(string.Format(sql, p[0], p[1], p[2])); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = true })); } catch (Exception ex) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } case "ChangeNodeIcon": p = para1.Split(','); try { if (p.Length != 3) { throw new Exception("@修改节点图标参数错误"); } var sql = "UPDATE WF_Node SET Icon='{0}' WHERE FK_Flow='{1}' AND NodeID={2}"; DBAccess.RunSQL(string.Format(sql, p[0], p[1], p[2])); return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = true })); } catch (Exception ex) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message })); } default: throw new Exception("@没有约定的执行标记:" + doWhat); } }
public override object Do() { string msg = ""; #region 处理表单. // 调度表单文件。 SysFormTrees fss = new SysFormTrees(); fss.ClearTable(); //创建root. SysFormTree root = new SysFormTree(); root.No = "1"; root.Name = "表单库"; root.ParentNo = "0"; root.Insert(); string frmPath = SystemConfig.PathOfWebApp + "\\SDKFlowDemo\\FlowDemo\\Form\\"; DirectoryInfo dirInfo = new DirectoryInfo(frmPath); DirectoryInfo[] dirs = dirInfo.GetDirectories(); int i = 0; foreach (DirectoryInfo item in dirs) { if (item.FullName.Contains(".svn")) { continue; } string[] fls = System.IO.Directory.GetFiles(item.FullName); if (fls.Length == 0) { continue; } SysFormTree fs = new SysFormTree(); fs.No = item.Name.Substring(0, 2); fs.Name = item.Name.Substring(3); fs.ParentNo = "1"; fs.Idx = i++; fs.Insert(); foreach (string f in fls) { System.IO.FileInfo info = new System.IO.FileInfo(f); if (info.Extension != ".xml") { continue; } msg += "@开始调度表单模板文件:" + f; BP.DA.Log.DefaultLogWriteLineInfo("@开始调度表单模板文件:" + f); DataSet ds = new DataSet(); ds.ReadXml(f); try { MapData md = MapData.ImpMapData(ds); md.FK_FrmSort = fs.No; md.FK_FormTree = fs.No; md.AppType = "0"; md.Update(); } catch (Exception ex) { BP.DA.Log.DefaultLogWriteLineInfo("@装载表单模版文件:" + f + "出现错误," + ex.Message + " <br> " + ex.StackTrace); throw new Exception("@装载模版文件:" + f + "出现错误," + ex.Message + " <br> " + ex.StackTrace); } } } #endregion 处理表单. #region 处理流程. FlowSorts sorts = new FlowSorts(); sorts.ClearTable(); dirInfo = new DirectoryInfo(SystemConfig.PathOfWebApp + "\\SDKFlowDemo\\FlowDemo\\Flow\\"); dirs = dirInfo.GetDirectories(); FlowSort fsRoot = new FlowSort(); fsRoot.No = "99"; fsRoot.Name = "流程树"; fsRoot.ParentNo = "0"; fsRoot.DirectInsert(); foreach (DirectoryInfo dir in dirs) { if (dir.FullName.Contains(".svn")) { continue; } string[] fls = System.IO.Directory.GetFiles(dir.FullName); if (fls.Length == 0) { continue; } FlowSort fs = new FlowSort(); fs.No = dir.Name.Substring(0, 3); fs.Name = dir.Name.Substring(3); fs.ParentNo = fsRoot.No; fs.Insert(); foreach (string filePath in fls) { msg += "\t\n@开始调度流程模板文件:" + filePath; BP.DA.Log.DefaultLogWriteLineInfo("@开始调度流程模板文件:" + filePath); Flow myflow = BP.WF.Flow.DoLoadFlowTemplate(fs.No, filePath, ImpFlowTempleteModel.AsTempleteFlowNo); msg += "\t\n@流程:[" + myflow.Name + "]装载成功。"; System.IO.FileInfo info = new System.IO.FileInfo(filePath); myflow.Name = info.Name.Replace(".xml", ""); if (myflow.Name.Substring(2, 1) == ".") { myflow.Name = myflow.Name.Substring(3); } myflow.DirectUpdate(); } //调度它的下一级目录. DirectoryInfo dirSubInfo = new DirectoryInfo(SystemConfig.PathOfWebApp + "\\SDKFlowDemo\\FlowDemo\\Flow\\" + dir.Name); DirectoryInfo[] myDirs = dirSubInfo.GetDirectories(); foreach (DirectoryInfo mydir in myDirs) { if (mydir.FullName.Contains(".svn")) { continue; } string[] myfls = System.IO.Directory.GetFiles(mydir.FullName); if (myfls.Length == 0) { continue; } // 流程类别. FlowSort subFlowSort = fs.DoCreateSubNode() as FlowSort; subFlowSort.Name = mydir.Name.Substring(3); subFlowSort.Update(); foreach (string filePath in myfls) { msg += "\t\n@开始调度流程模板文件:" + filePath; BP.DA.Log.DefaultLogWriteLineInfo("@开始调度流程模板文件:" + filePath); Flow myflow = BP.WF.Flow.DoLoadFlowTemplate(subFlowSort.No, filePath, ImpFlowTempleteModel.AsTempleteFlowNo); msg += "\t\n@流程:" + myflow.Name + "装载成功。"; System.IO.FileInfo info = new System.IO.FileInfo(filePath); myflow.Name = info.Name.Replace(".xml", ""); if (myflow.Name.Substring(2, 1) == ".") { myflow.Name = myflow.Name.Substring(3); } myflow.DirectUpdate(); } } } //执行流程检查. Flows flsEns = new Flows(); flsEns.RetrieveAll(); foreach (Flow fl in flsEns) { fl.DoCheck(); } #endregion 处理流程. BP.DA.Log.DefaultLogWriteLineInfo(msg); //删除多余的空格. BP.WF.DTS.DeleteBlankGroupField dts = new DeleteBlankGroupField(); dts.Do(); return(msg); }
/// <summary> /// 获取流程表单树 /// </summary> /// <returns></returns> private string GetFlowFormTree() { string flowId = getUTF8ToString("flowId"); string parentNo = getUTF8ToString("parentno"); string isFirstLoad = getUTF8ToString("isFirstLoad"); //获取子节点内容 SysFormTrees flowFormTrees = new SysFormTrees(); QueryObject objInfo = new QueryObject(flowFormTrees); objInfo.AddWhere("ParentNo", parentNo); objInfo.addOrderBy("Idx"); objInfo.DoQuery(); if (isFirstLoad == "true") { SysFormTree formTree = new SysFormTree("0"); StringBuilder appSend = new StringBuilder(); appSend.Append("["); appSend.Append("{"); appSend.Append("\"id\":\"0\""); appSend.Append(",\"text\":\"" + formTree.Name + "\""); appSend.Append(",iconCls:\"icon-0\""); appSend.Append(",\"children\":"); appSend.Append("["); //获取节点下的表单 SysForms sysForms = new SysForms(); QueryObject objFlowForms = new QueryObject(sysForms); objFlowForms.AddWhere(SysFormAttr.FK_FormTree, parentNo); objFlowForms.addOrderBy(SysFormAttr.Name); objFlowForms.DoQuery(); //添加子项文件夹 foreach (SysFormTree item in flowFormTrees) { //获取已选择项 FrmNodes flowForms = new FrmNodes(); QueryObject objFlowForm = new QueryObject(flowForms); objFlowForm.AddWhere("FK_Flow", flowId); objFlowForm.addAnd(); objFlowForm.AddWhere("FK_FlowFormTree", item.No); objFlowForm.DoQuery(); if (flowForms != null && flowForms.Count > 0) { } } //添加表单 foreach (SysForm sysForm in sysForms) { appSend.Append("{"); appSend.Append("\"id\":\"0\""); appSend.Append(",\"text\":\"" + formTree.Name + "\""); appSend.Append(",iconCls:\"icon-3\""); appSend.Append("},"); } appSend.Append("]"); appSend.Append("}"); appSend.Append("]"); return(appSend.ToString()); } return(""); }
/// <summary> /// 执行 /// </summary> /// <returns>返回执行结果</returns> public override object Do() { string path = "C:\\CCFlowTemplete" + DateTime.Now.ToString("yy年MM月dd日HH时mm分ss秒"); if (System.IO.Directory.Exists(path) == false) { System.IO.Directory.CreateDirectory(path); } #region 1.备份流程类别信息 DataSet dsFlows = new DataSet(); //WF_FlowSort DataTable dt = DBAccess.RunSQLReturnTable("SELECT * FROM WF_FlowSort"); dt.TableName = "WF_FlowSort"; dsFlows.Tables.Add(dt); dsFlows.WriteXml(path + "\\FlowTables.xml"); #endregion 备份流程类别信息. #region 2.备份组织结构. DataSet dsPort = new DataSet(); //emps dt = DBAccess.RunSQLReturnTable("SELECT * FROM Port_Emp"); dt.TableName = "Port_Emp"; dsPort.Tables.Add(dt); //Port_Dept dt = DBAccess.RunSQLReturnTable("SELECT * FROM Port_Dept"); dt.TableName = "Port_Dept"; dsPort.Tables.Add(dt); //Port_Station dt = DBAccess.RunSQLReturnTable("SELECT * FROM Port_Station"); dt.TableName = "Port_Station"; dsPort.Tables.Add(dt); //Port_EmpStation dt = DBAccess.RunSQLReturnTable("SELECT * FROM Port_DeptEmpStation"); dt.TableName = "Port_DeptEmpStation"; dsPort.Tables.Add(dt); dsPort.WriteXml(path + "\\PortTables.xml"); #endregion 备份表单相关数据. #region 3.备份系统数据 DataSet dsSysTables = new DataSet(); //Sys_EnumMain dt = DBAccess.RunSQLReturnTable("SELECT * FROM Sys_EnumMain"); dt.TableName = "Sys_EnumMain"; dsSysTables.Tables.Add(dt); //Sys_Enum dt = DBAccess.RunSQLReturnTable("SELECT * FROM Sys_Enum"); dt.TableName = "Sys_Enum"; dsSysTables.Tables.Add(dt); //Sys_FormTree dt = DBAccess.RunSQLReturnTable("SELECT * FROM Sys_FormTree"); dt.TableName = "Sys_FormTree"; dsSysTables.Tables.Add(dt); dsSysTables.WriteXml(path + "\\SysTables.xml"); #endregion 备份系统数据. #region 4.备份表单相关数据. string pathOfTables = path + "\\SFTables"; System.IO.Directory.CreateDirectory(pathOfTables); SFTables tabs = new SFTables(); tabs.RetrieveAll(); foreach (SFTable item in tabs) { if (item.No.Contains(".")) { continue; } if (item.SrcType != SrcType.CreateTable) { continue; } try { string sql = "SELECT * FROM " + item.No + " "; DataSet ds = new DataSet(); ds.Tables.Add(BP.DA.DBAccess.RunSQLReturnTable(sql)); ds.WriteXml(pathOfTables + "\\" + item.No + ".xml"); } catch { } } #endregion 备份表单相关数据. #region 5.备份流程. Flows fls = new Flows(); fls.RetrieveAllFromDBSource(); foreach (Flow fl in fls) { FlowSort fs = new FlowSort(); fs.No = fl.FK_FlowSort; fs.RetrieveFromDBSources(); string pathDir = path + "\\Flow\\" + fs.No + "." + fs.Name + "\\"; if (System.IO.Directory.Exists(pathDir) == false) { System.IO.Directory.CreateDirectory(pathDir); } fl.DoExpFlowXmlTemplete(pathDir); } #endregion 备份流程. #region 6.备份表单. MapDatas mds = new MapDatas(); mds.RetrieveAllFromDBSource(); foreach (MapData md in mds) { if (md.FK_FrmSort.Length < 2) { continue; } SysFormTree fs = new SysFormTree(); fs.No = md.FK_FormTree; fs.RetrieveFromDBSources(); string pathDir = path + "\\Form\\" + fs.No + "." + fs.Name; if (System.IO.Directory.Exists(pathDir) == false) { System.IO.Directory.CreateDirectory(pathDir); } DataSet ds = BP.Sys.CCFormAPI.GenerHisDataSet(md.No); ds.WriteXml(pathDir + "\\" + md.Name + ".xml"); } #endregion 备份表单. return("执行成功,存放路径:" + path); }