提交申請(qǐng)->部門經(jīng)理審批->結(jié)束:開始為其添加一個(gè)名稱為“提交申請(qǐng)”的Task,設(shè)置它的Assignment的Actor為“#{applicantActorId}”。為其添加一個(gè)名稱為“審批”的Task,設(shè)置它的Assignment的handler為“cn.itcast.oa.process.leave.DeptManagerAssignmentHandler”。結(jié)束DeptManagerA" />

黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

轉(zhuǎn):傳智播客—jbpm與OA項(xiàng)目(七) 續(xù)二

系統(tǒng) 2331 0

二、設(shè)計(jì)流程

???????? 我們學(xué)習(xí)的內(nèi)容以“請(qǐng)假流程”為例。

1. 設(shè)計(jì)流程

開始 -> 提交申請(qǐng) -> 部門經(jīng)理審批 -> 結(jié)束:

clip_image005

開始

為其添加一個(gè)名稱為“提交申請(qǐng)”的 Task ,設(shè)置它的 Assignment Actor 為“ #{applicantActorId} ”。

為其添加一個(gè)名稱為“審批”的 Task ,設(shè)置它的 Assignment handler 為“ cn.itcast.oa.process.leave.DeptManagerAssignmentHandler ”。

結(jié)束

?

DeptManagerAssignmentHandler 類的實(shí)現(xiàn)明天再列出,將上面設(shè)計(jì)的流程部署到 OA 項(xiàng)目中。然后編寫測(cè)試類對(duì)流程進(jìn)行測(cè)試。因?yàn)槭褂? JBPM 流程在前邊已經(jīng)講過了,所以在些就不詳細(xì)列出了。上面的流程執(zhí)行過程為,開始:創(chuàng)建流程實(shí)例 à 辦理任務(wù):提交申請(qǐng) à 辦理任務(wù):部門經(jīng)理審批 à 結(jié)束。

?

三、表單實(shí)例

???????? 我們已經(jīng)將流程定義、表單定義搞定了和測(cè)試執(zhí)行流程,接下來我們應(yīng)該生成表單實(shí)例。將表單實(shí)例入到流程中進(jìn)行流轉(zhuǎn)處理。

?

???????? 通過第一部分的全景圖我們知道: FormDefinition FormInstance ApproveInfo Employee 之間的關(guān)系。

???????? FormDefinition :表單定義,能過定義生成實(shí)例。

???????? FormInstance :表單實(shí)例,一個(gè)流程中只能有一個(gè)表單實(shí)例。

???????? ApproveInfo :審批信息,一個(gè)流程中可以具有多個(gè)審批。

???????? Employee :職員

?

FormInstance

public class FormInstance {

??? // 表單狀態(tài)常量

??? public static final String STATUS_PROCESSING = " 正在審批中 " ;

??? public static final String STATUS_APPROVED = " 已通過審批 " ;

??? public static final String STATUS_NOT_APPROVED = " 未通過審批 " ;

???

??? private Long id ;

??? private FormDefinition formDefinition ; // 使用的表單定義

??? private Map<String, Serializable> propertyMap = new HashMap<String, Serializable>(); // 表單信息

?

??? private Employee applicant ; // 申請(qǐng)人

??? private Date applyTime ; // 申請(qǐng)時(shí)間

??? private String title ; // 標(biāo)題

??? private String status ; // 狀態(tài)

??? private Set<ApproveInfo> approveInfos = new HashSet<ApproveInfo>(); // 審批信息

??? private Long processInstanceId ; // 流程實(shí)例 ID

//setters and getters…

}

?

ApproveInfo

public class ApproveInfo {

??? private Long id ;

??? private Employee approver ; // 審批人

??? private Date approveTime ; // 審批時(shí)間

??? private FormInstance formInstance ; // 表單實(shí)例

??? private boolean approval ; // 是否同意

??? private String comment ; // 意見

??? private Long taskInstanceId ; // 任務(wù)實(shí)例 ID

//setters and getters…

}

?

???????? 現(xiàn)在看一看什么才是最重要的?就是這些實(shí)體,實(shí)體體現(xiàn)了業(yè)務(wù)邏輯。把業(yè)務(wù)邏輯搞明白了,實(shí)體設(shè)計(jì)出來了。實(shí)現(xiàn)上沒有什么太難的。

?

???????? 明日將學(xué)習(xí)具體生成表單實(shí)例并應(yīng)用到流程中,生成審批信息等。我們也可以查看自己的申請(qǐng)和待我申請(qǐng)等與審批模塊相關(guān)的操作信息。

轉(zhuǎn):傳智播客—jbpm與OA項(xiàng)目(七) 續(xù)二


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論