myapps 會議管理設計與實現

來源:互聯網
上載者:User

標籤:

會議管理設計與實現文檔 會議管理

    資料庫:meetingdb

    資料表:1、meeting_info 2、meeting_join_user  (一對多關聯性)

菜單

1、我發起的會議(公開)

2、待參與的會議(公開)

3、待審批的會議(管理員,經理,主管)

4、所有會議列表(管理員)

註:  角色目前是按照個人自己的設計的角色,後期需要改為省平台的對應的角色

建立會議:建立會議時,把相關參與人的資料插入到meeting_join_user表

刪除會議:刪除會議時,把相關參與人的資料從meeting_join_user表刪除

預覽會議詳情頁面:查看會議詳情資訊

查詢會議參與人列表:查看會議參與人的資訊列表

帶參與會議列表:

回複是否參與會議:彈窗回複是否參與會議

會議流程圖:

員工:建立會議(提交)s----審批(提交)----發布

經理、主管:建立會議(提交)-----發布

 

運行:

員工:(我發起的會議,待參與的會議)

主管、經理:(我發起的會議,待參與的會議,待審批的會議)

管理員:(我發起的會議,待參與的會議,待審批的會議、所有會議管理列表)

 

 

開發技術關鍵點記錄: 添加資料:

在儲存操作的 動作後,或者動作前,進行對C表添加資料。

A表添加資料時,向C表也添加資料:

(function(){var doc = getCurrentDocument();var meeting_id=getItemValueAsString("meeting_id");var aa = doc.getItemValueAsString("user_list"); //表單使用者選擇框欄位if(!aa.equals("")&& aa.length()>0){var docids = splitText(aa, ";");var userlist = createObject("java.util.ArrayList");for (var i = 0; i < docids.length; i++) {if (docids != null) {var userVO = getUserById(docids[i]);userlist.add(userVO);}}var formProcess = getFormProcess();var process = getDocumentProcess(); var form = formProcess.doViewByFormName("meeting_join_user" , getApplication()); if(userlist!=null && userlist.size()>0){for(var i = 0; i < userlist.size(); i++){//迴圈條件var dataUser = userlist.get(i);var itemDoc = process.doNew(form,getWebUser(),createParamsTable());var userid=dataUser.getId();var sql = "select * from tlk_meeting_join_user where item_meeting_id='"+meeting_id; sql +="' and item_user_id='"+userid+"'";var existlist = queryBySQL(sql);if(existlist!=null && existlist.size()>0){}else{var depts = dataUser.getDepartments();var departmentName = "";for (var iter = depts.iterator(); iter.hasNext();) {var dept = iter.next();departmentName = dept.getName();}        //itemDoc.setParent(doc.getId());itemDoc.setAuthor(userid);//itemDoc.setIstmp(false);itemDoc.setApplicationid(getApplication());itemDoc.setDomainid(dataUser.getDomainid());itemDoc.addStringItem("meeting_id", meeting_id);itemDoc.addStringItem("user_id", userid);itemDoc.addStringItem("username", dataUser.getName());itemDoc.addStringItem("tel_phone", dataUser.getTelephone());itemDoc.addStringItem("department", departmentName);itemDoc.addStringItem("message", "");itemDoc.addStringItem("status", "wait");itemDoc.addDateItem("add_date", getToday());process.doCreate(itemDoc);}}}}})()


 

刪除資料:

A表刪除資料時,向C表也刪除資料:

(跟添加資料時的原理一樣):

(function(){var params = getParameter("_selects");       if(params!=null && params!=""){var recordids = splitText(params,";");//得到選中記錄組的idvar recordid = "";var appid=getApplication();//擷取應用IDvar a=new Packages.cn.myapps.core.deploy.application.ejb.ApplicationProcessBean();//執行個體化application的應用處理類var avo=a.doView(appid);//擷取軟體應用對象var did=avo.getDatasourceid();//擷取資料來源的IDvar db=new Packages.cn.myapps.core.dynaform.dts.datasource.ejb.DataSourceProcessBean();//執行個體化資料來源的應用處理類var kk=db.doView(did);//擷取資料來源對象var dbsname=kk.getName();//擷取資料來源名稱var process = new Packages.cn.myapps.core.dynaform.document.ejb.DocumentProcessBean(getApplication()); //執行個體化文檔對象for(var i=0;i<recordids.length;i++){var id = recordids[i];//process.doRemove(recordids[i]);//根據文檔ID,刪除文檔對象var sql = "delete from tlk_meeting_join_user where parent='"+id+"'";if(!"".equals(dbsname)){deleteByDSName(dbsname,sql);}}}})()


待參加會議資料查詢:

資料查詢SQL

(function(){        var user = getWebUser();        var userid = user.getId();var sql="";if(null!=userid || !"".equals(userid)){         sql = "select u.item_status, m.* from tlk_meeting_join_user as u LEFT JOIN tlk_meeting_info as m on u.ITEM_MEETING_ID =m.ITEM_MEETING_ID where u.ITEM_USER_ID='"+userid+"' and m.ITEM_MEETING_STATUS='發行' and m.ITEM_START_TIME>=now()";}        return sql;})()


 

視圖列跳轉視圖(當前頁)

查詢會議參與人列表

(function(){var request = $WEB.getParamsTable().getHttpRequest();//擷取當前 requestvar curr= getCurrentDocument();var meetingId=getItemValueAsString("meeting_id"); //var uid = getWebUser().getId();var url1="http://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();var view_id="11e6-10d5-c8907e8b-a931-c7e163d030f2";//視圖 id,瀏覽器的http請求可以看到var oldUrl = url1+"/portal/dynaform/view/displayView.action?_viewid="+view_id+"&clearTemp=true&application=11e6-10c7-cb2f4e2b-a931-c7e163d030f2&meetingId="+meetingId+"&_resourceid=11e6-10da-4b00d761-a931-c7e163d030f2";var rtn = "<a style=\"cursor:pointer;\" href='"+oldUrl+"' title='查詢參會人' ><font color='blue' >查詢參會人</font></a>";return rtn;})();

視圖上接收參數去查詢相關的記錄:

(function(){ var request = $WEB.getParamsTable().getHttpRequest();         var meetingId = request.getParameter("meetingId");        if(isNotNull(meetingId)){            request.getSession().setAttribute("usermeetingId",meetingId);        }else{            meetingId = request.getSession().getAttribute("usermeetingId");        }        println("=======mid=========="+meetingId);           var  sql="select * from tlk_meeting_join_user where item_meeting_id='"+meetingId+"'";         return sql;})()

視圖列跳轉表單(彈窗)

回複會議:

(function(){        var doc = getCurrentDocument();//當前的文檔對象var meetingid = doc.getItemValueAsString("meeting_id");//擷取所在行的會議idvar user = getWebUser();        var userid = user.getId();//擷取目前使用者的IDprintln("=======m======="+meetingid);println("=======u======="+userid);    var docid="";//記錄id    var formid="11e6-10d2-5c67ecc1-a931-c7e163d030f2";//相應記錄的表單id 固定的if(meetingid!=null && userid!=null){var sql = "select * from tlk_meeting_join_user where item_meeting_id='"+meetingid;sql +="' and item_user_id='"+userid+"'";var userlist = queryBySQL(sql);println("============="+userlist.size());if(userlist!=null && userlist.size()>0){   //遍曆結果集for(var iter1 = userlist.iterator();iter1.hasNext();){var itemdoc = iter1.next();if(itemdoc!=null){  docid=itemdoc.getId();//擷取查詢出的文檔的id  println("======m======"+itemdoc.getItemValueAsString("meeting_id"));  println("======u======"+itemdoc.getItemValueAsString("user_id"));}}}}        var subject = "回複";        var request = $WEB.getParamsTable().getHttpRequest();//擷取當前request        var url1="http://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();        var oldUrl = url1+"/portal/dynaform/document/view.action?user_reply=yes&_docid="+docid+"&_formid="+formid;        oldUrl += "&application="+getApplication();        oldUrl += "&isedit=true&signatureExist=false";        var url = "OBPM.dialog.show({opener:window.parent,title:'回複會議',url:'"+oldUrl+"',width:960,height:500,close:function(){}})";        return "<a style=\"cursor:pointer;\" onclick=\""+url+";\"><font color='blue'>"+subject+"</font></a>";})();


 

表單操作跳轉模板表單(會議詳情頁)(預覽)

視圖列跳轉模板表單

(function(){var id="";var formid="";var applicationid="";var url="";var pnama=getItemValueAsString("meeting_id");var sql="select id ,formid, applicationid,DOMAINID from tlk_meeting_info where item_meeting_id='"+pnama+"'";var querys=queryBySQL(sql); //println("sql****"+sql);if(querys!=null&& querys.size()>0){ var iter = querys.iterator();if(iter != null && iter.hasNext()){ doc = iter.next();id = doc.getId();formid=doc.getFormid();applicationid=doc.getApplicationid();}var request = $WEB.getParamsTable().getHttpRequest();url += "http://" + request.getServerName()+":" + request.getServerPort() + request.getContextPath();var templateForm="11e6-1259-48d33857-8df4-1fe7f193ff40";//模板idurl += "/portal/dynaform/document/view.action?_docid="+id+"&_formid="+formid+"&_templateForm="+templateForm+"&application="+applicationid;}return url;})()


 

流程中判斷角色是否允許進入路徑

判斷角色是否允許進入路徑:(主管、經理)

var rtn = false;var curDoc = getCurrentDocument();var webUser = curDoc.getAuthor();var roles = webUser.getRoles();if(roles != null && roles.size()>0){for(var iter = roles.iterator();iter.hasNext();){var roleVo = iter.next();var roleName = roleVo.getName();if("主管".equals(roleName)||"經理".equals(roleName)){rtn = true;break;}}} rtn;


判斷角色是否允許進入路徑:(員工)(代碼基本都差不多一致,只是返回true/false調整一下)

var rtn = true;var curDoc = getCurrentDocument();var webUser = curDoc.getAuthor();var roles = webUser.getRoles();if(roles != null && roles.size()>0){for(var iter = roles.iterator();iter.hasNext();){var roleVo = iter.next();var roleName = roleVo.getName();if("主管".equals(roleName)||"經理".equals(roleName)){rtn = false;break;}}} rtn;


 路勁執行的指令碼:(更改資料庫meeting_status欄位的狀態)

var doc =getCurrentDocument();doc.findItem("meeting_status").setValue("待審批");

var doc =getCurrentDocument();doc.findItem("meeting_status").setValue("發行");

流程執行路徑發布時  發送站內信、簡訊的、郵件

var doc =getCurrentDocument();doc.findItem("meeting_status").setValue("發行");var userIds = doc.getItemValueAsString("user_list");var meetingTitle = doc.getItemValueAsString("title");var startTime = doc.getItemValueAsString("start_time");var address = doc.getItemValueAsString("address");//發送語音總機參會人var send_way = doc.getItemValueAsString("send_way");var msgtitle=meetingTitle;var msgcontent="請各位準時出席《"+meetingTitle+"》會議,開始時間:"+startTime+"地點:"+address;var receiverId=userIds;var msgdescription="";var emailpassword="";var senderid=doc.getItemValueAsString("user_id");var uid = getWebUser().getId();  println("======cu======="+uid)println("======s======="+senderid)//調用#include "autosqllib";deliverMassage(send_way, msgtitle, msgcontent, receiverId,msgdescription,emailpassword, senderid);/*函數格式:deliverMassage(manner, msgtitle, msgcontent, receiverId, msgdescription, emailpassword, senderid)函數說明:Manner: 是發送類別 "10,20,30";字串類型 title : 是主題msgContent:內容receiverId:收件者的idmsgdescription :描述emailpassword :要發送郵件時,需要的郵箱密碼senderid  :類型的值 (可不傳)(date類型*/function deliverMassage(manner, title, content, receiverId, description, emailpassword, senderid) {        content = description + content;        var curuserprocess = getUserProcess();        var curuser = getWebUser();        var userIds = receiverId;        if (manner.indexOf("10") > -1) {                var MSreceiver = createObject("java.util.ArrayList");                MSreceiver = getUserIdList(userIds);                if (MSreceiver != null && MSreceiver.size() > 0) {                        for (var j = 0; j < MSreceiver.size(); j++) {                                sendMessage(senderid, MSreceiver.get(j), title, content);                        }                }        }        if (manner.indexOf("20") > -1) {                var docid = getId();                var receiver = "";                var isReply = false;                var isMass = true;                var SMSuser = createObject("java.util.ArrayList");                SMSuser = getUserList(userIds);                if (SMSuser != null && SMSuser.size()) {                        if (SMSuser.size() == 0) {                                isMass = false;                        }                        for (var i = 0; i < SMSuser.size(); i++) {                                receiver = receiver + SMSuser.get(i).getTelephone() + ",";                        }                        sendSMS(docid, title, content, receiver, isReply, isMass);                }        }        if (manner.indexOf("30") > -1 && emailpassword) {                var userVO = curuserprocess.doView(senderid);                var from = userVO.getEmail();                 // [email][email protected][/email]                var to = "";                 // [email][email protected][/email]                var SMuser = createObject("java.util.ArrayList");                SMuser = getUserList(userIds);                var i = from.indexOf("@");                var host = from.substring(i + 1);                 // teemlink.com                var user = from;                 // [email][email protected][/email]                // var emailpassword=getItemValue("emailpassword"); 123456                var bbc = null;                 // 抄送                var validate = true;                var subject = title;                var body = content;                if (SMuser != null && SMuser.size() > 0) {                        for (var i = 0; i < SMuser.size(); i++) {                                to = SMuser.get(i).getEmail();                                sendMail(from, to, subject, body, host, user, emailpassword, bbc, validate);                        }                }        }}//擷取userid結合返回list集合function getUserIdList(userIds) {        var userProcess = getUserProcess();        var userIdList = createObject("java.util.ArrayList");        var userList = createObject("java.util.ArrayList");        var doc = getCurrentDocument();        // var domainid = getDomainid();        userIdList = userIds.split(";");        for ( var i = 0; i < userIdList.length; i++) {                var user = userProcess.doView(userIdList[i]);                userList.add(user.getId());        }        return userList;}//擷取使用者物件集合function getUserList(userIds) {        var userProcess = getUserProcess();        var userIdList = createObject("java.util.ArrayList");        var userList = createObject("java.util.ArrayList");        var doc = getCurrentDocument();        // var domainid = getDomainid();        userIdList = userIds.split(";");        for ( var i = 0; i < userIdList.length; i++) {                var user = userProcess.doView(userIdList[i]);var userVo = getUserById(user.getId());                   userList.add(userVo);        }        return userList;}



 


 

myapps 會議管理設計與實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.