⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 purview.java

📁 办公自动化项目
💻 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 + -