-----box-----
程式 1
void tbDocMouseClicked(MouseEvent e) {
//以上略...
//若點選公文對應登入者有處理中狀態,則開放內容維護
sql.setLength(0);
sql.append("select docno from document_detail where docno = '" + docno + "' and iscomplete = 'P' and userid = '" + this.loginFrame.userid + "' ");
log.debug("sql=" + sql);
hd = loginFrame.dao.executeQuery(sql.toString());
if (hd.getRowcount() > 0) {
rbYes.setEnabled(true);
rbNo.setEnabled(true);
taProDoccontent2.setEditable(true);
btSend.setEnabled(true);
}
else {
rbYes.setEnabled(false);
rbNo.setEnabled(false);
taProDoccontent2.setEditable(false);
btSend.setEnabled(false);
}
tpContent.setSelectedIndex(2);
}
-----end-----
-----box-----
#程式 2
/**
* 送出處理
* @param e ActionEvent
*/
void btSendActionPerformed(ActionEvent e) {
if (!rbYes.isSelected() && !rbNo.isSelected()) {
JOptionPane.showMessageDialog(this, "動作未選擇!", "錯誤", JOptionPane.ERROR_MESSAGE);
return;
}
if (rbYes.isSelected()) { //允可
String dockind = tfProDockind.getText();
String userid = this.loginFrame.userid;
String docno = tfProDocno.getText();
String doctitle = tfProDoctitle.getText();
String doccontent = tfProDoccontent.getText();
String docstatus = tfProDocstatus.getText();
String today = new java.sql.Timestamp(System.currentTimeMillis()).toString();
today = today.substring(0, today.indexOf("."));
today = today.replace('-', '/');
//update document_detail
StringBuffer sql = new StringBuffer();
String doccontent2 = "";
try {
doccontent2 = new String(taProDoccontent2.getText().getBytes("BIG5"), "ISO-8859-1");
}
catch (UnsupportedEncodingException ex) {
log.error(ex);
}
sql.append("update document_detail set doccontent = '" + doccontent2 + "', iscomplete = 'Y' where docno = '" + docno + "' and userid = '" + userid + "' and iscomplete = 'P' "); //---------(1)
log.debug("sql=" + sql);
this.loginFrame.dao.executeUpdate(sql.toString()); //---------(2)
if (this.isStepComplete(docno, userid)) { //判斷此站對應使用者是否全部完成
//取得下一流程要傳送人員
ArrayList user_list = this.getSendUser(dockind, userid); //---------(3)
//略...
if (user_list.size() == 0) { //公文流程已全部完成 //---------(4)
sql.setLength(0);
sql.append("update document set docstatus = 'Y' where docno = '" + docno + "' ");
log.debug("sql=" + sql);
this.loginFrame.dao.executeUpdate(sql.toString());
tfProDocstatus.setText("Y");
//回傳給發送人
try {
String send_userid = tfProUserid.getText();
//決定docseq
int docseq = getDocseq(docno);
log.debug("docseq=" + docseq);
//insert document_detail ---------(5)
doccontent2 = "簽核完成!";
try {
doccontent2 = new String(doccontent2.getBytes("BIG5"), "ISO-8859-1");
}
catch (UnsupportedEncodingException ex) {
log.error(ex);
}
sql.setLength(0);
sql.append("insert into document_detail (docno, docseq, docdate, doccontent, userid, iscomplete) values ('" + docno + "'," + docseq + ",'" + today + "','" + doccontent2 + "','" + send_userid + "','N' ) ");
log.debug("sql=" + sql);
this.loginFrame.dao.executeUpdate(sql.toString());
QueueConnection queueConn = sl.getQueueConection();
//傳送Message
QueueSession qcSession = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = sl.getQueue("queue/" + send_userid + "Queue");
log.debug("send queue name=" + "queue/" + send_userid + "Queue");
QueueSender sender = qcSession.createSender(queue);
sender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
MapMessage msg = qcSession.createMapMessage();
msg.setString("docno", docno);
msg.setInt("docseq", docseq);
msg.setString("dockind", dockind);
msg.setString("docdate", today);
msg.setString("doctitle", doctitle);
msg.setString("doccontent", doccontent);
msg.setString("userid", userid);
msg.setString("docstatus", "Y");
sender.send(msg);
qcSession.close();
queueConn.close();
}
catch (Exception ex) {
log.error(ex);
}
}
} //end 判斷此流程是否全部完成
}
else if (rbNo.isSelected()) { //駁回
String dockind = tfProDockind.getText();
String userid = this.loginFrame.userid;
String docno = tfProDocno.getText();
String doctitle = tfProDoctitle.getText();
String doccontent = tfProDoccontent.getText();
String docstatus = tfProDocstatus.getText();
String today = new java.sql.Timestamp(System.currentTimeMillis()).toString();
today = today.substring(0, today.indexOf("."));
today = today.replace('-', '/');
//update document_detail
StringBuffer sql = new StringBuffer();
String doccontent2 = "";
try {
doccontent2 = new String(taProDoccontent2.getText().getBytes("BIG5"), "ISO-8859-1");
}
catch (UnsupportedEncodingException ex) {
log.error(ex);
} //---------(6)
sql.append("update document_detail set doccontent = '" + doccontent2 + "', iscomplete = 'Y' where docno = '" + docno + "' and userid = '" + userid + "' and iscomplete = 'P' ");
log.debug("sql=" + sql);
this.loginFrame.dao.executeUpdate(sql.toString());
//回傳給發送人
try {
String send_userid = tfProUserid.getText();
//決定docseq
int docseq = getDocseq(docno);
log.debug("docseq=" + docseq);
//insert document_detail ---------(7)
sql.setLength(0);
sql.append("insert into document_detail (docno, docseq, docdate, doccontent, userid, iscomplete) values ('" + docno + "'," + docseq + ",'" + today + "','','" + send_userid + "','N' ) ");
log.debug("sql=" + sql);
this.loginFrame.dao.executeUpdate(sql.toString());
QueueConnection queueConn = sl.getQueueConection();
//傳送Message
QueueSession qcSession = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = sl.getQueue("queue/" + send_userid + "Queue");
log.debug("send queue name=" + "queue/" + send_userid + "Queue");
QueueSender sender = qcSession.createSender(queue);
sender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
MapMessage msg = qcSession.createMapMessage();
msg.setString("docno", docno);
msg.setInt("docseq", docseq);
msg.setString("dockind", dockind);
msg.setString("docdate", today);
msg.setString("doctitle", doctitle);
msg.setString("doccontent", doccontent);
msg.setString("userid", userid);
msg.setString("docstatus", docstatus);
sender.send(msg);
qcSession.close();
queueConn.close();
}
catch (Exception ex) {
log.error(ex);
}
}
-----end-----
-----box-----
#程式 3
//update document_detail
if (docstatus.equals("Y")) {
sql.setLength(0);
sql.append("update document_detail set iscomplete ='Y' where docno ='" + docno + "' and docseq=" + docseq + " ");
log.debug("sql=" + sql);
dao.executeUpdate(sql.toString());
}
-----end-----
-----box-----
#程式 3
/**
* 判別此使用者所處站別是否全部完成
*/
private boolean isStepComplete(String docno, String userid) {
boolean is_complete = true; //是否完成
DAOBean dao = loginFrame.dao;
ArrayList role_list = new ArrayList();
//---------(1)
//取得對應角色
StringBuffer sql = new StringBuffer();
sql.append("select rolename from useraccount where userid = '" + userid + "' ");
log.debug("sql=" + sql);
HashData hd_rolename = dao.executeQuery(sql.toString());
String rolename = hd_rolename.getString(1, "rolename");
try {
rolename = new String(rolename.getBytes("ISO-8859-1"), "BIG5");
}
catch (UnsupportedEncodingException ex) {
log.error(ex);
}
//---------(2)
sql.setLength(0);
sql.append("select dockind from document where docno ='" + docno + "' ");
log.debug("sql=" + sql);
HashData hd_dockind = dao.executeQuery(sql.toString());
String dockind = hd_dockind.getString(1, "dockind");
try {
dockind = new String(dockind.getBytes("ISO-8859-1"), "BIG5");
}
catch (UnsupportedEncodingException ex) {
log.error(ex);
}
//---------(3)
ArrayList list = (ArrayList) loginFrame.forms_map.get(dockind);
boolean is_found = false;
for (int i = 0; i < list.size(); i++) {
ArrayList list2 = (ArrayList) list.get(i);
for (int j = 0; j < list2.size(); j++) {
String rolename2 = (String) list2.get(j);
if (rolename.equals(rolename2)) { //found
is_found = true;
role_list = list2;
}
if (is_found) {
break;
}
}
if (is_found) {
break;
}
}
if (role_list.size() > 0) { //
for (int i = 0; i < role_list.size(); i++) {
String t_role = (String) role_list.get(i);
try {
t_role = new String(t_role.getBytes("BIG5"), "ISO-8859-1");
}
catch (UnsupportedEncodingException ex) {
log.error(ex);
}
//---------(4)
sql.setLength(0);
sql.append("select userid from useraccount where rolename = '" + t_role + "' ");
log.debug("sql=" + sql);
HashData hd_user = dao.executeQuery(sql.toString());
String t_userid = hd_user.getString(1, "userid");
sql.setLength(0);
sql.append("select b.docno from document_detail b where b.docno ='" + docno + "' and b.userid = '" + t_userid + "' and b.iscomplete <> 'Y' ");
log.debug("sql=" + sql);
HashData hd_check = dao.executeQuery(sql.toString());
if (hd_check.getRowcount() > 0) { //尚有人未完成
is_complete = false;
break;
}
}
}
return is_complete;
}
-----end-----
-----box-----
#程式 5
-----end-----
-----box-----
insert into useraccount (userid, passwd, rolename) values ('senshaw', 'senshaw','員工' );
insert into useraccount (userid, passwd, rolename) values ('nana', 'nana','經理' );
insert into useraccount (userid, passwd, rolename) values ('dodo', 'dodo','總經理' );
-----end-----
-----box-----
#程式 6
jboss.mq:service=DestinationManager
jboss.mq:service=SecurityManager
jboss.mq:service=DestinationManager
jboss.mq:service=SecurityManager
jboss.mq:service=DestinationManager
jboss.mq:service=SecurityManager
-----end-----
-----box-----
insert into useraccount (userid, passwd, rolename) values ('user', 'user','使用者' );
insert into useraccount (userid, passwd, rolename) values ('umgr', 'umgr','使用者部門主管' );
insert into useraccount (userid, passwd, rolename) values ('mismgr', 'mismgr','MIS部門主管' );
-----end-----