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

📄 volumnandarchive.java

📁 一套完整的档案管理系统
💻 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 + -