📄 gdfilemanager.java
字号:
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 + -