賈向煒+高瞻+徐菲
摘要:信訪信箱既區(qū)別傳統(tǒng)的信箱又不同于大家熟知的email電子信箱,它是紙質(zhì)信訪件的電子化、無(wú)紙化的電子信訪件的網(wǎng)絡(luò)信訪通道,它是根據(jù)國(guó)家最新的《信訪條例》的規(guī)定來(lái)向?qū)W校反映情況、提出建議、意見(jiàn)或者投訴請(qǐng)求。該系統(tǒng)是運(yùn)用工作流技術(shù)實(shí)現(xiàn)的典型的J2EE應(yīng)用,實(shí)現(xiàn)了寫(xiě)信、信訪辦轉(zhuǎn)信、部門(mén)處理、意見(jiàn)反饋,信訪件全生命周期管理,實(shí)現(xiàn)了信訪件辦理情況的實(shí)時(shí)查詢(xún)和信訪件的各類(lèi)統(tǒng)計(jì)功能。
關(guān)鍵詞:工作流;信訪;J2EE應(yīng)用
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)30-0053-04
Design and Implementation of the Petition Letters and Visits System Based on Workflow
JIA Xiang-wei, GAO Zhan,Xu Fei
(Data and Information Center of Xi'an JiaoTong university, Xi'an 710049, China)
Abstract: The Petition Letters and VisitsSystemis different from the traditional mailbox and email electronic mail box as we knew, which is the electronic, paperless electronic letters and visits of the paper petition channels. Letters and Visits Systemis according to the latest "letters and visits Ordinance" to reflect the situation, to propose suggestions, opinions or complaints reques.It is the typical J2EE applications whichusing of workflow technology. Realizingthe complete lifecycle management ofWriting Letter, departmentingthe petition, converting, feedbacking.And italsorealizes the real-time query of the petition and the statisticsfunction of the various types of letters and visits.
Key words: workflow; letters and visits; J2EE application
信訪信箱是響應(yīng)國(guó)家號(hào)召,以國(guó)家最新的《信訪條例》為依據(jù),運(yùn)用java語(yǔ)言,采用基于工作流的多層開(kāi)發(fā)框架技術(shù)實(shí)現(xiàn)的管理系統(tǒng),是典型的web2.0環(huán)境下的J2EE應(yīng)用。
該系統(tǒng)主要功能:1)我要寫(xiě)信 ;2)信訪職責(zé);3)寫(xiě)信幫助;4)信訪法規(guī);5)信件查詢(xún);6)信件處理;7)信件統(tǒng)計(jì)。技術(shù)特點(diǎn):基于工作流的J2EE平臺(tái)應(yīng)用,可以靈活處理各信件流程,方便流程的回退、流程監(jiān)控、流程查看。
1 關(guān)鍵技術(shù)介紹
1) 工作流技術(shù)
工作流技術(shù)是業(yè)務(wù)流程部分或全部自動(dòng)化執(zhí)行的一種技術(shù),在此過(guò)程中,工作任務(wù)按照指定的規(guī)則進(jìn)行轉(zhuǎn)送、傳遞,實(shí)現(xiàn)組織內(nèi)部成員間的有效協(xié)同工作。工作流最關(guān)鍵的技術(shù)就是工作引擎和工作流建模。
工作流引擎是工作流技術(shù)中的核心部件,完成工作流程的流程定義和實(shí)例化,為過(guò)程和活動(dòng)的執(zhí)行導(dǎo)航計(jì)算,并為流程的工作任務(wù)提供參與者、流程變量,并控制整個(gè)流程的業(yè)務(wù)流、數(shù)據(jù)流和信息流。本系統(tǒng)采用的是synchroflow工作流引擎,它是本土化的高效工作流的引擎技術(shù)。針對(duì)業(yè)務(wù)流程進(jìn)行梳理、建模、仿真、、流程啟動(dòng)、、流程監(jiān)控、流程度量和流程優(yōu)化,提供了業(yè)務(wù)流程全生命周期的管理和解決方案。
2) jquery技術(shù)
jquery是一套輕量級(jí)的JavaScript庫(kù),簡(jiǎn)化HTML與JavaScript之間的操作,可以兼容CSS3及各種瀏覽器。
2 系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
2.1 信訪流程工作流建模
本平臺(tái)采用工作流技術(shù),是B/S方式的典型J2EE應(yīng)用。系統(tǒng)的部署圖如圖1所示:
信訪件的信件受理流程如圖2所示:
信訪辦負(fù)責(zé)人員轉(zhuǎn)辦—>主辦部門(mén)辦理—>回復(fù)信訪人—>返學(xué)?!?gt;信訪辦負(fù)責(zé)人公示信件及處理結(jié)果。
通過(guò)工作流的建模的技術(shù)的運(yùn)用,該信訪信箱的模型圖3如下:
信訪秘書(shū)收到信訪信件反饋的信件進(jìn)行整理、處置、轉(zhuǎn)送其他部門(mén)或校領(lǐng)導(dǎo),處理完信件內(nèi)容,信訪秘書(shū)在秘書(shū)辦理環(huán)節(jié)可完成對(duì)信訪人的信件的回復(fù)、信件辦理完成等操作。
信訪件在部門(mén)內(nèi)部處理流程如下:
信訪秘書(shū)轉(zhuǎn)辦部門(mén)后,啟動(dòng)該子流程,根據(jù)轉(zhuǎn)辦的部門(mén)的個(gè)數(shù)來(lái)決定啟動(dòng)子流程的個(gè)數(shù)。子流程啟動(dòng)后,設(shè)定每個(gè)子流程的秘書(shū)整理的參與者變量,并開(kāi)始該活動(dòng)給相應(yīng)人員發(fā)送待辦,秘書(shū)轉(zhuǎn)辦部門(mén)領(lǐng)導(dǎo)后,轉(zhuǎn)辦給相關(guān)人員處理,最后領(lǐng)導(dǎo)審核后再由秘書(shū)代表本部門(mén)簽訂最后的信訪處理結(jié)果后,返回信訪辦。
2.2 關(guān)鍵技術(shù)實(shí)現(xiàn)
2.2.1 業(yè)務(wù)實(shí)現(xiàn)部分
通道方式是面向?qū)W校統(tǒng)一身份認(rèn)證賬號(hào)的用戶(hù),通道二方式是面向匿名用戶(hù),目前針對(duì)匿名用戶(hù)暫未開(kāi)放,因?yàn)槟涿膯?wèn)題處理后無(wú)法及時(shí)進(jìn)行反饋及相應(yīng)的處理。用戶(hù)通過(guò)統(tǒng)一身份認(rèn)證后,獲取到用戶(hù)的電子郵箱、聯(lián)系方式,方便信訪辦及時(shí)反饋。用戶(hù)填寫(xiě)信件標(biāo)題,信件內(nèi)容后,即提交流程,通過(guò)以下代碼實(shí)現(xiàn)流程提交。
ProcessInsBeanproIns = new ProcessInsBean();
proIns.setMonitorRmiUrl(monitorStr);
proIns.setRmiUrl(rmiStr);
proIns.setProcessInsId(Integer.parseInt(procId));
proIns.init();
String processinsname= (String) commonParams.get("description");
if(processinsname.length()>=180){
processinsname = processinsname.substring(0,180)+"…";
}
ProcessMonitorpMonitor = ProcessMonitorGlobalConf_XJTU.getInstance(); pMonitor.setProcessName(Integer.parseInt(procId),processinsname);
proIns.setRelevantData(datas);
proIns.start(username);
流程當(dāng)中比較關(guān)鍵的部分就是進(jìn)行子流程的開(kāi)始和結(jié)束部分,以下代碼實(shí)現(xiàn)工作流程的自動(dòng)啟動(dòng)。
[……
import com.flow.api.client.ProcessManager;
import com.flow.enactmentservice.processmonitor.ProcessMonitor; //引入相關(guān)類(lèi)庫(kù)
import com.flow.jdoa.getPerson;
import com.flow.jdoa.orgpersonMXJTU;//導(dǎo)入工具類(lèi)
……
public class startProcess_commonDoc {
/**
*公用子流程啟動(dòng)
* @paramprocessInsId流程實(shí)例ID
* @param operator 參與者
* @paramcommonParams公用相關(guān)參數(shù)map
* @processDefId流程定義過(guò)程編號(hào)
*/
public void startProcess_commonDoc(String processInsId,Stringoperator,HashMapcommonParams,StringprocessDefId)
{
String rmiStr=””;
rmiStr = PropertyServiceBean.getDbRmiUrl();//工作流服務(wù)器數(shù)據(jù)庫(kù)存取rmi的地址
ProcessManagerprocessManager =ProcessManager.getInstance(rmiStr);//獲取管理類(lèi)實(shí)例
ProcessMonitorprocessMonitor=ProcessMonitorGlobalConf_XJTU.getInstance();//獲取監(jiān)控類(lèi)實(shí)例
......
}}\&]
子流程的啟動(dòng)用異步發(fā)送的方式,用線程來(lái)進(jìn)行流程的啟動(dòng)。具體代碼如下:
......
//用線程來(lái)實(shí)現(xiàn)多部門(mén)發(fā)子流程 class Thread1 implements Runnable{
String procId;
String userName;
HashMapcommonParams;
public Thread1(String procId,StringuserName,HashMapcommonParams){
this.procId=procId;
this.userName=userName;
this.commonParams=commonParams;}
public void run() {
startProcess_commonDocstartCommonDoc = new startProcess_commonDoc();
startCommonDoc.startProcess_commonDocByPara(procId,userName,commonParams,"608127580");}}
Thread tread=new Thread(new Thread1(procId,curUser.getUsername(),commonParams));
tread.start();
......
針對(duì)系統(tǒng)用戶(hù)提交的信訪件需要及時(shí)進(jìn)行反饋信訪件的處理結(jié)果,因此,根據(jù)信訪件在提交、轉(zhuǎn)辦、部門(mén)辦理完成、發(fā)布時(shí),系統(tǒng)均自動(dòng)發(fā)送郵件。具體發(fā)送郵件的代碼如下:
MailSenderInfomailInfo = new MailSenderInfo(); //實(shí)例化郵件發(fā)送對(duì)象
mailInfo.setValidate(true);//設(shè)置校驗(yàn)用戶(hù)名、口令開(kāi)關(guān)
mailInfo.setMailServerHost("smtp.*.*");//設(shè)置郵件服務(wù)器的主機(jī)地址
mailInfo.setMailServerPort("25"); //設(shè)置郵件服務(wù)器的端口
mailInfo.setFromAddress("***@mail.xjtu.edu.cn"); //設(shè)置郵件發(fā)件地址
mailInfo.setToAddress(toAddress);//設(shè)置郵件收件地址
mailInfo.setUserName("***@mail.xjtu.edu.cn"); //設(shè)置發(fā)件郵箱用戶(hù)名
mailInfo.setPassword("****"); //設(shè)置發(fā)件郵箱口令
mailInfo.setSubject("領(lǐng)導(dǎo)信箱反映問(wèn)題處理情況");
String scontent ="您好!
?;?;?;?;?;?;?;?;";
scontent =scontent +content;
scontent =scontent+"
-------
";
scontent = scontent+"溫馨提示:此郵箱僅作學(xué)校信訪辦回復(fù)使用,不具有收信功能。
";
mailInfo.setContent(scontent); //設(shè)定發(fā)送內(nèi)容
SimpleMailSendersms = new SimpleMailSender(); //實(shí)例化簡(jiǎn)易發(fā)送郵件接口
//sms.sendTextMail(mailInfo);//發(fā)送文體格式郵件
sms.sendHtmlMail(mailInfo);//發(fā)送html格式郵件,系統(tǒng)用此方式
以下部分是針對(duì)發(fā)送郵件的核心功能進(jìn)行說(shuō)明:
public static booleansendHtmlMail(MailSenderInfomailSendInfo){
MyAuthenticatormyauth = null;
Properties mypro = mailSendInfo.getProperties();
//如果isValidate =true則表示需要身份認(rèn)證,應(yīng)實(shí)例化密碼驗(yàn)證器
if (mailSendInfo.isValidate()) {
myauth = new MyAuthenticator(mailSendInfo.getUserName(), mailSendInfo.getPassword());
}
// 實(shí)例化發(fā)送郵件session,參數(shù)1郵件會(huì)話屬性,參數(shù)2密碼驗(yàn)證器
Session smSession= Session.getDefaultInstance(mypro,myauth);
try {
Message mailBean = new MimeMessage(smSession);// 實(shí)例化郵件信息對(duì)象
Address fromAdress = new InternetAddress(mailSendInfo.getFromAdress());// 實(shí)例化郵件發(fā)送者地址
mailBean.setFrom(fromAdress); // 設(shè)定郵件來(lái)源地址
// 實(shí)例化郵件接收者地址toAdress,并設(shè)定到郵件對(duì)象中
Address toAdress = new InternetAddress(mailSendInfo.getToAddress()); mailBean.setRecipient(Message.RecipientType.TO,toAdress);
mailBean.setSubject(mailSendInfo.getSubject());// 設(shè)定郵件的主題
// 設(shè)定當(dāng)前系統(tǒng)時(shí)間為郵件發(fā)送的時(shí)間
mailBean.setSentDate(new Date());
Multipart mPart = new MimeMultipart();// 實(shí)例化MimeBodyPart對(duì)象
// 實(shí)例化MimeBodyPart,用于發(fā)送html郵件
BodyPartbodyPart = new MimeBodyPart();
bodyPart.setContent(mailSendInfo.getContent(), "text/html; charset=utf-8");
mPart.addBodyPart(bodyPart);// 設(shè)置HTML郵件內(nèi)容
mailBean.setContent(mPart);// 設(shè)定郵件內(nèi)容
Transport.send(mailBean);//發(fā)送郵件
return true;
} catch (MessagingExceptionme) {
me.printStackTrace(); }
return false; }
2.2.2 統(tǒng)計(jì)部分
針對(duì)系統(tǒng)的統(tǒng)計(jì)部分,采用了amCharts組件進(jìn)行展現(xiàn),動(dòng)態(tài)查詢(xún)數(shù)據(jù)動(dòng)畫(huà)顯示統(tǒng)計(jì)數(shù)據(jù),可以根據(jù)需要將數(shù)據(jù)顯示成柱形圖,條形圖,平滑線,餅圖等多種形式,用戶(hù)可以進(jìn)行的操作有放大,平移圖表,添加圖形說(shuō)明等。
以下部分實(shí)現(xiàn)了信訪文件按年度來(lái)進(jìn)行統(tǒng)計(jì)的柱圖:
varchartData = [];
functioncreatChart()
{
data ="<%=datainfo%>";
var rows = data.split(";");
for (var i = 0; i if (rows[i]) { var column = rows[i].split(":"); //key var s1= column[0]; //value var s2 = column[1]; //分割的值塞到每個(gè)子object vardataObject = {"da1":s1, "da2":s2}; //填充數(shù)組 chartData.push(dataObject); } } chart = new AmCharts.AmSerialChart(); chart.dataProvider = chartData; chart.categoryField = "da1"; chart.startDuration = 1; chart.depth3D = 20; chart.angle = 20; chart.columnWidth = 0.5; varcategoryAxis = chart.categoryAxis; categoryAxis.gridPosition = "start"; varchartCursor = new AmCharts.ChartCursor(); chartCursor.cursorAlpha = 0; chartCursor.zoomable = false; chartCursor.categoryBalloonEnabled = false; chart.addChartCursor(chartCursor); chart.creditsPosition = "top-right"; chart.write("columnchartdiv"); chart = new AmCharts.AmSerialChart(); chart.dataProvider = chartData; chart.categoryField = "da1"; chart.startDuration = 1; chart.depth3D = 20; chart.angle = 20; chart.columnWidth = 0.5; varcategoryAxis = chart.categoryAxis; categoryAxis.gridPosition = "start"; graph = new AmCharts.AmGraph(); graph.valueField = "da2"; graph.labelText = "[[value]]"; graph.balloonText = "[[category]]"; graph.type = "column"; graph.lineColor = "#197fe3"; graph.lineAlpha = 0; graph.fillAlphas = 0.8; chart.addGraph(graph); varchartCursor = new AmCharts.ChartCursor(); chartCursor.cursorAlpha = 0; chartCursor.zoomable = false; chartCursor.categoryBalloonEnabled = false; chart.addChartCursor(chartCursor); chart.creditsPosition = "top-right"; chart.write("columnchartdiv");} window.onload = function(){ 3 結(jié)束語(yǔ) 本系統(tǒng)是基于工作流技術(shù)實(shí)現(xiàn)的高校信訪信箱管理系統(tǒng),它的開(kāi)發(fā)和應(yīng)用,提高了信訪件的處理效率,透明度,公開(kāi)性。針對(duì)質(zhì)信訪件的處理進(jìn)行了無(wú)紙化、電子化、高效化的升級(jí)和改造,使得業(yè)務(wù)流程清晰,處理便捷,有效地提高了信訪的工作效率和透明度。 參考文獻(xiàn): [1] 陳農(nóng)心. 基于SSH2的新型網(wǎng)上信訪平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 制造業(yè)自動(dòng)化, 2011(6). [2] 楊飛. 省級(jí)網(wǎng)上信訪與公眾訴求信息處理系統(tǒng)的研究和實(shí)踐[J]. 電子政務(wù), 2008(Z1). [3] 高山. 近五年我國(guó)高校信訪工作研究綜述[J]. 浙江理工大學(xué)學(xué)報(bào), 2013(30):969-972.