📄 treedaoimpl.java
字号:
package com.jlobo.data.impl;
import java.util.List;
import org.apache.myfaces.custom.tree2.TreeNode;
import org.apache.myfaces.custom.tree2.TreeNodeBase;
import org.apache.myfaces.custom.tree2.TreeNodeChecked;
import com.jlobo.common.ContextHelper;
import com.jlobo.data.DaoSupport;
import com.jlobo.data.ITreeDao;
import com.jlobo.hibernate.HibernateSessionFactory;
import com.jlobo.identity.Membership;
import com.jlobo.identity.Permissions;
import com.jlobo.identity.User;
import com.jlobo.web.beans.Department;
import com.jlobo.web.beans.DepartmentTree;
import com.jlobo.web.beans.Examination;
public class TreeDaoImpl extends DaoSupport implements ITreeDao {
public TreeNode getModule() {
Long uid = ContextHelper.getUser().getId();
return getModule(uid);
}
public TreeNode getModule(Long uid) {
String hql = " Select T.* \r\n"
+ " From ( select G.*,level as Level_ \r\n"
+ " from (select id_, class_,parent_,name_,localname_,sort_,status_,type_ \r\n"
+ " from jot_id_group \r\n"
+ " where id_ != parent_ \r\n"
+ " ) G \r\n"
+ " start with parent_= -1 \r\n"
+ " connect by prior id_=parent_) T, \r\n"
+ " jot_id_permissions P \r\n"
+ " where t.id_ = p.name_ and p.entity_ = " + uid +" \r\n" +
" and p.action_ = '1'" +
" order by level_,sort_";
if (this.session == null) {
this.setSession(HibernateSessionFactory.getSession());
}
this.session.clear();
TreeNode treeData = new TreeNodeBase("category", "系统功能", "YYYY0001",
false);
List lt = this.session.createSQLQuery(hql).addEntity(
DepartmentTree.class).list();
DepartmentTree[] department = new DepartmentTree[lt.size()];
String type = null;
if (lt.size() > 0) {
int root = 0;
int[] position = new int[lt.size()];
position[0] = 0;
TreeNode[] tree = new TreeNode[lt.size()];
for (int i = 0; i < lt.size(); i++) {
department[i] = (DepartmentTree) lt.get(i);
// tree[i] = new TreeNodeBase(
// ((department[i].getLevel() == 1) ? "category"
// : "module"), department[i].getLocalName(),
// department[i].getType() + "", false);
if (department[i].getLevel() == 1) {
tree[i] = new TreeNodeBase("category", department[i]
.getLocalName(), department[i].getType() + "",
false);
} else if (department[i].get_class().equals("S")) {
tree[i] = new TreeNodeBase("locate", department[i]
.getLocalName(), department[i].getType() + "",
false);
} else {
tree[i] = new TreeNodeBase("module", department[i]
.getLocalName(), department[i].getType() + "",
false);
}
if (i > 0) {
if (department[i].getLevel().equals(
department[0].getLevel())) {
root++;
position[root] = i;
}
}
}
if (root > 0) {
for (int i = 0; i < department.length; i++) {
for (int j = 0; j < department.length; j++) {
if (department[j].getParent().equals(
department[i].getId())) {
tree[i].getChildren().add(tree[j]);
}
}
}
for (int i = 0; i < root + 1; i++) {
treeData.getChildren().add(tree[position[i]]);
}
} else {
tree[0] = new TreeNodeBase("category", department[0]
.getLocalName(), department[0].getType() + "", false);
for (int i = 0; i < department.length; i++) {
for (int j = i + 1; j < department.length; j++) {
if (department[j].getParent().equals(
department[i].getId())) {
tree[i].getChildren().add(tree[j]);
}
}
}
treeData.getChildren().add(tree[0]);
}
}
return treeData;
}
public TreeNode getDepartment(Long did) {
String hql = "select G.*,level as Level_ \r\n"
+ " from (select id_, class_,parent_,name_,localname_,sort_,status_,type_ \r\n"
+ " from jot_id_group \r\n"
+ " where id_ != parent_ \r\n" + " ) G \r\n"
+ " start with parent_= -3 \r\n"
+ " connect by prior id_=parent_";
if (this.session == null) {
this.setSession(HibernateSessionFactory.getSession());
}
TreeNode treeData = new TreeNodeBase("DepartmentOffice", "部门人员管理",
"2001", false);
List lt = this.session.createSQLQuery(hql).addEntity(
DepartmentTree.class).list();
DepartmentTree[] department = new DepartmentTree[lt.size()];
if (lt.size() > 0) {
int root = 0;
int[] position = new int[lt.size()];
position[0] = 0;
TreeNode[] tree = new TreeNode[lt.size()];
for (int i = 0; i < lt.size(); i++) {
department[i] = (DepartmentTree) lt.get(i);
tree[i] = new TreeNodeBase("DepartmentLocate", department[i]
.getLocalName(), department[i].getId() + "", false);
if (i > 0) {
if (department[i].getLevel().equals(
department[0].getLevel())) {
root++;
position[root] = i;
}
}
}
if (root > 0) {
for (int i = 0; i < department.length; i++) {
for (int j = 0; j < department.length; j++) {
if (department[j].getParent().equals(
department[i].getId())) {
tree[i].getChildren().add(tree[j]);
}
}
}
for (int i = 0; i < root + 1; i++) {
treeData.getChildren().add(tree[position[i]]);
}
return treeData;
} else {
tree[0] = new TreeNodeBase("DepartmentLocate", department[0]
.getLocalName(), department[0].getId() + "", false);
for (int i = 0; i < department.length; i++) {
for (int j = i + 1; j < department.length; j++) {
if (department[j].getParent().equals(
department[i].getId())) {
tree[i].getChildren().add(tree[j]);
}
}
}
return tree[0];
}
}
return null;
}
public TreeNode getDictionary() {
String hql = "select G.*,level as Level_ \r\n"
+ " from (select id_, class_,parent_,name_,localname_,sort_,status_,type_ \r\n"
+ " from jot_id_group \r\n"
+ " where id_ != parent_ \r\n" + " ) G \r\n"
+ " start with parent_= -2 \r\n"
+ " connect by prior id_=parent_";
if (this.session == null) {
this.setSession(HibernateSessionFactory.getSession());
}
TreeNode treeData = new TreeNodeBase("Office", "字典管理", "-2", false);
List lt = this.session.createSQLQuery(hql).addEntity(
DepartmentTree.class).list();
DepartmentTree[] department = new DepartmentTree[lt.size()];
if (lt.size() > 0) {
int root = 0;
int[] position = new int[lt.size()];
position[0] = 0;
TreeNode[] tree = new TreeNode[lt.size()];
for (int i = 0; i < lt.size(); i++) {
department[i] = (DepartmentTree) lt.get(i);
tree[i] = new TreeNodeBase("Locate", department[i]
.getLocalName(), department[i].getId() + "", false);
if (i > 0) {
if (department[i].getLevel().equals(
department[0].getLevel())) {
root++;
position[root] = i;
}
}
}
if (root > 0) {
for (int i = 0; i < department.length; i++) {
for (int j = 0; j < department.length; j++) {
if (department[j].getParent().equals(
department[i].getId())) {
tree[i].getChildren().add(tree[j]);
}
}
}
for (int i = 0; i < root + 1; i++) {
treeData.getChildren().add(tree[position[i]]);
}
return treeData;
} else {
tree[0] = new TreeNodeBase("Locate", department[0]
.getLocalName(), department[0].getId() + "", false);
for (int i = 0; i < department.length; i++) {
for (int j = i + 1; j < department.length; j++) {
if (department[j].getParent().equals(
department[i].getId())) {
tree[i].getChildren().add(tree[j]);
}
}
}
return tree[0];
}
}
return null;
}
public TreeNodeChecked getDepartmentAndUserTree(User user,
String permissionsModule) {
String hql = "FROM Permissions WHERE entity = " + user.getId();
List lt = this.session.createQuery(hql).list();
List ltu = null;
Membership ms;
User userp;
String[] permission = {};
if (lt.size() > 0) {
Permissions permissions = (Permissions) lt.get(0);
if (permissions.getType() != null)
permission = permissions.getType().split(",");
}
boolean hasPermissions = false;
hql = "FROM Department WHERE id = 2003";
String hqlj, hqlk, hqlm, hqln, hqlp, hqlq, phql;
List lta = this.session.createQuery(hql).list();
TreeNodeChecked treeData = new TreeNodeChecked("DepartmentOffice",
"部门人员管理", "2001", false, false);
for (int i = 0; i < lta.size(); i++) {
Department depti = (Department) lta.get(i);
treeData = new TreeNodeChecked("DepartmentOffice", depti.getName(),
depti.getId() + "", false, false);
phql = "FROM Membership WHERE group.id = " + depti.getId();
ltu = this.session.createQuery(phql).list();
for (int s = 0; s < ltu.size(); s++) {
ms = (Membership) ltu.get(s);
userp = ms.getUser();
TreeNodeChecked userB = new TreeNodeChecked("DepartmentLocate",
userp.getLocalName(), userp.getId() + "", false, false);
treeData.getChildren().add(userB);
}
hqlj = "FROM Department WHERE parent.id = " + depti.getId();
List ltj = this.session.createQuery(hqlj).list();
for (int j = 0; j < ltj.size(); j++) {
Department deptj = (Department) ltj.get(j);
TreeNodeChecked nodej = new TreeNodeChecked("DepartmentLocate",
deptj.getName(), deptj.getId() + "", hasPermissions,
false);
phql = "FROM Membership WHERE group.id = " + deptj.getId();
ltu = this.session.createQuery(phql).list();
for (int s = 0; s < ltu.size(); s++) {
ms = (Membership) ltu.get(s);
userp = ms.getUser();
TreeNodeChecked userB = new TreeNodeChecked(
"DepartmentLocate", userp.getLocalName(), userp
.getId()
+ "", hasPermissions, true);
nodej.getChildren().add(userB);
}
hqlm = "FROM Department WHERE parent.id = " + deptj.getId();
List ltm = this.session.createQuery(hqlm).list();
for (int m = 0; m < ltm.size(); m++) {
Department deptm = (Department) ltm.get(m);
TreeNodeChecked nodem = new TreeNodeChecked(
"DepartmentLocate", deptm.getName(), deptm.getId()
+ "", false, false);
phql = "FROM Membership WHERE group.id = " + deptm.getId();
ltu = this.session.createQuery(phql).list();
for (int s = 0; s < ltu.size(); s++) {
ms = (Membership) ltu.get(s);
userp = ms.getUser();
TreeNodeChecked userB = new TreeNodeChecked(
"DepartmentLocate", userp.getLocalName(), userp
.getId()
+ "", false, false);
nodem.getChildren().add(userB);
}
hqln = "FROM Department WHERE parent.id = " + deptm.getId();
List ltn = this.session.createQuery(hqln).list();
for (int n = 0; n < ltn.size(); n++) {
Department deptn = (Department) ltn.get(n);
TreeNodeChecked noden = new TreeNodeChecked(
"DepartmentLocate", deptn.getName(), deptn
.getId()
+ "", false, false);
phql = "FROM Membership WHERE group.id = "
+ deptn.getId();
ltu = this.session.createQuery(phql).list();
for (int s = 0; s < ltu.size(); s++) {
ms = (Membership) ltu.get(s);
userp = ms.getUser();
TreeNodeChecked userB = new TreeNodeChecked(
"DepartmentLocate", userp.getLocalName(),
userp.getId() + "", false, false);
noden.getChildren().add(userB);
}
hqlk = "FROM Department WHERE parent.id = "
+ deptn.getId();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -