diff --git a/CCFlow/CCFlow/DataUser/JSLibData/SearchSelf.js b/CCFlow/CCFlow/DataUser/JSLibData/SearchSelf.js index ef8a0bee..e2ee9b3f 100644 --- a/CCFlow/CCFlow/DataUser/JSLibData/SearchSelf.js +++ b/CCFlow/CCFlow/DataUser/JSLibData/SearchSelf.js @@ -1,4 +1,4 @@ - + function FlowTemplateNew() { var url = basePath + "/WF/Admin/CCBPMDesigner/FlowDevModel/Default.htm"; window.open(url); @@ -15,6 +15,34 @@ function FlowTemplateImp() { function DealFlowEmps(str) { return str; } + +//逻辑删除 +function DeleteFlow() { + + if (batchData.length == 0) { + layer.alert("请选择要删除的行数据"); + return; + } + if (confirm("确定要删除选择的行吗") == false) + return; + var webUser = new WebUser(); + var deleteRow = batchData; + //执行删除操作 + var enName = ensName.substring(0, ensName.length - 1); + $.each(deleteRow, function (idx, item) { + var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow"); + handler.AddPara("Msg", "管理员:" + webUser.No + "执行逻辑删除。"); + handler.AddPara("DelEnable", 1); + handler.AddPara("WorkID", item.WorkID); + var data = handler.DoMethodReturnString("DeleteFlow"); + /* if (data.indexOf("err@") !=-1) {*/ + layer.alert(data); + }) + Search("batch"); + batchData = []; +} + +//格式字符串 function DealTodoEmps(str) { //var result = str.split("@"); var result = str.split(";"); @@ -26,7 +54,7 @@ function DealTodoEmps(str) { } /** - * ½ģ + * 新建流程模板 * */ function NewFlowTemplate() { var url = "/WF/Admin/CCBPMDesigner/FlowDevModel/Default.htm?SortNo=100&From=Flows.htm"; diff --git a/CCFlow/CCFlow/WF/Comm/Batch.htm b/CCFlow/CCFlow/WF/Comm/Batch.htm index 4a460662..7536104c 100644 --- a/CCFlow/CCFlow/WF/Comm/Batch.htm +++ b/CCFlow/CCFlow/WF/Comm/Batch.htm @@ -290,8 +290,16 @@ var tableData = transferHtmlData(data["DT"]); //渲染table var tableName = mapBase.EnDesc; - if (typeof window.top.vm != "undefined" && window.top.vm.tabsList.length > window.top.vm.selectedTabsIndex) - tableName = window.top.vm.tabsList[window.top.vm.selectedTabsIndex].name; + //if (typeof window.top.vm != "undefined" && window.top.vm.tabsList.length > window.top.vm.selectedTabsIndex) + // tableName = window.top.vm.tabsList[window.top.vm.selectedTabsIndex].name; + + //防止出现跨域 + try { + if (typeof window.top.vm != "undefined" && window.top.vm.tabsList.length > window.top.vm.selectedTabsIndex) + tableName = window.top.vm.tabsList[window.top.vm.selectedTabsIndex].name; + } catch (e) { + tableName = mapBase.EnDesc; + } //主页面数据 var h = $(document).height() - $("#toolbar").height() * 2 - 90; vtable = table.render({ diff --git a/CCFlow/Components/BP.WF/Data/GenerWorkFlowView.cs b/CCFlow/Components/BP.WF/Data/GenerWorkFlowView.cs index 79102654..ccde16ba 100644 --- a/CCFlow/Components/BP.WF/Data/GenerWorkFlowView.cs +++ b/CCFlow/Components/BP.WF/Data/GenerWorkFlowView.cs @@ -580,7 +580,7 @@ namespace BP.WF.Data map.AddTBString(GenerWorkFlowAttr.BillNo, null, "单据编号", true, true, 0, 100, 10); //map.AddTBStringDoc(GenerWorkFlowAttr.FlowNote, null, "备注", true, false, true); - map.AddDDLEntities(GenerWorkFlowAttr.FK_FlowSort, null, "类别", new FlowSorts(), false); + map.AddDDLEntities(GenerWorkFlowAttr.FK_FlowSort, null, "流程类别", new FlowSorts(), false); map.AddDDLEntities(GenerWorkFlowAttr.FK_Flow, null, "流程", new Flows(), false); map.AddDDLEntities(GenerWorkFlowAttr.FK_Dept, null, "隶属部门", new BP.Port.Depts(), false); @@ -592,8 +592,10 @@ namespace BP.WF.Data // map.AddMyFileS("xx"); - map.AddSearchAttr(GenerWorkFlowAttr.FK_Flow); + //map.AddSearchAttr(GenerWorkFlowAttr.FK_Flow); + map.AddSearchAttr(GenerWorkFlowAttr.FK_FlowSort); map.AddSearchAttr(GenerWorkFlowAttr.WFSta); + if (SystemConfig.CCBPMRunModel != Sys.CCBPMRunModel.Single) map.AddHidden(GenerWorkFlowAttr.OrgNo, "=", "@WebUser.OrgNo"); diff --git a/CCFlow/Components/BP.WF/Data/MyJoinFlow.cs b/CCFlow/Components/BP.WF/Data/MyJoinFlow.cs index a7737e0e..aa035390 100644 --- a/CCFlow/Components/BP.WF/Data/MyJoinFlow.cs +++ b/CCFlow/Components/BP.WF/Data/MyJoinFlow.cs @@ -3,6 +3,7 @@ using System.Data; using BP.DA; using BP.Sys; using BP.En; +using BP.WF.Template; namespace BP.WF.Data { @@ -726,6 +727,9 @@ namespace BP.WF.Data map.AddTBDateTime(MyFlowAttr.RDT, "发起日期", true, true); map.AddDDLSysEnum(MyFlowAttr.WFSta, 0, "状态", true, false, MyFlowAttr.WFSta, "@0=运行中@1=已完成@2=其他"); //map.AddDDLSysEnum(MyFlowAttr.TSpan, 0, "时间段", true, false, MyFlowAttr.TSpan, "@0=本周@1=上周@2=两周以前@3=三周以前@4=更早"); + + map.AddDDLEntities(GenerWorkFlowAttr.FK_FlowSort, null, "流程类别", new FlowSorts(), false); + map.AddDDLEntities(GenerWorkFlowAttr.FK_FlowSort, null, "类别", new FlowSorts(), false); map.AddTBString(MyFlowAttr.NodeName, null, "当前节点", true, false, 0, 100, 100, true); map.AddTBString(MyStartFlowAttr.TodoEmps, null, "当前处理人", true, false, 0, 100, 100, true); @@ -742,6 +746,7 @@ namespace BP.WF.Data #region 查询条件. + map.AddSearchAttr(GenerWorkFlowAttr.FK_FlowSort); map.DTSearchKey = GenerWorkFlowAttr.RDT; map.DTSearchLabel = "发起日期"; map.DTSearchWay = DTSearchWay.ByDate; diff --git a/CCFlow/Components/BP.WF/Dev2Interface.cs b/CCFlow/Components/BP.WF/Dev2Interface.cs index 7b59c33a..a59514e6 100644 --- a/CCFlow/Components/BP.WF/Dev2Interface.cs +++ b/CCFlow/Components/BP.WF/Dev2Interface.cs @@ -1514,7 +1514,7 @@ namespace BP.WF else { if (BP.WF.Glo.IsEnableTaskPool == true) - sql = "SELECT A.*, null as Auther FROM WF_EmpWorks A WHERE TaskSta=0 AND A.FK_Emp='" + userNo + "' " + whereSQL + ""; + sql = "SELECT A.*, null as Auther FROM WF_EmpWorks A WHERE WFState >1 AND TaskSta=0 AND A.FK_Emp='" + userNo + "' " + whereSQL + ""; else sql = "SELECT A.*, null as Auther FROM WF_EmpWorks A WHERE A.FK_Emp='" + userNo + "' " + whereSQL + ""; diff --git a/CCFlow/Components/BP.WF/HttpHandler/WF.cs b/CCFlow/Components/BP.WF/HttpHandler/WF.cs index f66c6602..38d265c5 100644 --- a/CCFlow/Components/BP.WF/HttpHandler/WF.cs +++ b/CCFlow/Components/BP.WF/HttpHandler/WF.cs @@ -2804,6 +2804,15 @@ namespace BP.WF.HttpHandler return "url@./Comm/Search.htm?EnsName=BP.WF.Data.GenerWorkFlowViews&WFSta=all&Token=" + token; } + + //admin查看处理的所有流程。(批量操作) + if (this.DoWhat.Equals(DoWhatList.BatchForGenerWorkFlowViews) == true) + { + + return "url@./Comm/Batch.htm?EnsName=BP.WF.Data.GenerWorkFlowViews&WFSta=all&Token=" + token; + + } + //流程查询小页面. if (this.DoWhat.Equals(DoWhatList.FlowSearchSmall) == true) { diff --git a/CCFlow/Components/BP.WF/WF.cs b/CCFlow/Components/BP.WF/WF.cs index 49d286de..6e7b2f3a 100644 --- a/CCFlow/Components/BP.WF/WF.cs +++ b/CCFlow/Components/BP.WF/WF.cs @@ -87,6 +87,8 @@ namespace BP.WF public const string MyStartFlows = "MyStartFlows"; public const string MyJoinFlows = "MyJoinFlows"; public const string GenerWorkFlowViews = "GenerWorkFlowViews"; + public const string BatchForGenerWorkFlowViews = "BatchForGenerWorkFlowViews"; + //已完成 public const string Complete = "Complete"; /// diff --git a/CCFlow/Components/BP.WF/WF/WorkFlow.cs b/CCFlow/Components/BP.WF/WF/WorkFlow.cs index 18526fc8..288b0731 100644 --- a/CCFlow/Components/BP.WF/WF/WorkFlow.cs +++ b/CCFlow/Components/BP.WF/WF/WorkFlow.cs @@ -155,37 +155,55 @@ namespace BP.WF try { GenerWorkFlow gwf = new GenerWorkFlow(this.WorkID); + BP.WF.Node nd = new Node(); + nd.NodeID = gwf.NodeID; + if (nd.RetrieveFromDBSources() == 0) + { + Glo.AddToTrack(ActionType.DeleteFlowByFlag, gwf.FlowNo, this.WorkID, this.FID, gwf.NodeID,gwf.NodeName, WebUser.No, WebUser.Name, gwf.NodeID, gwf.NodeName, WebUser.No, WebUser.Name, msg, null); + //更新-流程数据表的状态. + string sql = "UPDATE " + this.HisFlow.PTable + " SET WFState=" + (int)WFState.Delete + " WHERE OID=" + this.WorkID; + DBAccess.RunSQL(sql); - BP.WF.Node nd = new Node(gwf.NodeID); - Work wk = nd.HisWork; - wk.OID = this.WorkID; - wk.RetrieveFromDBSources(); + //删除他的工作者,不让其有待办. + sql = "DELETE FROM WF_GenerWorkerlist WHERE WorkID=" + this.WorkID; + DBAccess.RunSQL(sql); - //定义workNode. - WorkNode wn = new WorkNode(wk, nd); + //设置产生的工作流程为. + gwf.WFState = BP.WF.WFState.Delete; + gwf.Update(); - //调用结束前事件. - ExecEvent.DoFlow(EventListFlow.BeforeFlowDel, wn, null); + } + else { + nd = new Node(gwf.NodeID); + Work wk = nd.HisWork; + wk.OID = this.WorkID; + wk.RetrieveFromDBSources(); - //记录日志 感谢 itdos and 888 , 提出了这个问题.. - wn.AddToTrack(ActionType.DeleteFlowByFlag, WebUser.No, WebUser.Name, wn.HisNode.NodeID, wn.HisNode.Name, - msg); + //定义workNode. + WorkNode wn = new WorkNode(wk, nd); - //更新-流程数据表的状态. - string sql = "UPDATE " + this.HisFlow.PTable + " SET WFState=" + (int)WFState.Delete + " WHERE OID=" + this.WorkID; - DBAccess.RunSQL(sql); + //调用结束前事件. + ExecEvent.DoFlow(EventListFlow.BeforeFlowDel, wn, null); - //删除他的工作者,不让其有待办. - sql = "DELETE FROM WF_GenerWorkerlist WHERE WorkID=" + this.WorkID; - DBAccess.RunSQL(sql); + //记录日志 感谢 itdos and 888 , 提出了这个问题.. + wn.AddToTrack(ActionType.DeleteFlowByFlag, WebUser.No, WebUser.Name, wn.HisNode.NodeID, wn.HisNode.Name, + msg); - //设置产生的工作流程为. - gwf.WFState = BP.WF.WFState.Delete; - gwf.Update(); + //更新-流程数据表的状态. + string sql = "UPDATE " + this.HisFlow.PTable + " SET WFState=" + (int)WFState.Delete + " WHERE OID=" + this.WorkID; + DBAccess.RunSQL(sql); + + //删除他的工作者,不让其有待办. + sql = "DELETE FROM WF_GenerWorkerlist WHERE WorkID=" + this.WorkID; + DBAccess.RunSQL(sql); - //调用结束后事件. - ExecEvent.DoFlow(EventListFlow.AfterFlowDel, wn, null); + //设置产生的工作流程为. + gwf.WFState = BP.WF.WFState.Delete; + gwf.Update(); + //调用结束后事件. + ExecEvent.DoFlow(EventListFlow.AfterFlowDel, wn, null); + } } catch (Exception ex) {