📄 volumnandarchive.java
字号:
//package com.stsc.archive.xml;
package com.stsc.archive.backup;
/*
案卷:相同案卷号的一条案卷记录和文件表集合
*/
import java.io.*; //Java基础包,包含各种IO操作
import java.util.*; //Java基础包,包含各种标准数据结构操作
import javax.xml.parsers.*; //XML解析器接口
import org.w3c.dom.*; //XML的DOM实现
import org.apache.crimson.tree.XmlDocument;//写XML文件要用到
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import com.stsc.util.STPoolDataSet;
import com.stsc.util.STResultSet;
import com.stsc.archive.manage.Constants;
import com.stsc.archive.backup.CopyFile;
public class VolumnAndArchive extends fVolumn
{
private fArchiveVector archiveVector = null;
public fArchiveVector getArchiveVector()
{
return this.archiveVector;
}
//设置案卷表的一条记录
public void setVolumn(fVolumn volumn)
{
setVolumnid(volumn.getVolumnid());
setArchivetype(volumn.getArchivetype());
setVolumnno(volumn.getVolumnno());
setVolumntitle(volumn.getVolumntitle());
setCode(volumn.getCode());
setCategory(volumn.getCategory());
setRetentionperiod(volumn.getRetentionperiod());
setStartdate(volumn.getStartdate());
setEnddate(volumn.getEnddate());
setTotalnum(volumn.getTotalnum());
setTotalpage(volumn.getTotalpage());
setDuty(volumn.getDuty());
setSecurityclass(volumn.getSecurityclass());
setArchiveunit(volumn.getSecurityclass());
setKeyword(volumn.getKeyword());
setRemark(volumn.getRemark());
setStatus(volumn.getStatus());
setAbstract1(volumn.getAbstract1());
setDeleted(volumn.getDeleted()); //add
}
//设置文件表集
public void setArchiveVector(fArchiveVector archiveVector)
{
this.archiveVector = archiveVector;
}
public void setArchiveVector()
{
System.out.println("volumnno="+getVolumnno());
getData(getVolumnno());
}
/**
保存到数据库
*/
public void save()
{
saveToDb();
if(archiveVector != null)
{
for(int i=0; i<archiveVector.getLength(); i++)
{
archiveVector.get(i).saveToDb();
}
}
}
/**
从数据库中读取数据
*/
public boolean getData(String volumnno)
{
if((volumnno == null) || (volumnno.length() < 1))
{
return false;
}
Properties dbBase = new Properties();
dbBase.setProperty("dsJndiName", Constants.ARCHIVE_DBSOURCE_KEY);
STPoolDataSet data = new STPoolDataSet();
String sql = "SELECT * FROM fVolumn WHERE VolumnNo='" + volumnno + "'";System.out.println(sql);
STResultSet rs = data.getSTResult(sql, dbBase);
if (rs!=null && rs.next())
{
setVolumnid(rs.getInt("VolumnID"));
setArchivetype(rs.getString("ArchiveType"));
setVolumnno(rs.getString("VolumnNo"));
setVolumntitle(rs.getString("VolumnTitle"));
setCode(rs.getString("Code"));
setCategory(rs.getString("Category"));
setRetentionperiod(rs.getString("RetentionPeriod"));
setStartdate(rs.getDate("StartDate"));
setEnddate(rs.getDate("EndDate"));
setTotalnum(rs.getInt("TotalNum"));
setTotalpage(rs.getInt("TotalPage"));
setDuty(rs.getString("Duty"));
setSecurityclass(rs.getString("Security"));
setArchiveunit(rs.getString("ArchiveUnit"));
setKeyword(rs.getString("KeyWord"));
setRemark(rs.getString("Remark"));
setStatus(rs.getString("Status"));
setAbstract1(rs.getString("Abstract"));
setDeleted(rs.getString("Deleted")); //add
//---------获取文件表----------------------------
sql = "SELECT * FROM fArchive WHERE VolumnNo='" + volumnno + "'";
rs = data.getSTResult(sql, dbBase);
archiveVector = null; //先清空
while(rs!=null && rs.next())
{
fArchive archive = new fArchive();
//------------------------------------------------------------
archive.setSerialno(rs.getInt("SerialNo"));
archive.setStatus(rs.getInt("Status"));
archive.setDeleted(rs.getString("Deleted"));
archive.setRepflag(rs.getInt("RepFlag"));
archive.setArchivetype(rs.getString("ArchiveType"));
archive.setFiletype(rs.getString("FileType"));
archive.setTitle(rs.getString("Title"));
archive.setLiteraturetype(rs.getString("LiteratureType"));
archive.setTitleremark(rs.getString("TitleRemark"));
archive.setFileno(rs.getString("FileNo"));
archive.setFiledate(rs.getDate("FileDate"));
archive.setKeyword(rs.getString("KeyWord"));
archive.setCode(rs.getString("Code"));
archive.setCategory(rs.getString("Category"));
archive.setPagenumber(rs.getInt("PageNumber"));
archive.setDuty(rs.getString("Duty"));
archive.setOtherduty(rs.getString("OtherDuty"));
archive.setElectronicfilename(rs.getString("ElectronicFileName"));
archive.setAttachmenttitle(rs.getString("AttachmentTitle"));
archive.setMemo(rs.getString("Memo"));
archive.setCopys(rs.getInt("Copys"));
archive.setLendnum(rs.getInt("LendNum"));
archive.setSecurityclass(rs.getString("SecurityClass"));
archive.setSecurityterm(rs.getInt("SecurityTerm"));
archive.setDecryptiondate(rs.getDate("DecryptionDate"));
archive.setRetentionperiod(rs.getString("RetentionPeriod")); //6.3modify int to string
archive.setArchivedate(rs.getDate("ArchiveDate"));
archive.setDestroydate(rs.getDate("DestroyDate"));
archive.setArchivalcode(rs.getString("ArchivalCode"));
archive.setDossierno(rs.getString("DossierNo"));
archive.setArchiveno(rs.getString("ArchiveNo"));
archive.setUnitno(rs.getString("UnitNo"));
archive.setFilingtrace(rs.getString("FilingTrace"));
archive.setHandover(rs.getString("HandOver"));
archive.setFilingscripts(rs.getString("FilingScripts"));
archive.setReappraisedates(rs.getString("ReAppraiseDates"));
archive.setAnnotation(rs.getString("Annotation"));
archive.setAbstractmsg(rs.getString("Abstract"));
archive.setSuggest(rs.getString("Suggest"));
archive.setRecordtransfer(rs.getString("RecordTransfer"));
archive.setVolumnNo(rs.getString("VolumnNo"));
archive.setAttachmentPath(rs.getString("AttachmentPath")); //2003.5.23 add
archive.setFlowNo(rs.getString("FlowNo")); //2003.6.3 add
//============================================================
if(archiveVector == null)
{
archiveVector = new fArchiveVector();
}
archiveVector.add(archive);
}
//===============================================
return true;
}
else
{
return false;
}
}
/**
写到xml文件
*/
public boolean write(String filename)
{
if(filename == null)
{
System.out.println("write uniteXml error:文件名为null!");
return false;
}
if(CopyFile.createDir(filename) == false) //建立目录;
{
return false;
}
//先写文件表集
try
{
ReadWritefArchiveXML archXml = new ReadWritefArchiveXML();
archXml.writeXMLFile(filename, archiveVector);
}catch(Exception e)
{
System.out.println("没有写文件集记录到xml文件,可能是没有这个案卷号的文件表记录.");
}
//----------------------------------------------------------------------------
/**
先读取filename的信息,如果读不到则创建该文件
*/
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try
{
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException pce)
{
System.out.println(pce); //出异常时输出异常信息,然后退出,下同
return false;
}
//先获得原有文件信息
Document doc = null;
try
{
doc = db.parse(filename);
}catch(Exception e)
{
doc = db.newDocument(); //如果没有该文件,则创建一个
Element rootfirst = doc.createElement("备份信息");
doc.appendChild(rootfirst);
}
//===============================================================================
//-------------------------------------------------------------------------------
/**
添加案卷记录
*/
Element root = doc.getDocumentElement();
Element student = doc.createElement("fVolumn");
student.setAttribute("自动编号", Integer.toString(getVolumnid()));
root.appendChild(student);
Element name = doc.createElement("档案种类");
student.appendChild(name);
Text tName = doc.createTextNode(getArchivetype());
name.appendChild(tName);
name = doc.createElement("案卷号");
student.appendChild(name);
tName = doc.createTextNode(getVolumnno());
name.appendChild(tName);
name = doc.createElement("案卷标题");
student.appendChild(name);
tName = doc.createTextNode(getVolumntitle());
name.appendChild(tName);
name = doc.createElement("工程代号");
student.appendChild(name);
tName = doc.createTextNode(getCode());
name.appendChild(tName);
name = doc.createElement("类目号");
student.appendChild(name);
tName = doc.createTextNode(getCategory());
name.appendChild(tName);
name = doc.createElement("保管期限");
student.appendChild(name);
tName = doc.createTextNode(getRetentionperiod());
name.appendChild(tName);
name = doc.createElement("案卷起始年月");
student.appendChild(name);
Date nowdate = getStartdate();
if(nowdate != null)
{
tName = doc.createTextNode(nowdate.toString());
name.appendChild(tName);
}
name = doc.createElement("案卷截止年月");
student.appendChild(name);
nowdate = getEnddate();
if(nowdate != null)
{
tName = doc.createTextNode(nowdate.toString());
name.appendChild(tName);
}
name = doc.createElement("案卷总件数");
student.appendChild(name);
tName = doc.createTextNode(Integer.toString(getTotalnum()));
name.appendChild(tName);
name = doc.createElement("案卷总页数");
student.appendChild(name);
tName = doc.createTextNode(Integer.toString(getTotalpage()));
name.appendChild(tName);
name = doc.createElement("责任者");
student.appendChild(name);
tName = doc.createTextNode(getDuty());
name.appendChild(tName);
name = doc.createElement("密级");
student.appendChild(name);
tName = doc.createTextNode(getSecurityclass());
name.appendChild(tName);
name = doc.createElement("立卷单位");
student.appendChild(name);
tName = doc.createTextNode(getArchiveunit());
name.appendChild(tName);
name = doc.createElement("主题词");
student.appendChild(name);
tName = doc.createTextNode(getKeyword());
name.appendChild(tName);
name = doc.createElement("备注");
student.appendChild(name);
tName = doc.createTextNode(getRemark());
name.appendChild(tName);
name = doc.createElement("状态");
student.appendChild(name);
tName = doc.createTextNode(getStatus());
name.appendChild(tName);
name = doc.createElement("提要");
student.appendChild(name);
tName = doc.createTextNode(getAbstract1());
name.appendChild(tName);
//add,2003.5.22
name = doc.createElement("删除标记");
student.appendChild(name);
tName = doc.createTextNode(getDeleted());
name.appendChild(tName);
//===============================================================================
/**
保存到文件
*/
//----------------------------------------
DOMSource doms = new DOMSource (doc);
File f = new File (filename);
StreamResult sr = new StreamResult (f);
// Output.
try
{
TransformerFactory tf=TransformerFactory.newInstance();
// Get a TransformerFactory.
Transformer t=tf.newTransformer ();
// Make a new Transformer from it
Properties properties = t.getOutputProperties();
properties.setProperty(OutputKeys.ENCODING,"GB2312");
properties.setProperty(OutputKeys.METHOD,"xml");
properties.setProperty(OutputKeys.VERSION,"1.0");
properties.setProperty(OutputKeys.INDENT,"yes");
t.setOutputProperties(properties);
// now proceed with the transformation
t.transform(doms,sr);
// Use the DOMSource as input. StreamResult as output path.
}
catch (TransformerConfigurationException tce)
{
System.out.println("Transformer Configuration Exception\n-----");
tce.printStackTrace();
return false;
}
catch (TransformerException te)
{
System.out.println ("Transformer Exception\n---------");
te.printStackTrace ();
return false;
}
return true;
//========================================
}
public boolean read(String filename) throws Exception
{
if(filename == null)
{
return false;
}
ReadWritefVolumnXML volumn = new ReadWritefVolumnXML();
fVolumnVector volVector = volumn.readXMLFile(filename);
if( (volVector != null) && (volVector.getLength() == 1) )
{
setVolumn(volVector.get(0));
ReadWritefArchiveXML arch = new ReadWritefArchiveXML();
setArchiveVector(arch.readXMLFile(filename));
return true;
}
else
{
return false;
}
}
/**
public VolumnAndArchive read(String filename) throws Exception
{
if(filename == null)
{
return null;
}
ReadWritefVolumnXML volumn = new ReadWritefVolumnXML();
fVolumnVector volVector = volumn.readXMLFile(filename);
if( (volVector != null) && (volVector.getLength() == 1) )
{
VolumnAndArchive vr = (VolumnAndArchive)(volVector.get(0));
ReadWritefArchiveXML arch = new ReadWritefArchiveXML();
vr.setArchiveVector(arch.readXMLFile(filename));
return vr;
}
else
{
return null;
}
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -