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

📄 modifydoc.java

📁 办公自动化项目
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                "from DoucumentEdition de where de.doucumentFolder.id=? order by de.id desc";
        Query query = session.createQuery(hql);
        query.setString(0, this.docId);
//        Criteria criEdition = session.createCriteria(DoucumentEdition.class);
//        criEdition.add(Restrictions.eq("newly", new Boolean(true)));
//        criEdition.add(Restrictions.eq("doucumentFolder.id",this.docId));
        this.docEdition= (DoucumentEdition) query.list().get(0);
        this.docEditionId=docEdition.getId().intValue();
        Hibernate.initialize(docEdition.getDoucumentFolder().getName());
        Hibernate.initialize(docEdition.getContext());

        this.findDocEditionAcc(docEdition); //调用取得附件集合的饿方法

    }

    /**
     * 修改文档版本附件,重新创建附件
     */
    public void modifyDoc() {
        Session session = HibernateUtil.currentSession();

        //取得文档
        DoucumentFolder dou = (DoucumentFolder) HibernateUtil.currentSession().
                              load(DoucumentFolder.class, this.docId);
        //判断是否为编辑/继续编辑状态
        if (!dou.isState()) {
            Criteria criEdition = session.createCriteria(DoucumentEdition.class);
            criEdition.add(Restrictions.eq("newly", new Boolean(true)));
            criEdition.add(Restrictions.eq("doucumentFolder.id",this.docId));
            DoucumentEdition doucu = (DoucumentEdition) criEdition.uniqueResult();
            doucu.setNewly(false);
            HibernateUtil.currentSession().update(doucu); //修改原来的一条为旧版本


            DoucumentEdition doucuNew = new DoucumentEdition();
            doucuNew.setContext(doucu.getContext());
            doucuNew.setEditDate(new java.sql.Timestamp(System.
                    currentTimeMillis()));
            doucuNew.setNewly(true);
            Employee emp = (Employee) HibernateUtil.currentSession().load(
                    Employee.class,
                    new Integer(this.getEmpId()));
            doucuNew.setEdite(emp);
            doucuNew.setDoucumentFolder(dou);

            //调用方法生成新的附件
            this.modifyDocEditionOfAcc(doucu);

            if (this.str != null && !this.str.equals("")) {
                doucuNew.setAccessories(this.str.substring(0,
                        this.str.length() - 1)); //设置版本附件编号
                this.findDocEditionAcc(doucuNew); //调用取得附件集合的饿方法
            } else {
                doucuNew.setAccessories("");
            }
            log.debug("新版本的附件ID为:--》" + this.str);
            HibernateUtil.currentSession().save(doucuNew); //添加一条为新版本

            this.findDocEditionById(); //调用方法查找
        }else{
             this.findDocEditionById(); //调用方法查找
        }
    }
    /**
     * 修改生成新附件
     * @return ModifyDocForm
     */
    public void modifyDocEditionOfAcc(DoucumentEdition det) {

        if (det.getAccessories() != null &&
            det.getAccessories().trim().length() > 0) {
            accessories = det.getAccessories().split(",");
            acc = new Accessories[accessories.length];
            fis = new FileInputStream[accessories.length];
            for (int i = 0; i < accessories.length; i++) {
                acc[i] = (Accessories) HibernateUtil.currentSession()
                         .createCriteria(Accessories.class)
                         .add(Restrictions.eq("id", accessories[i])).
                         uniqueResult();

                GUID guid = new GUID();
                try {
                    log.debug("附件编号:" + acc[i].getId());
                    fis[i] = new FileInputStream(affixFilePath +
                                                 acc[i].getId());
                    //创建新的附件
                    BufferedInputStream bis = new BufferedInputStream(fis[i]);
                            byte[] buf=new byte[8129];
                     int len=bis.read(buf);
                    FileOutputStream fos = new FileOutputStream(
                            affixFilePath + guid);
                    //fos.write(fis[i].read());
                    fos.write(buf,0,len);
                    fos.flush();
                    fos.close();
                    str = str + guid + ",";

                    Accessories access = new Accessories();
                    System.out.println("附件编号:" + guid.toString());
                    access.setId(guid.toString());
                    access.setCreateDate(new java.sql.Timestamp(System.
                            currentTimeMillis()));
                    access.setName(acc[i].getName());
                    access.setSize(acc[i].getSize());
                    HibernateUtil.currentSession().save(access);
                } catch (Exception ex) {
                    ex.printStackTrace();
                    log.debug("创建新文档的附件时失败!");
                }
                System.out.println("附件名称:" + acc[i].getName());
            }
        }

    }

    public ModifyDocForm getForm() {
        return form;
    }

    public String getAffixFilePath() {
        return affixFilePath;
    }

    public int getDocEditionId() {
        return docEditionId;
    }

    public List getAcclist() {
        return acclist;
    }

    public int getEmpId() {
        return empId;
    }

    public Accessories[] getAcc() {
        return acc;
    }

    public String getDocId() {
        return docId;
    }

    public DoucumentEdition getDocEdition() {
        return docEdition;
    }

    public String[] getAccessories() {
        return accessories;
    }

    public FileInputStream[] getFis() {
        return fis;
    }

    public String getStr() {
        return str;
    }

    public void setForm(ModifyDocForm form) {
        this.form = form;
    }

    public void setAffixFilePath(String affixFilePath) {
        this.affixFilePath = affixFilePath;
    }

    public void setDocEditionId(int docEditionId) {
        this.docEditionId = docEditionId;
    }

    public void setAcclist(List acclist) {
        this.acclist = acclist;
    }

    public void setEmpId(int empId) {
        this.empId = empId;
    }

    public void setAcc(Accessories[] acc) {
        this.acc = acc;
    }

    public void setDocId(String docId) {
        this.docId = docId;
    }

    public void setDocEdition(DoucumentEdition docEdition) {
        this.docEdition = docEdition;
    }

    public void setAccessories(String[] accessories) {
        this.accessories = accessories;
    }

    public void setFis(FileInputStream[] fis) {
        this.fis = fis;
    }

    public void setStr(String str) {
        this.str = str;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -