/// <summary> /// 执行 /// </summary> /// <returns>返回执行结果</returns> public override object Do() { string oldNo = this.GetValStrByKey("P1"); string newNo = this.GetValStrByKey("P2"); string sqls = ""; sqls += "UPDATE Port_Emp Set No='" + newNo + "' WHERE No='" + oldNo + "'"; sqls += "\t\n UPDATE " + BP.WF.Glo.EmpStation + " Set FK_Emp='" + newNo + "' WHERE FK_Emp='" + oldNo + "'"; MapDatas mds = new MapDatas(); mds.RetrieveAll(); foreach (MapData md in mds) { MapAttrs attrs = new MapAttrs(md.No); foreach (MapAttr attr in attrs) { if (attr.UIIsEnable == false && attr.DefValReal == "@WebUser.No") { sqls += "\t\n UPDATE " + md.PTable + " SET "; } continue; } sqls += "UPDATE"; } return("执行成功..." + sqls); }
/// <summary> /// 执行 /// </summary> /// <returns>返回执行结果</returns> public override object Do() { string rpt = BP.PubClass.DBRpt(BP.DBLevel.High); // 手动升级. 2011-07-08 补充节点字段分组. string sql = "DELETE FROM Sys_EnCfg WHERE No='BP.WF.Ext.NodeSheet'"; BP.DA.DBAccess.RunSQL(sql); sql = "INSERT INTO Sys_EnCfg(No,GroupTitle) VALUES ('BP.WF.Ext.NodeSheet','NodeID=基本配置@WarningDays=考核属性@SendLab=功能按钮标签与状态')"; BP.DA.DBAccess.RunSQL(sql); // 修复因bug丢失的字段. MapDatas mds = new MapDatas(); mds.RetrieveAll(); foreach (MapData md in mds) { string nodeid = md.No.Replace("ND", ""); try { BP.WF.Node nd = new Node(int.Parse(nodeid)); nd.RepareMap(); continue; } catch (Exception ex) { } MapAttr attr = new MapAttr(); if (attr.IsExit(MapAttrAttr.KeyOfEn, "OID", MapAttrAttr.FK_MapData, md.No) == false) { attr.FK_MapData = md.No; attr.KeyOfEn = "OID"; attr.Name = "OID"; attr.MyDataType = BP.DA.DataType.AppInt; attr.UIContralType = UIContralType.TB; attr.LGType = FieldTypeS.Normal; attr.UIVisible = false; attr.UIIsEnable = false; attr.DefVal = "0"; attr.HisEditType = BP.En.EditType.Readonly; attr.Insert(); } } return("执行成功..."); }
/// <summary> /// 执行 /// </summary> /// <returns>返回执行结果</returns> public override object Do() { MapDatas mds = new MapDatas(); mds.RetrieveAll(); string msg = ""; Node nd = new Node(); foreach (MapData item in mds) { if (item.No.Contains("ND") == false) { continue; } string temp = item.No.Replace("ND", ""); int nodeID = 0; try { nodeID = int.Parse(temp); } catch { continue; } nd.NodeID = nodeID; if (nd.IsExits == false) { msg += "@" + item.No + "," + item.Name; //删除该模版. item.Delete(); } } if (msg == "") { msg = "数据良好."; } else { msg = "如下节点已经删除,但是节点表单数据没有被删除." + msg; } return(msg); }
/// <summary> /// 执行 /// </summary> /// <returns>返回执行结果</returns> public override object Do() { if (BP.Web.WebUser.No != "admin") { return("非法的用户执行。"); } //DBAccess.RunSQL("DELETE FROM WF_CHOfFlow"); DBAccess.RunSQL("DELETE FROM WF_Bill"); DBAccess.RunSQL("DELETE FROM WF_GenerWorkerlist"); DBAccess.RunSQL("DELETE FROM WF_GenerWorkFlow"); DBAccess.RunSQL("DELETE FROM WF_ReturnWork"); DBAccess.RunSQL("DELETE FROM WF_SelectAccper"); DBAccess.RunSQL("DELETE FROM WF_TransferCustom"); DBAccess.RunSQL("DELETE FROM WF_RememberMe"); DBAccess.RunSQL("DELETE FROM Sys_FrmAttachmentDB"); DBAccess.RunSQL("DELETE FROM WF_CCList"); DBAccess.RunSQL("DELETE FROM WF_CH"); //删除考核. Flows fls = new Flows(); fls.RetrieveAll(); foreach (Flow item in fls) { try { DBAccess.RunSQL("DELETE FROM ND" + int.Parse(item.No) + "Track"); } catch { } } Nodes nds = new Nodes(); foreach (Node nd in nds) { try { Work wk = nd.HisWork; DBAccess.RunSQL("DELETE FROM " + wk.EnMap.PhysicsTable); } catch { } } MapDatas mds = new MapDatas(); mds.RetrieveAll(); foreach (MapData nd in mds) { try { DBAccess.RunSQL("DELETE FROM " + nd.PTable); } catch { } } MapDtls dtls = new MapDtls(); dtls.RetrieveAll(); foreach (MapDtl dtl in dtls) { try { DBAccess.RunSQL("DELETE FROM " + dtl.PTable); } catch { } } return("执行成功..."); }
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); }