📄 purview.java
字号:
package com.t60.oa.doc.service;
import com.t60.oa.doc.struts.PurviewForm;
import com.t60.oa.po.*;
import hong.javanet.dao.HibernateUtil;
import org.apache.log4j.Logger;
import org.hibernate.Session;
import org.hibernate.Query;
public class Purview {
private String newId; //文档编号
private PurviewForm pur;
private static Logger log = Logger.getLogger(Purview.class);
/**
* 向权限表添加数据~~
*/
public void save() {
Session session = HibernateUtil.currentSession();
DoucumentFolder dou = (DoucumentFolder) session.
load(DoucumentFolder.class, this.newId);
HibernateUtil.currentSession()
.createQuery("delete from Floadpurview where doucumentFile=? and type<>1").setString(0,this.newId).executeUpdate();
//Floadpurview fload = new Floadpurview();
if (pur.getChosen() != null && pur.getChosen().length > 0) { //编辑权限
String[] chosen = pur.getChosen();
log.debug("Chosen长度:--》" + chosen.length);
for (int i = 0; i < pur.getChosen().length; i++) {
Floadpurview fload = new Floadpurview(); //要放在循环里面
if (chosen[i].charAt(0) != 'y' && chosen[i].charAt(0) != 'Y') { //先插入部门文档权限信息
Department dep = (Department) session.
load(Department.class, chosen[i]);
log.debug("编辑部门编号:" + chosen[i]);
fload.setDepartment(dep); //部门
//给用户对应的文件夹也赋权限
if (this.newId.length() > 4) { //不是根文件
for (int j = (this.newId.length() / 4) - 1; j > 0; j--) { //先取父文件夹在取子文件夹
String ids = this.newId.substring(0,
(newId.length() - 4 * j));
DoucumentFolder doc = (DoucumentFolder) session.
load(DoucumentFolder.class,
ids);
Floadpurview floadofFolder = new Floadpurview();
//判断文件对应的文件夹以前是否已经有权限了,没有的话插入权限
String hqlFolderPur =
"from Floadpurview fd where doucumentFile=? and departmentId=?"; //查看
Query query = session.createQuery(hqlFolderPur);
query.setString(0, ids);
query.setString(1, dep.getId());
if (query.list().size() == 0) {
floadofFolder.setDoucumentFile(doc);
floadofFolder.setDepartment(dep);
floadofFolder.setType(new Byte("3")); //设置文件夹默认为阅读权限
session.save(floadofFolder);
}
}
}
} else {
//插入员工文档权限信息
Employee emp = (Employee) session.
load(Employee.class,
new Integer(chosen[i].substring(1,
chosen[i].length()))); //要转换 为整型
log.debug("编辑员工编号:" +
chosen[i].substring(1, chosen[i].length()) +
"员工姓名:-》" + emp.getEmpName());
fload.setUser(emp); //员工
//给用户对应的文件夹也赋权限
if (this.newId.length() > 4) { //不是根文件
for (int j = (this.newId.length() / 4) - 1; j > 0; j--) { //先取父文件夹在取子文件夹
String ids = this.newId.substring(0,
(newId.length() - 4 * j));
DoucumentFolder doc = (DoucumentFolder) session.
load(DoucumentFolder.class,
ids);
Floadpurview floadofFolder = new Floadpurview();
//判断文件对应的文件夹以前是否已经有权限了,没有的话插入权限
//有问题
String hqlFolderPur =
"from Floadpurview fd where doucumentFile=? and userId=?"; //查看
Query query = session.createQuery(hqlFolderPur);
query.setString(0, ids);
query.setInteger(1, emp.getId().intValue());
if (query.list().size() == 0) {
floadofFolder.setDoucumentFile(doc);
floadofFolder.setUser(emp);
floadofFolder.setType(new Byte("3")); //设置文件夹默认为阅读权限
session.save(floadofFolder); //保存文件对应文件夹
}
}
}
}
fload.setDoucumentFile(dou);
fload.setType(new Byte("2"));
session.save(fload);
}
}
if (pur.getPossible() != null && pur.getPossible().length > 0) { //阅读权限
String[] possible = pur.getPossible();
for (int i = 0; i < pur.getPossible().length; i++) {
Floadpurview fload = new Floadpurview(); //要放在循环里面
if (possible[i].charAt(0) != 'y' &&
possible[i].charAt(0) != 'Y') {
Department dep = (Department) session.
load(Department.class, possible[i]);
log.debug("阅读部门编号:" + possible[i]);
fload.setDepartment(dep);
//给用户对应的文件夹也赋权限
if (this.newId.length() > 4) { //不是根文件
for (int j = (this.newId.length() / 4) - 1; j > 0; j--) { //先取父文件夹在取子文件夹
String ids = this.newId.substring(0,
(newId.length() - 4 * j));
DoucumentFolder doc = (DoucumentFolder) session.
load(DoucumentFolder.class,
ids);
Floadpurview floadofFolder = new Floadpurview();
//判断文件对应的文件夹以前是否已经有权限了,没有的话插入权限
String hqlFolderPur =
"from Floadpurview fd where doucumentFile=? and departmentId=?"; //查看
Query query = session.createQuery(hqlFolderPur);
query.setString(0, ids);
query.setString(1, dep.getId());
if (query.list().size() == 0) {
floadofFolder.setDoucumentFile(doc);
floadofFolder.setDepartment(dep);
floadofFolder.setType(new Byte("3")); //设置文件夹默认为阅读权限
session.save(floadofFolder);
}
}
}
} else {
Employee emp = (Employee) session.
load(Employee.class,
new Integer(possible[i].substring(1,
possible[i].length())));
log.debug("阅读员工编号:" +
possible[i].substring(1, possible[i].length()));
fload.setUser(emp);
//给用户对应的文件夹也赋权限
if (this.newId.length() > 4) { //不是根文件
for (int j = (this.newId.length() / 4) - 1; j > 0; j--) { //先取父文件夹在取子文件夹
String ids = this.newId.substring(0,
(newId.length() - 4 * j));
DoucumentFolder doc = (DoucumentFolder) session.
load(DoucumentFolder.class,
ids);
Floadpurview floadofFolder = new Floadpurview();
//判断文件对应的文件夹以前是否已经有权限了,没有的话插入权限
String hqlFolderPur =
"from Floadpurview fd where doucumentFile=? and userId=?"; //查看
Query query = session.createQuery(hqlFolderPur);
query.setString(0, ids);
query.setInteger(1, emp.getId().intValue());
if (query.list().size() == 0) {
floadofFolder.setDoucumentFile(doc);
floadofFolder.setUser(emp);
floadofFolder.setType(new Byte("3")); //设置文件夹默认为阅读权限
session.save(floadofFolder);
}
}
}
}
fload.setDoucumentFile(dou);
fload.setType(new Byte("3"));
log.debug(new Byte("3"));
session.save(fload);
}
}
}
public String getNewId() {
return newId;
}
public PurviewForm getPur() {
return pur;
}
public void setPur(PurviewForm pur) {
this.pur = pur;
}
public void setNewId(String newId) {
this.newId = newId;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -