二、設計流程
???????? 我們學習的內容以“請假流程”為例。
1. 設計流程
開始 -> 提交申請 -> 部門經理審批 -> 結束:
開始 |
|
為其添加一個名稱為“提交申請”的 Task ,設置它的 Assignment 的 Actor 為“ #{applicantActorId} ”。 |
|
為其添加一個名稱為“審批”的 Task ,設置它的 Assignment 的 handler 為“ cn.itcast.oa.process.leave.DeptManagerAssignmentHandler ”。 |
|
結束 |
?
DeptManagerAssignmentHandler 類的實現明天再列出,將上面設計的流程部署到 OA 項目中。然后編寫測試類對流程進行測試。因為使用 JBPM 流程在前邊已經講過了,所以在些就不詳細列出了。上面的流程執行過程為,開始:創建流程實例 à 辦理任務:提交申請 à 辦理任務:部門經理審批 à 結束。
?
三、表單實例
???????? 我們已經將流程定義、表單定義搞定了和測試執行流程,接下來我們應該生成表單實例。將表單實例入到流程中進行流轉處理。
?
???????? 通過第一部分的全景圖我們知道: FormDefinition 、 FormInstance 、 ApproveInfo 與 Employee 之間的關系。
???????? FormDefinition :表單定義,能過定義生成實例。
???????? FormInstance :表單實例,一個流程中只能有一個表單實例。
???????? ApproveInfo :審批信息,一個流程中可以具有多個審批。
???????? Employee :職員
?
FormInstance :
public class FormInstance { ??? // 表單狀態常量 ??? 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 ; // 申請人 ??? private Date applyTime ; // 申請時間 ??? private String title ; // 標題 ??? private String status ; // 狀態 ??? private Set<ApproveInfo> approveInfos = new HashSet<ApproveInfo>(); // 審批信息 ??? private Long processInstanceId ; // 流程實例 ID //setters and getters… } |
?
ApproveInfo :
public class ApproveInfo { ??? private Long id ; ??? private Employee approver ; // 審批人 ??? private Date approveTime ; // 審批時間 ??? private FormInstance formInstance ; // 表單實例 ??? private boolean approval ; // 是否同意 ??? private String comment ; // 意見 ??? private Long taskInstanceId ; // 任務實例 ID //setters and getters… } |
?
???????? 現在看一看什么才是最重要的?就是這些實體,實體體現了業務邏輯。把業務邏輯搞明白了,實體設計出來了。實現上沒有什么太難的。
?
???????? 明日將學習具體生成表單實例并應用到流程中,生成審批信息等。我們也可以查看自己的申請和待我申請等與審批模塊相關的操作信息。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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