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

📄 gdfilemanager.java

📁 OA典型例子
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.sure.oa.gdfile;

/**
 * <p>Title: OA</p>
 * <p>Description: 国办项目</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: surec</p>
 * @author mengzy
 * @version 1.0
 */

import com.jspsmart.upload.*;
import javax.servlet.jsp.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.Properties;
import java.util.Vector;
import java.util.Date;
import java.io.File;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import com.sure.businessmodel.UpdateException;
import com.sure.businesslogic.AlreadyExistsException;
import com.sure.businesslogic.NotFoundException;
import com.sure.dataabstraction.DBManager;
import com.sure.dataabstraction.DBPoolException;
import com.sure.dataabstraction.*;
import com.sure.businessmodel.Page;
import com.sure.util.*;
import com.sure.oa.recvdoc.*;
import com.sure.oa.attachment.*;
import com.sure.oa.archive.*;
import com.sure.oa.senddoc.*;

/**
 * status 状态位设定  0:正文 1:附件
 */
public class  gdFileManager {
    public gdFileManager() {}

    /**
     * 收文归档 :脱密文件(gd)上传,Archive,GdFile插入记录 ,RecvPermission更改状态位,RecvDocLog插入归档日志
     */
    public static  int  saveArchive(PageContext pageContext) throws ServletException,SmartUploadException, IOException, DBPoolException, SQLException,Exception  {
       int ret=0;
       SmartUpload upload = new SmartUpload();
       upload.initialize(pageContext);
       try {
            upload.upload();
       } catch(NegativeArraySizeException e) {}
       Request req = upload.getRequest();
       String docId = req.getParameter("docId");
       String sendDocId = req.getParameter("sendDocId");
       String unitId = req.getParameter("unitId");
       String userId = req.getParameter("userId");
       String userName = req.getParameter("userName");
       String trueName = req.getParameter("trueName");
       String fileSize = req.getParameter("fileSize");
       String fileType = req.getParameter("fileType");
       String signPerson = req.getParameter("signPerson");
       String signTime = req.getParameter("signTime");
       Vector v=attachmentManager.getListVector(sendDocId,"10");
       attachment bean=(attachment)v.get(0);
       String path=bean.getPath();
       String site=bean.getSite();
       path=path+site+"/";
       trueName=trueName+"("+unitId+").gd";
       ret=saveArchive(docId,sendDocId,trueName,userId,userName,unitId,new Integer(fileSize).intValue() ,fileType,signPerson, signTime);
       return  ret;
    }

    public static   int  saveArchive(String docId,String sendDocId,String trueName,String userId,String userName,String unitId,int size,String type,String signPerson,String signTime) throws DBPoolException, SQLException ,NotFoundException{
        int retval=0;
        Connection conn=DBManager.getConnection();
        String  receiveType;
        Date    receiveDate;
        try {
           conn.setAutoCommit(false);
           //RecvDocPermission置位
           RecvPermission recvper=RecvPermissionManager.getRecvPermission(docId,unitId);
           recvper.setStatus("6");//0:未签收 2:已签收  4:已退回  6:已归档
           receiveType=recvper.getReceiveType();
           receiveDate=recvper.getReceiveDate();
           RecvPermissionPersistent recvpers=new RecvPermissionPersistent(recvper);
           recvpers.setRecordExists(true);
           recvpers.persist(conn);
           //RecvDocLog写入归档日志信息
           RecvDocLog log=new RecvDocLog();
           log.setLogId(0);
           log.setDocId(docId);
           log.setOperateId("3");//3:归档
           log.setOperateDate(DateWrapper.getLongTime(new Date()));
           log.setOperator(userName);
           log.setOperatorId(userId);
           log.setUnitId(unitId);
           RecvDocLogPersistent slog=new RecvDocLogPersistent(log);
           slog.persist(conn);
           //Archive主表插入记录
           RecvDocForm form=RecvDocFormManager.getDoc(Integer.parseInt(docId));
           GuiDocForm aform=changeGuiDocForm(form,docId,unitId,userName,signPerson,signTime);
           aform.setReceiveDate(receiveDate);
           aform.setReceiveType(receiveType);
           GuiDocFormPersistent aforms=new GuiDocFormPersistent(aform);
           aforms.setRecordExists(false);
           aforms.persist(conn);
          int  aId=aforms.getBean().getDocId().intValue();
           retval=aId;
           //GdFIle插入记录(注意正文重新上传,附件只建立映射)
           Vector v=attachmentManager.getListVector(sendDocId,"10");
           attachment att=(attachment)v.firstElement();
           gdFile bean=new gdFile();
           bean.setFileId(0);
           bean.setTitle(att.getTitle().substring(0,att.getTitle().length()-2)+"gd");
           bean.setPath(att.getPath());
           bean.setSite(att.getSite());
           bean.setFileName(trueName);
           bean.setTableName("rarchive");
           bean.setDocId(Integer.toString(aId));
           bean.setFileSize(size);
           bean.setMimeType(type);
           bean.setStatus("0");
           bean.setOrderBy("0");
           gdFilePersistent sbean=new gdFilePersistent(bean);
           sbean.setRecordExists(false);
           sbean.persist(conn);
           Vector v1=attachmentManager.getListVector(sendDocId,"11");
           for(int i=0;i<v1.size();i++){
             bean=changeGdFile((attachment)v1.get(i),Integer.toString(aId));
             sbean=new gdFilePersistent(bean);
             sbean.setRecordExists(false);
             sbean.persist(conn);
           }
           conn.commit();
        }
        catch (Exception e)
        {
           conn.rollback();
           e.printStackTrace();
        }
        finally {
           conn.setAutoCommit(true);
           conn.close();
           return  retval;
        }
    }
    /**
      * 收文归档 :其他类型文件归档不需要重新上传,Archive,GdFile插入记录 ,RecvPermission更改状态位,RecvDocLog插入归档日志
      */
    public static   int  saveArchiveUn(String docId,String sendDocId,String userId,String userName,String unitId,String signPerson,String signTime) throws DBPoolException, SQLException ,NotFoundException{
      int retval=0;
         Connection conn=DBManager.getConnection();
         String  receiveType;
         Date    receiveDate;
         try {
            conn.setAutoCommit(false);
            //RecvDocPermission置位
            RecvPermission recvper=RecvPermissionManager.getRecvPermission(docId,unitId);
            recvper.setStatus("6");//0:未签收 2:已签收  4:已退回  6:已归档
            receiveType=recvper.getReceiveType();
            receiveDate=recvper.getReceiveDate();
            RecvPermissionPersistent recvpers=new RecvPermissionPersistent(recvper);
            recvpers.setRecordExists(true);
            recvpers.persist(conn);
            //RecvDocLog写入归档日志信息
            RecvDocLog log=new RecvDocLog();
            log.setLogId(0);
            log.setDocId(docId);
            log.setOperateId("3");//3:归档
            log.setOperateDate(DateWrapper.getLongTime(new Date()));
            log.setOperator(userName);
            log.setOperatorId(userId);
            log.setUnitId(unitId);
            RecvDocLogPersistent slog=new RecvDocLogPersistent(log);
            slog.persist(conn);
            //Archive主表插入记录
            RecvDocForm form=RecvDocFormManager.getDoc(Integer.parseInt(docId));
            GuiDocForm aform=changeGuiDocForm(form,docId,unitId,userName,signPerson,signTime);
            aform.setReceiveDate(receiveDate);
            aform.setReceiveType(receiveType);
            GuiDocFormPersistent aforms=new GuiDocFormPersistent(aform);
            aforms.setRecordExists(false);
            aforms.persist(conn);
           int  aId=aforms.getBean().getDocId().intValue();
            retval=aId;
            //GdFIle插入记录(注意正文不重新上传,正文、附件只建立映射)
            Vector v=attachmentManager.getListVector(sendDocId,"10");
            attachment att=(attachment)v.firstElement();
            gdFile bean=new gdFile();
            bean.setFileId(0);
            bean.setTitle(att.getTitle());
            bean.setPath(att.getPath());
            bean.setSite(att.getSite());
            bean.setFileName(att.getFileName());
            bean.setTableName("rarchive");
            bean.setDocId(Integer.toString(aId));
            bean.setFileSize(att.getFileSize());
            bean.setMimeType(att.getMimeType());
            bean.setStatus("0");
            bean.setOrderBy("0");
            gdFilePersistent sbean=new gdFilePersistent(bean);
            sbean.setRecordExists(false);
            sbean.persist(conn);
            Vector v1=attachmentManager.getListVector(sendDocId,"11");
            for(int i=0;i<v1.size();i++){
              bean=changeGdFile((attachment)v1.get(i),Integer.toString(aId));
              sbean=new gdFilePersistent(bean);
              sbean.setRecordExists(false);
              sbean.persist(conn);
            }
            conn.commit();
         }
         catch (Exception e)
         {
            conn.rollback();
            e.printStackTrace();
         }
         finally {
            conn.setAutoCommit(true);
            conn.close();
            return  retval;
         }

     }

    /**
     * 由RecvDocForm 封装一个GuiDocForm
     */
    public static  GuiDocForm changeGuiDocForm(RecvDocForm form,String docId,String unitId,String userName,String signPerson,String signTime) throws SQLException,DBPoolException{
       GuiDocForm aform=new GuiDocForm();
       aform.setDocId(0);
       aform.setSendDocId(form.getSendDocId().toString());
       aform.setDocKind(form.getDocKind());
       aform.setDocTitle(form.getDocTitle());
       aform.setCreateDate(form.getCreateDate());
       aform.setCreator(form.getCreator());
       aform.setCreateUnitId(form.getCreateUnitId());
       aform.setDocNoPre(form.getDocNoPre());
       aform.setYearNo(form.getYearNo());
       aform.setWaterNo(form.getWaterNo());
       aform.setSecret(form.getSecret());
       aform.setEmergency(form.getEmergency());
       aform.setSubject(form.getSubject());
       aform.setPublishDate(form.getPublishDate());
       aform.setPublishPerson(form.getPublishPerson());
       aform.setAllSignPerson(form.getAllSignPerson());
       aform.setDealPerson(form.getDealPerson());
       aform.setCheckPerson(form.getCheckPerson());
       aform.setPrintUnit(form.getPrintUnit());
       aform.setPrintDate(form.getPrintDate());
       aform.setMainDealUnit(form.getMainDealunit());
       aform.setAllUnit(form.getAllUnit());
       aform.setSaveTime(form.getSaveTime());
       aform.setSendTo(form.getSendTo());
       aform.setCc(form.getCc());
       aform.setReportTo(form.getReportTo());
       aform.setInerTo(form.getInerTo());
       aform.setSendUnitId(form.getCreateUnitId().toString());
       aform.setSendUnitName(form.getSendUnitName());
       aform.setSendTime(form.getSendTime());
       aform.setSendPerson(form.getSendPerson());
       aform.setSignPerson(signPerson);//签收人
       aform.setSignTime(signTime);//签收时间
       aform.setPrintnumber(form.getPrintnumber());
       aform.setFilePages(form.getFilePages());
       aform.setAttachmentPages(form.getAttachmentPages());
       aform.setMemo(form.getMemo());
       aform.setGuiDate(DateWrapper.getLongTime(new Date()));
       aform.setGuiUnitId(unitId);
       aform.setGuiPerson(userName);
       aform.setGuiId("");//归档号
       aform.setGuiType("0");//未上传OA
       aform.setStatus("0");//收文归档
       return  aform;
    }

    /**
     * 由attachment 封装一个gdFile

⌨️ 快捷键说明

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