protected void btnImport_Click(object sender, EventArgs e) { if (!file.HasFile) { AlertAndBack("请选择组织结构Excel文件(*.xls)!"); return; } //检查是否是.xls格式,2007格式,下面的方法有问题,暂时限定为xls格式 if (Path.GetExtension(file.PostedFile.FileName).ToLower() != ".xls") { AlertAndBack("组织结构Excel文件必须是*.xls(Microsoft Excel 97-2003格式)!"); return; } var updir = Path.Combine(BP.Sys.SystemConfig.PathOfDataUser, "UploadFile"); if (Directory.Exists(updir) == false) { Directory.CreateDirectory(updir); } var xls = Path.Combine(updir, "Org_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"); file.PostedFile.SaveAs(xls); var excel = new NPOIExcel(xls); //检查是否包含3个表 var sheets = excel.GetSheetNames();// BP.DA.DBLoad.GenerTableNames(xls); if (sheets.Contains("岗位") == false || sheets.Contains("部门") == false || sheets.Contains("人员") == false) { DeleteFile(xls); AlertAndBack("组织结构Excel文件必须由“ccflow组织结构批量导入模板”文件编辑而成,请下载模板文件重新编辑,再进行导入!"); return; } var colStations = new[] { "岗位名称", "岗位类型" }; var colDepts = new[] { "部门名称", "上级部门名称", "部门负责人" }; var colEmps = new[] { "人员帐号", "人员姓名", "人员编号", "部门", "岗位", "职务", "电话", "邮箱", "直属领导" }; var dtStation = excel.ExcelToDataTable("岗位", true); // BP.DA.DBLoad.GetTableByExt(xls, "SELECT * FROM [岗位$]"); //岗位名称*,岗位类型* var dtDept = excel.ExcelToDataTable("部门", true); // BP.DA.DBLoad.GetTableByExt(xls, "SELECT * FROM [部门$]"); //部门名称*,上级部门名称*,部门负责人 var dtEmp = excel.ExcelToDataTable("人员", true); // BP.DA.DBLoad.GetTableByExt(xls, "SELECT * FROM [人员$]"); //人员帐号*,人员姓名*,人员编号,部门*,岗位*,职务,电话,邮箱,直属领导 //初步检查列数 if (dtStation.Columns.Count < 2 || dtDept.Columns.Count < 3 || dtEmp.Columns.Count < 9) { AlertAndBack("组织结构Excel文件结构错误,请重新下载模板文件编辑后,再进行导入!"); return; } //检查岗位列 if (CheckColumns(dtStation, colStations, "岗位") == false) { return; } //检查部门列 if (CheckColumns(dtDept, colDepts, "部门") == false) { return; } //检查人员列 if (CheckColumns(dtEmp, colEmps, "人员") == false) { return; } excel.Dispose(); //return; //获取数据库中已有数据,便于下面的数据对比 var isBPM = BP.WF.Glo.OSModel == BP.WF.OSModel.BPM; var stations = new BP.GPM.Stations(); var stationTypes = new BP.GPM.StationTypes(); var depts = new BP.GPM.Depts(); var emps = new BP.GPM.Emps(); var deptEmpSts = new BP.GPM.DeptEmpStations(); stations.RetrieveAll(); stationTypes.RetrieveAll(); depts.RetrieveAll(); emps.RetrieveAll(); deptEmpSts.RetrieveAll(); //集成模式,涉及数据 var empDepts = new EmpDepts(); var empSts = new EmpStations(); empDepts.RetrieveAll(); empSts.RetrieveAll(); //BPM独立模式,涉及数据 var duties = new BP.GPM.Dutys(); var deptDuties = new BP.GPM.DeptDutys(); var deptSts = new BP.GPM.DeptStations(); var deptEmps = new BP.GPM.DeptEmps(); duties.RetrieveAll(); deptDuties.RetrieveAll(); deptSts.RetrieveAll(); deptEmps.RetrieveAll(); //定义错误记录存储表 var dtStationError = dtStation.Clone(); var dtDeptError = dtDept.Clone(); var dtEmpError = dtEmp.Clone(); DataRow drError = null; bool haveDuty = false; BP.GPM.Station st = null; BP.GPM.StationType stType = null; BP.GPM.Dept dept = null; BP.GPM.Emp emp = null; BP.GPM.DeptEmpStation des = null; BP.Port.EmpDept empDept = null; BP.Port.EmpStation empSt = null; BP.GPM.Duty duty = null; BP.GPM.DeptDuty deptDuty = null; BP.GPM.DeptStation deptSt = null; BP.GPM.DeptEmp deptEmp = null; //检查数据,并将符合规范的数据写入数据库 #region //岗位信息 foreach (DataRow dr in dtStation.Rows) { drError = dtStationError.NewRow(); dtStationError.Rows.Add(drError); //检查岗位,名称、类型必须填写,且名称不能重复 if (IsCellNull(dr, "岗位名称")) { drError["岗位名称"] = "岗位名称必须填写!"; continue; } if (IsCellNull(dr, "岗位类型")) { drError["岗位类型"] = "岗位类型必须填写!"; continue; } //判断数据库中是否已经存在 if (stations.GetEntityByKey(BP.GPM.StationAttr.Name, dr["岗位名称"].ToString()) != null) { continue; } stType = stationTypes.GetEntityByKey(BP.GPM.StationTypeAttr.Name, dr["岗位类型"].ToString()) as BP.GPM.StationType; if (stType == null) { stType = new BP.GPM.StationType { Name = dr["岗位类型"].ToString() }; stType.No = stType.GenerNewNo; stType.Insert(); stationTypes.AddEntity(stType); } st = new BP.GPM.Station { Name = dr["岗位名称"].ToString(), FK_StationType = stType.No }; //st.No = st.GenerNewNo; st.Insert(); stations.AddEntity(st); } #endregion #region //部门信息 BP.GPM.Dept parentDept = null; foreach (DataRow dr in dtDept.Rows) { drError = dtDeptError.NewRow(); dtDeptError.Rows.Add(drError); //检查部门,名称必须填写,且名称不能重复 if (IsCellNull(dr, "部门名称")) { drError["部门名称"] = "部门名称必须填写!"; continue; } if (!IsCellNull(dr, "上级部门名称")) { parentDept = depts.GetEntityByKey(EntityTreeAttr.Name, dr["上级部门名称"].ToString()) as BP.GPM.Dept; if (parentDept == null) { drError["上级部门名称"] = "上级部门名称 填写错误,未找到上级部门“" + dr["上级部门名称"] + "”!"; continue; } } else { parentDept = null; } //判断数据库中是否已经存在 if (depts.GetEntityByKey(EntityTreeAttr.Name, dr["部门名称"].ToString(), EntityTreeAttr.ParentNo, parentDept == null ? "0" : parentDept.No) != null) { continue; } if (parentDept == null) { //增加根部门 dept = depts.GetEntityByKey(EntityTreeAttr.ParentNo, "0") as BP.GPM.Dept; if (dept == null) { //不存在根部门 dept = new BP.GPM.Dept { No = "100", Name = dr["部门名称"].ToString(), ParentNo = "0", Leader = dr["部门负责人"].ToString(), IsDir = false }; dept.Insert(); } else { //已经存在根部门,建立一个同级别的根部门 dept.Name = dr["部门名称"].ToString(); dept.Leader = dr["部门负责人"].ToString(); //var currDept = dept.DoCreateSameLevelNode(); //dept = new BP.GPM.Dept(currDept.No) // { // Name = dr["部门名称"].ToString(), // Leader = dr["部门负责人"].ToString() // }; dept.Update(); } depts.AddEntity(dept); } else { //增加非根部门 var currDept = parentDept.DoCreateSubNode(); dept = new BP.GPM.Dept(currDept.No) { Name = dr["部门名称"].ToString(), Leader = dr["部门负责人"].ToString() }; dept.Update(); depts.AddEntity(dept); } } #endregion #region //人员信息 foreach (DataRow dr in dtEmp.Rows) { drError = dtEmpError.NewRow(); dtEmpError.Rows.Add(drError); #region //检查人员,帐号、姓名、部门、岗位必须填写 if (IsCellNull(dr, "人员帐号")) { drError["人员帐号"] = "人员帐号必须填写!"; continue; } if (IsCellNull(dr, "人员姓名")) { drError["人员姓名"] = "人员姓名必须填写!"; continue; } if (IsCellNull(dr, "部门")) { drError["部门"] = "部门必须填写!"; continue; } if (IsCellNull(dr, "岗位")) { drError["岗位"] = "岗位必须填写!"; continue; } #endregion //判断人员在数据库中是否已经存在 emp = emps.GetEntityByKey(EntityNoAttr.No, dr["人员帐号"].ToString(), EntityNoNameAttr.Name, dr["人员姓名"].ToString()) as BP.GPM.Emp; dept = depts.GetEntityByKey(BP.GPM.DeptAttr.Name, dr["部门"].ToString()) as BP.GPM.Dept; st = stations.GetEntityByKey(BP.GPM.StationAttr.Name, dr["岗位"].ToString()) as BP.GPM.Station; if (dept == null) { drError["部门"] = string.Format("部门填写错误,“{0}” 在部门中未查到!", dr["部门"]); continue; } if (st == null) { drError["岗位"] = string.Format("岗位填写错误,“{0}” 在岗位中未查到!", dr["岗位"]); continue; } if (isBPM) { //BPM模式,Duty,DeptDuty if (!IsCellNull(dr, "职务")) { duty = duties.GetEntityByKey(BP.GPM.DutyAttr.Name, dr["职务"].ToString()) as BP.GPM.Duty; } else { if (duties.Count == 0) { duty = new BP.GPM.Duty { Name = "默认职务" }; duty.Insert(); duties.AddEntity(duty); } else { duty = duties[0] as BP.GPM.Duty; } } if (duty == null) { duty = new BP.GPM.Duty { Name = dr["职务"].ToString() }; //duty.No = duty.GenerNewNo; duty.Insert(); duties.AddEntity(duty); } deptDuty = deptDuties.GetEntityByKey(BP.GPM.DeptDutyAttr.FK_Dept, dept.No, BP.GPM.DeptDutyAttr.FK_Duty, duty.No) as BP.GPM.DeptDuty; if (deptDuty == null) { deptDuty = new BP.GPM.DeptDuty { FK_Dept = dept.No, FK_Duty = duty.No }; deptDuty.Insert(); deptDuties.AddEntity(deptDuty); } } if (emp != null) { //如果人员存在,则判断此人员的部门与岗位,如果部门、岗位不存在,则增加部门岗位关联等 //此处不对已存在人员的其他信息进行比对修改,如人员编号,邮箱,电话等 des = deptEmpSts.GetEntityByKey(BP.GPM.DeptEmpStationAttr.FK_Emp, emp.No, BP.GPM.DeptEmpStationAttr.FK_Dept, dept.No, BP.GPM.DeptEmpStationAttr.FK_Station, st.No) as BP.GPM.DeptEmpStation; if (des != null) { drError["人员帐号"] = drError["人员姓名"] = drError["部门"] = drError["岗位"] = "此人员已经增加过,“人员+部门+岗位”不能重复!"; continue; } } else { //此人员不存在 emp = new BP.GPM.Emp { No = dr["人员帐号"].ToString(), Name = dr["人员姓名"].ToString(), Pass = "******", FK_Dept = dept.No }; if (isBPM) { emp.EmpNo = dr["人员编号"] as string; emp.FK_Duty = duty.No; emp.Email = dr["邮箱"] as string; emp.Tel = dr["电话"] as string; emp.Leader = dr["直属领导"] as string; emp.SetValByKey(BP.GPM.EmpAttr.NumOfDept, 1); } emp.Insert(); emps.AddEntity(emp); } des = new BP.GPM.DeptEmpStation { FK_Emp = emp.No, FK_Dept = dept.No, FK_Station = st.No }; des.Insert(); deptEmpSts.AddEntity(des); if (isBPM) { //BPM模式,DeptStation,DeptEmp deptSt = deptSts.GetEntityByKey(BP.GPM.DeptStationAttr.FK_Dept, dept.No, BP.GPM.DeptStationAttr.FK_Station, st.No) as BP.GPM.DeptStation; if (deptSt == null) { deptSt = new BP.GPM.DeptStation { FK_Dept = dept.No, FK_Station = st.No }; deptSt.Insert(); deptSts.AddEntity(deptSt); } deptEmp = deptEmps.GetEntityByKey(BP.GPM.DeptEmpAttr.FK_Dept, dept.No, BP.GPM.DeptEmpAttr.FK_Emp, emp.No) as BP.GPM.DeptEmp; if (deptEmp == null) { deptEmp = new BP.GPM.DeptEmp { FK_Dept = dept.No, FK_Emp = emp.No, FK_Duty = duty.No }; deptEmp.Insert(); deptEmps.AddEntity(deptEmp); } } else { //集成模式,EmpDept,EmpStation empDept = empDepts.GetEntityByKey(EmpDeptAttr.FK_Dept, dept.No, EmpDeptAttr.FK_Emp, emp.No) as EmpDept; if (empDept == null) { empDept = new EmpDept { FK_Emp = emp.No, FK_Dept = dept.No }; empDept.Insert(); empDepts.AddEntity(empDept); } empSt = empSts.GetEntityByKey(EmpStationAttr.FK_Emp, emp.No, EmpStationAttr.FK_Station, st.No) as EmpStation; if (empSt == null) { empSt = new EmpStation { FK_Emp = emp.No, FK_Station = st.No }; empSt.Insert(); empSts.AddEntity(empSt); } } } #endregion #region //前台输出岗位信息 pub1.AddTableNormal(); pub1.AddTR(); pub1.AddTDGroupTitle("style='text-align:center;width:60px;'", "序"); pub1.AddTDGroupTitle("style='width:140px;'", "名称"); pub1.AddTDGroupTitle("类型"); pub1.AddTREnd(); for (var i = 0; i < dtStation.Rows.Count; i++) { drError = dtStationError.Rows[i]; pub1.AddTR(); pub1.AddTDIdx(i + 1); if (IsCellNull(drError, "岗位名称")) { pub1.AddTD(dtStation.Rows[i]["岗位名称"].ToString()); } else { pub1.AddTD("style='background-color:yellow;color:red;' title='" + drError["岗位名称"] + "'", dtStation.Rows[i]["岗位名称"].ToString()); } if (IsCellNull(drError, "岗位类型")) { pub1.AddTD(dtStation.Rows[i]["岗位类型"].ToString()); } else { pub1.AddTD("style='background-color:yellow;color:red;' title='" + drError["岗位类型"] + "'", dtStation.Rows[i]["岗位类型"].ToString()); } pub1.AddTREnd(); } pub1.AddTableEnd(); #endregion #region //前台输出部门信息 pub2.AddTableNormal(); pub2.AddTR(); pub2.AddTDGroupTitle("style='text-align:center;width:60px;'", "序"); pub2.AddTDGroupTitle("style='width:140px;'", "名称"); pub2.AddTDGroupTitle("style='width:140px;'", "上级名称"); pub2.AddTDGroupTitle("部门负责人"); pub2.AddTREnd(); for (var i = 0; i < dtDept.Rows.Count; i++) { drError = dtDeptError.Rows[i]; pub2.AddTR(); pub2.AddTDIdx(i + 1); if (IsCellNull(drError, "部门名称")) { pub2.AddTD(dtDept.Rows[i]["部门名称"].ToString()); } else { pub2.AddTD("style='background-color:yellow;color:red;' title='" + drError["部门名称"] + "'", dtDept.Rows[i]["部门名称"].ToString()); } if (IsCellNull(drError, "上级部门名称")) { pub2.AddTD(dtDept.Rows[i]["上级部门名称"].ToString()); } else { pub2.AddTD("style='background-color:yellow;color:red;' title='" + drError["上级部门名称"] + "'", dtDept.Rows[i]["上级部门名称"].ToString()); } pub2.AddTD(dtDept.Rows[i]["部门负责人"].ToString()); pub2.AddTREnd(); } pub2.AddTableEnd(); #endregion #region //前台输出人员信息 pub3.AddTableNormal(); pub3.AddTR(); pub3.AddTDGroupTitle("style='text-align:center;width:60px;'", "序"); pub3.AddTDGroupTitle("style='width:120px;'", "帐号"); pub3.AddTDGroupTitle("style='width:100px;'", "姓名"); if (isBPM) { pub3.AddTDGroupTitle("style='width:100px;'", "编号"); } pub3.AddTDGroupTitle("style='width:180px;'", "部门"); if (!isBPM) { pub3.AddTDGroupTitle("岗位"); } else { pub3.AddTDGroupTitle("style='width:100px;'", "岗位"); pub3.AddTDGroupTitle("style='width:100px;'", "职务"); pub3.AddTDGroupTitle("style='width:120px;'", "电话"); pub3.AddTDGroupTitle("style='width:160px;'", "邮箱"); pub3.AddTDGroupTitle("直属领导"); } pub3.AddTREnd(); for (var i = 0; i < dtEmp.Rows.Count; i++) { drError = dtEmpError.Rows[i]; pub3.AddTR(); pub3.AddTDIdx(i + 1); if (IsCellNull(drError, "人员帐号")) { pub3.AddTD(dtEmp.Rows[i]["人员帐号"].ToString()); } else { pub3.AddTD("style='background-color:yellow;color:red;' title='" + drError["人员帐号"] + "'", dtEmp.Rows[i]["人员帐号"].ToString()); } if (IsCellNull(drError, "人员姓名")) { pub3.AddTD(dtEmp.Rows[i]["人员姓名"].ToString()); } else { pub3.AddTD("style='background-color:yellow;color:red;' title='" + drError["人员姓名"] + "'", dtEmp.Rows[i]["人员姓名"].ToString()); } if (isBPM) { pub3.AddTD(dtEmp.Rows[i]["人员编号"].ToString()); } if (IsCellNull(drError, "部门")) { pub3.AddTD(dtEmp.Rows[i]["部门"].ToString()); } else { pub3.AddTD("style='background-color:yellow;color:red;' title='" + drError["部门"] + "'", dtEmp.Rows[i]["部门"].ToString()); } if (IsCellNull(drError, "岗位")) { pub3.AddTD(dtEmp.Rows[i]["岗位"].ToString()); } else { pub3.AddTD("style='background-color:yellow;color:red;' title='" + drError["岗位"] + "'", dtEmp.Rows[i]["岗位"].ToString()); } if (isBPM) { pub3.AddTD(dtEmp.Rows[i]["职务"].ToString()); pub3.AddTD(dtEmp.Rows[i]["电话"].ToString()); pub3.AddTD(dtEmp.Rows[i]["邮箱"].ToString()); pub3.AddTD(dtEmp.Rows[i]["直属领导"].ToString()); } pub3.AddTREnd(); } pub3.AddTableEnd(); #endregion }
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); }
protected void Page_Load(object sender, EventArgs e) { this.Page.Title = "Empleyes"; if (WebUser.IsWap) { this.BindWap(); return; } string sql = "SELECT a.No,a.Name, b.Name as DeptName FROM Port_Emp a, Port_Dept b WHERE a.FK_Dept=b.No ORDER BY a.FK_Dept "; DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql); BP.WF.Port.WFEmps emps = new BP.WF.Port.WFEmps(); if (this.DoType != null) { emps.RetrieveAllFromDBSource(); } else { emps.RetrieveAllFromDBSource(); } this.Pub1.AddTable("width=100% align=left"); this.Pub1.AddCaptionMsg("通讯录"); this.Pub1.AddTR(); this.Pub1.AddTDTitle("IDX"); this.Pub1.AddTDTitle("部门"); this.Pub1.AddTDTitle("人员"); this.Pub1.AddTDTitle("Tel"); this.Pub1.AddTDTitle("Email"); this.Pub1.AddTDTitle("岗位"); // <a href=Emps.aspx?DoType=1>刷新</a> "); this.Pub1.AddTDTitle("签名"); if (WebUser.No == "admin") { this.Pub1.AddTDTitle("顺序"); } if (this.DoType != null) { BP.WF.Port.WFEmp.DTSData(); this.GenerAllImg(); } this.Pub1.AddTREnd(); string keys = DateTime.Now.ToString("MMddhhmmss"); string deptName = null; int idx = 0; EmpStations ess = new EmpStations(); ess.RetrieveAll(); foreach (DataRow dr in dt.Rows) { string fk_emp = dr["No"].ToString(); if (fk_emp == "admin") { continue; } idx++; if (dr["DeptName"].ToString() != deptName) { deptName = dr["DeptName"].ToString(); this.Pub1.AddTRSum(); this.Pub1.AddTDIdx(idx); this.Pub1.AddTD(deptName); } else { this.Pub1.AddTR(); this.Pub1.AddTDIdx(idx); this.Pub1.AddTD(); } this.Pub1.AddTD(fk_emp + "-" + dr["Name"]); BP.WF.Port.WFEmp emp = emps.GetEntityByKey(fk_emp) as BP.WF.Port.WFEmp; if (emp != null) { //this.Pub1.AddTD(emp.TelHtml); //this.Pub1.AddTD(emp.EmailHtml); this.Pub1.AddTD(); this.Pub1.AddTD(); string stas = ""; foreach (EmpStation es in ess) { if (es.FK_Emp != emp.No) { continue; } stas += es.FK_StationT + ","; } this.Pub1.AddTD(stas); } else { this.Pub1.AddTD(""); this.Pub1.AddTD(""); this.Pub1.AddTD(""); //break; } this.Pub1.AddTD("<img src='../DataUser/Siganture/" + fk_emp + ".jpg' border=1 onerror=\"this.src='../DataUser/Siganture/UnName.jpg'\"/>"); if (WebUser.No == "admin" && emp != null) { this.Pub1.AddTD("<a href=\"javascript:DoUp('" + emp.No + "','" + keys + "')\" ><img src='Img/Btn/Up.gif' border=0 /></a>-<a href=\"javascript:DoDown('" + emp.No + "','" + keys + "')\" ><img src='Img/Btn/Down.gif' border=0 /></a>"); } this.Pub1.AddTREnd(); } this.Pub1.AddTableEnd(); }