因公司需要进行权限检查,所以需要导出泛微E9上流程监控的权限列表,不导出具体流程的查看权限还是干预权限
监控人 可以为角色 也可以是人员,业务要求必须导出来的是人员
这个模块表主要涉及有三张
workflow_monitor_info workflow_monitortype workflow_monitor_detail
人员表 角色表 自己查看数据字典
简单代码如下 各位可以自己优化 只是提供思路而已
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="org.apache.commons.lang3.StringUtils" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
String getjksql = "select a.id,\n" +
" a.jktype,\n" +
" a.jkvalue,\n" +
" nvl(a.monitortype, 0) as monitortype,\n" +
" b.typename,\n" +
" a.subcompanyid,\n" +
" b.typeorder,\n" +
" a.fwtype,\n" +
" case\n" +
" when a.fwtype = 1 then '总部'\n" +
" when a.fwtype = 2 then '分部'\n" +
" when a.fwtype = 3 then '同分部及下级分部'\n" +
" when a.fwtype = 5 then '同部门'\n" +
" end as ismonitor\n" +
" from workflow_monitor_info a,\n" +
" workflow_monitortype b\n" +
" where a.monitortype = b.id\n" +
" and a.JKTYPE != 3";
RecordSet rs = new RecordSet();
RecordSet rs1 = new RecordSet();
rs.executeQuery(getjksql);
while (rs.next()) {
String id = rs.getString(1);
String value = rs.getString("jkvalue");
String jktype = rs.getString("jktype");
String type = rs.getString("ismonitor");
String typename = rs.getString("typename");
List<String> hrmname = new ArrayList<String>();
List<String> workflowname = new ArrayList<String>();
if ("1".equalsIgnoreCase(jktype)) {
//人员
if (StringUtils.isNotBlank(value)) {
String[] values = value.split(",");
for (String v : values) {
String sql = "select lastname from hrmresource where id =?";
rs1.executeQuery(sql, v);
while (rs1.next()) {
hrmname.add(rs1.getString("lastname"));
}
}
}
}
if ("2".equalsIgnoreCase(jktype)) {
//角色
String[] values = value.split(",");
for (String v : values) {
rs1.executeQuery("select t2.LASTNAME from hrmrolemembers t1 inner join HRMRESOURCE t2 on t2.id =t1.RESOURCEID where t1.roleid = ?", v);
while (rs1.next()) {
hrmname.add(rs1.getString("lastname"));
}
}
}
String sql = "select t2.WORKFLOWNAME from workflow_monitor_detail t1 inner join workflow_base t2 on t1.WORKFLOWID = t2.id where t1.infoid=?";
rs1.executeQuery(sql, id);
while (rs1.next()) {
workflowname.add(rs1.getString(1));
}
if (hrmname.size() > 0) {
for (String h : hrmname) {
for (String w : workflowname) {
out.println(h + "," + w + "," + typename + "," + type+"<br>");
}
}
}
}
%>
输出到页面上 然后复制放到TXT 然后转成EXCEL 就可以了
效果如下