向少斌
摘 要:隨著物資合同統簽統付步伐的邁進,許多企業和用戶選擇在網上提交合同,線下確認。但是隨著合同的增多,現場簽約打印合同時仍然依靠手工操作,效率低下。該文在基于合同統簽統付典型模式的大背景下,借助合同管理系統,提升書面合同簽訂的規范性與智能化,大幅提升整體工作效率。
關鍵詞:自動化 打印 合同管理
中圖分類號:TP311 文獻標識碼:A 文章編號:1674-098X(2017)02(a)-0108-02
目前物資合同統簽統付在全國已經鋪展,物資合同簽訂總量逐年遞增[1]。隨著2015年5月物資子系統的上線,優化著力方向在于電子合同的制定效率,而占據簽約工作較大部分的書面簽約部分仍然依靠大量的手工操作,經多重界面跳轉打開打印,效率低下,無法與逐步優化的系統同步配套,仍然影響整體工作效率。為了進一步提升整體的工作效率,在物資合同統簽統付典型模式的大背景下,借助系統智能化、流程規范化調整的契機,提升電子合同簽訂的規范性與智能化。
1 項目管理系統簡介
項目管理系統是一款基于Html、CSS、Java等語言開發的C/S模式的合同在線管理系統。它包括了合同管理、功能設置、字典管理3大功能模塊。其中合同審核包括初始化代理、合同上傳、查詢代理、導出合同、合同審核、合同分類、批量打印、合同刪除等功能;功能設置主要包括打印機設置、修改密碼、用戶注冊等功能;字典管理模塊包括全局數據設置、客戶管理、客戶數據導入、用戶管理等功能。
2 合同導入模板設計
合同管理模塊中的合同導入是以SQL標準模板為基準的。該SQL模板具有的標題列有唯一ID、付款方編號、付款方名稱、收款方名稱、合同日期、更改日期、合同內容、備注、行業代碼、合同代碼、合同號碼等。具體設計代碼如下。
DROP TABLE IF EXISTS `tpt_contact_tabel`;
CREATE TABLE `tpt_contact_tabel` (
`tpt_id` int(32) NOT NULL,
`tpt_payer_code` varchar(255) NOT NULL,
`tpt_payee_name` varchar(32) NOT NULL,
`tpt_contact_cretime` datetime NOT NULL,
`tpt_contact_upttime` datetime NOT NULL,
`tpt_contact_content` varchar(255) NOT NULL,
`tpt_remark` varchar(255) DEFAULT NULL,
`tpt_industry_code` varchar(255) NOT NULL,
`tpt_contact_code` varchar(255) NOT NULL,
…………
PRIMARY KEY (`tpt_id`,`tpt_contact_code`)
);
按照這個模板設置的SQL數據表,通過合同管理的合同導入功能,在合同上傳后,可將合同信息導入到系統數據庫中。
3 總體設計策略
3.1 合同管理數據庫具體設計
對于合同管理系統中的合同管理對應一張合同數據表(contact_table),合同管理數據表主要由以下字段組成:唯一ID、合同名稱(name)、合同代碼(code)、存儲路徑(path)、是否打印(hasprt)等。具體主要設計代碼如下。
DROP TABLE IF EXISTS ` contact _table`;
CREATE TABLE ` contact _table` (
`id` int(32) NOT NULL,
`name` varchar(255) NOT NULL,
`code` varchar(255) NOT NULL,
`store_path` varchar(255) NOT NULL,
`hasprt` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
……
);
這里的hasprt表示合同是否打印,如果一條記錄被選中后打印,該屬性值將被設置為1,有效避免了重復打印。通過合同導入模板外鍵(合同編號)使得合同管理表與模板表相關聯。
3.2 自動化打印關鍵技術說明
要保證文件能夠自動化打印,首先要通過初始化設置,對打印設備進行智能化設置。打印機自動化打印設置步驟如下。
(1)建立打印服務器,并在打印服務器上設置2個共享驅動,驅動1配置為縱向輸出,驅動2配置為橫向輸出。
(2)在項目合同系統上開發打印功能,使得系統可以直接調用打印設備。
(3)用戶在選擇合同打印時,由打印服務器對打印任務進行負載均衡,產生2個打印隊列,分別用驅動1和2進行調用打印設備。
3.3 合同分類技術實現
在眾多的合同中,許多合同的類型相同。例如,合同的創建日期相同、合同的歸類相同、合同的付款方相同、合同的存儲路徑相同等。為了更加方便有效地組織合同,需要對這些相同種類的合同進行歸類處理,這就需要我們系統設計一個合同歸類功能。其實,合同分類非常簡單,原因是我們在后臺設計了合同信息的數據庫表,而所有的合同摘要信息都存儲在數據庫表中,通過讀數據庫操作,完成合同的分類可謂是輕而易舉。在后臺,我們為合同創建一個合同類,里面包含合同的細節信息,合同類如下。
public class Contact
{
private long id; //合同id
private String name="";//名字
private String code="";//代碼
private String store_path="";//存儲路徑
private int hasprt=0;//是否打印
……
}
通過將合同信息類化,更容易在后臺完成合同信息的管理操作。針對每一份合同,我們為該合同創建一個合同對象,然后將該對象序列化,并把它存儲到數據庫中,將每一個合同對象存儲到數據庫有以下優點[2]。
(1)存取方法(Accessor methods)將會使你對屬性的讀取和寫入過程做到完全控制,例如更新合同的付款方、修改創建時間等。
(2)每一級的每個記錄和屬性(的操作)都有確認過程。
(3)從數據庫表中智能地獲取合同對象,例如選擇付款方為×××的合同,可以直接獲取該合同的對象,然后具體的屬性可以通過對象get方法獲取。
(4)重復使用的邏輯方法意味著所有的數據庫交互都要通過相同的基礎代碼(codebase),這將使得合同維護變得更加簡單。
(5)代碼簡單,因為不同的合同記錄已經包含在各自所處的類(class)當中,而不是繁瑣的合同文件。
(6)在手工編寫代碼和SQL查詢語句時,出錯的機會將更少。
舉一個實際的例子,當合同的路徑需要改變時,項目管理系統會通過圖形化界面選擇你要存儲的路徑,通過函數調用,獲取更改后的存儲路徑,并更新數據庫。通過數據庫自動化操作,不但可以免去繁瑣的人工操作,同時避免了合同管理上的混亂,也降低了錯誤率。不僅是合同的存儲路徑更改上,合同的批量刪除、合同的更新日期改變等都可以通過后臺的數據庫操作來完成。具體實現代碼主要如下。
Public List
{
……
List
return res; //返回查詢結果
}
這里的參數arg是分類查詢語句,通過對arg設置,可以通過query函數(ContactDao是數據庫操作接口)獲取同一類型對象,實現了項目管理系統合同分類的功能。例如選付款方為“×××”的合同分類的arg設置為:
select * from contact _table where contact _table.code=
(select tpt_contact_code from tpt_contact_tabel where payer_code _=xxx )
通過對arg的設置,可以很靈活地更改輸入參數,從而實現了合同的分類查詢。
3.4 合同批量打印技術實現
在3.2節中,該文介紹了打印技術的自動化原理。針對文件的批量打印,我們借助合同分類查詢結果,進行如下操作。
public void sendtoPrnt(List
{
for(List
{
……
getPrinter().print(ctc.store_path+ctc.name);//獲取合同的打印絕對路徑
//調用打印機程序打印
……
}
}
由于打印機設置了雙驅動,打印服務器可以連接多臺打印設備,加速了打印過程。經過實踐表明,項目管理系統在管理項目和批量打印合同上效率對比人工操作有很大提升,并且大大減少了錯誤率。
4 結語
項目管理系統通過前端界面整合合同管理并連接物理打印設備,通過數據庫操作設定打印合同數據源,實現外接設備通過自動打印功能實現合同的自動批量打印操作。對比現有的業務操作方式,在達到合同規范性、安全性、保密目標的同時,具有更高的社會經濟效益、更強的業務處理能力,是整體物資合同簽訂業務應用的一個重要技術創新。
參考文獻
[1] 吳誠昊.物資合同統簽統付工作探討[J].貴州電力技術,2014(11):93-94.
[2] 蔣丹,王蘭成.大型數據庫對象關系技術的應用研究[J].計算機應用研究,2003,20(3):31-32.
[3] 彭有福.企業電能管理自動化系統的實現[D].華南理工大學,2012.