欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

轉:傳智播客—jbpm與OA項目(八)

系統 2172 0

前兩天我們已經完成了流程定義的管理和表單的定義的管理。今天們將整合這兩大模塊,使他們形成一個標準的工作流程。

?

?

?

?

???????? 在學習 OA 項目時,就像學習其他知識一樣跟著老師的思路走。有的時候東西講的比較多就一頭霧水,這是正常的。但最近我在寫學習總結時候發現老師講的東西很簡單,為什么我們會一頭霧水?原因一,我們用錯的學習方法。首先老師講的是什么他已經給了我們框架了,所以在老師講某個東西時我們要在自己的腦子里有一個宏觀的實現框架。然后再去聽細節,這樣老師無論怎么講我們都在自己的框架內。如果自己的框架錯了就改一下。原因二,我們畏懼新知識,未知領域是我們意象中的巨大敵人。這是錯誤的,我們應該像那樣,我們應該藐視敵人。

?

?

?

???????? 你知道嗎?我近兩天就使用這樣的方法,老師講什么我先在自己的腦子中有框架。然后十分藐視 OA 項目,我看它看得非常簡單。當老師講完某一應用時,我發現自己的框架和實現過程是完全正確的。我應該繼續保持和提升這樣的方法,加強以后的工作和學習效率。

?

?

?

???????? 只要我們用心去體會與發現身邊的事物,我們就可以從他們身上獲得更多的知識。我寫日志本想是能在文字和文章結構上有所提升,但現在提升的遠不只這些。清晰的思路,對知識點的掌握

?

?

?

???????? 今日的重點內容是將表單實例與流程實例整合運行,關于各申請信息的查詢在此就不做總結了。

?

?

?

一、 審批流轉 之起草申請

?

?

???????? 起草申請便是將所有添加的申請表單列出來,然后用戶選擇相應的申請表單并填寫,然后提交申請:

?

clip_image001

?

?

???????? 下面我們來看一下 ApprovalflowAction 的實現:

?

1. 起草申請

?

/**

?

? * 起草申請(表單定義列表)

?

? */

?

public ActionForward list(ActionMapping mapping, ActionForm form,

?

??????? HttpServletRequest request, HttpServletResponse response)

?

??????? throws Exception {

?

??? // 獲取表單定義列表

?

??? List<FormDefinition> formDefinitionList = formDefinitionService

?

??? ??????? .findAll();

?

??? request.setAttribute( "formDefinitionList" , formDefinitionList);

?

??? return mapping.findForward( "list" ); // list. jsp

?

}

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

???????? 有關 service 的實現,我就不列出來了,因為那十分簡單。

?

?

?

2. 申請頁面

?

???????? 我們應該如何顯示自定義表單?在“ FormDefinition ”實體中有一個“ templatePath ”屬性,我們在顯示頁面調用“ < jsp:include page = " ${formInstance.formDefinition.templatePath} " /> ”即可顯示相關表單。

?

/**

?

? * 申請頁面(填寫表單的頁面)

?

? */

?

public ActionForward applyUI(ActionMapping mapping, ActionForm form,

?

??????? HttpServletRequest request, HttpServletResponse response)

?

??????? throws Exception {

?

??? // 獲取表單定義 ID

?

??? Long id = Long. parseLong (request.getParameter( "formDefinitionId" ));

?

??? // 獲取表單文件路徑

?

??? FormDefinition formDefinition = formDefinitionService .getById(id);

?

??? return new ActionForward (formDefinition.getTemplatePath());

?

}

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

3. 提交申請

?

/**

?

? * 提交表單

?

? */

?

public ActionForward apply(ActionMapping mapping, ActionForm form,

?

??????? HttpServletRequest request, HttpServletResponse response)

?

??????? throws Exception {

?

??? // 獲取表單定義

?

??? Long formDefinitionId = Long. parseLong (request

?

??????????? .getParameter( "formDefinitionId" ));

?

??? FormDefinition formDefinition = formDefinitionService

?

??????????? .getById( formDefinitionId );

?

??? // 獲取當前用戶

?

??? User user = (User) request.getSession().getAttribute( "user" );

?

??? // 創建表單實例

?

??? FormInstance formInstance = new FormInstance();

?

??? formInstance.setApplicant(user.getEmployee());

?

??? formInstance.setApplyTime( new Date());

?

??? formInstance.setFormDefinition(formDefinition);

?

?

?

??? // 保存表單數據

?

??? for (String name : formDefinition.getFieldDefinitionList().keySet()) {

?

??????? String strValue = request.getParameter(name);

?

??????? Class valueType = formDefinition.getFieldDefinitionList().get(name);

?

??????? Converter converter = ConvertUtils. lookup (valueType);

?

??????? Serializable value = (Serializable) converter.convert(valueType,

?

??????????????? strValue);

?

??????? formInstance.getPropertyMap().put(name, value);

?

??? }

?

?

?

??? // 提交

?

??? formInstanceService .submitFormInstance(formInstance);

?

??? // 轉到我的申請列表

?

??? return mapping.findForward( "toMyApplicationList" );

?

}

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

我們有必要,列出“ submitFormInstance ”方法的實現。提交申請后,我們需要將申請數據保存到數據庫中。并開啟流程,使流程開始流轉:

?

/**

?

? * 保存申請并開始流轉

?

? */

?

public void submitFormInstance(FormInstance formInstance) {

?

??? // 保存表單數據

?

??? getSession().save(formInstance);

?

??? //------------------ 開啟流程 ---------------

?

??? // 創建流程實例

?

??? ProcessDefinition pd = getJbpmContext().getGraphSession().findLatestProcessDefinition( "leave" );

?

??? ProcessInstance pi = pd.createProcessInstance();

?

??? // 設置變量

?

??? String applicantActorId = formInstance.getApplicant().getId().toString();

?

??? // 第一個任務分配給(在這里是申請人)

?

??? pi.getContextInstance().setVariable( "applicantActorId" , applicantActorId);

?

??? // 申請的數據

?

??? pi.getContextInstance().setVariable( "formInstance" , formInstance);

?

??? // 更新 FormInstance

?

??? // 標題格式: { 表單名稱 }_{ 申請人姓名 }_{ 申請日期 }

?

??? formInstance.setTitle(formInstance.getFormDefinition().getName() + "_" + formInstance.getApplicant().getName() + "_" //

?

??????????? + sdf .format(formInstance.getApplyTime()));

?

??? // 設置狀態為:正在流轉 ...

?

??? formInstance.setStatus(FormInstance. STATUS_PROCESSING );

?

??? formInstance.setProcessInstanceId(pi.getId());

?

??? // Signal

?

??? pi.signal();

?

??? // 辦理任務:提交申請

?

??? TaskInstance ti = (TaskInstance) pi.getTaskMgmtInstance() //

?

??????????? .getUnfinishedTasks(pi.getRootToken()) //

?

??????????? .iterator().next();

?

??? ti.start();

?

???? // 此處會自動將下一個任務觸發(保存到數據庫中)

?

??? ti.end();

?

}

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

OK ,上面就完成了起草申請的整個過程!

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

轉:傳智播客—jbpm與OA項目(八)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色综合色狠狠天天综合色 | 丁香婷婷激情 | 成人在线一区二区三区 | 亚州精品天堂中文字幕 | 成人福利视频网 | 精品96久久久久久中文字幕无 | 精品推荐国产麻豆剧传媒 | 欧美性猛交一区二区三区精品 | 香港三级台湾三级在线播放徐 | 亚洲精品黄色 | 欧美一区二区三区中文字幕 | 97国产精品视频人人做人人爱 | 亚洲 日本 欧美 中文幕 | 亚洲狠狠婷婷综合久久久久图片 | 精品免费在线视频 | 久久亚洲一区二区 | 久久久国产精品 | 午夜视频在线观看一区 | 日本一区欧美 | 欧美一区二区在线播放 | 欧美福利视频在线观看 | 亚洲精品综合 | 免费国产va在线观看视频 | 久久久久久国产精品久久 | 亚洲白拍 | 日韩精品一级毛片 | 色婷婷久久综合中文久久一本 | 久久久久国产视频 | 大色综合| 2019中文字幕在线视频 | 无限看片在线版免费视频大全 | 久久久久久黄 | 国产3级在线观看 | 91精品国产日韩91久久久久久 | 成人片黄网站A片免费 | 亚洲免费观看在线视频 | 色99视频 | 黄色毛片视频 | 亚洲视频在线观看地址 | 国产大片免费天天看 | 亚洲精品三级 |