0
点赞
收藏
分享

微信扫一扫

Jbpm表单流转的示意图


一、示意图:

Jbpm表单流转的示意图_字符串

二、实体类:
1、申请模板

/**
* 实体:申请模板
*
* @author chen.lin
*
*/@Entity
@Table(name = "workflow_applicationTemplate")
public class ApplicationTemplate {

private Long id;
private String name;
private String processDefinitionKey;
private String path; // 文件在服务器端存储的路径
private Set<Application> applications = new HashSet<Application>();

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getProcessDefinitionKey() {
return processDefinitionKey;
}

public void setProcessDefinitionKey(String processDefinitionKey) {
this.processDefinitionKey = processDefinitionKey;
}

public String getPath() {
return path;
}

public void setPath(String path) {
this.path = path;
}

@OneToMany(cascade= {CascadeType.ALL},fetch=FetchType.EAGER ,mappedBy="applicationTemplate")
@OrderBy("id asc")
public Set<Application> getApplications() {
return applications;
}

public void setApplications(Set<Application> applications) {
this.applications = applications;
}



}

2、申请表单

/**
* 表单申请
* @author Administrator
*
*/
@Entity
@Table(name = "workflow_application")
public class Application {
/** 表单状态常量:审批中 */
public static final String STATUS_RUNNING = "审批中";
/** 表单状态常量:已通过 */
public static final String STATUS_APPROVED = "已通过";
/** 表单状态常量:未通过 */
public static final String STATUS_REJECTED = "未通过";

private Long id;
private ApplicationTemplate applicationTemplate;
private Set<ApproveInfo> approveInfos = new HashSet<ApproveInfo>();
private User applicant;// 申请人

private String title;// 标题
private Date applyTime;// 申请时间
private String path;// 文档的存储路径
private String status; // 当前的状态

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

@ManyToOne
@JoinColumn(name="applicationTemplateId")
public ApplicationTemplate getApplicationTemplate() {
return applicationTemplate;
}

public void setApplicationTemplate(ApplicationTemplate applicationTemplate) {
this.applicationTemplate = applicationTemplate;
}

@ManyToOne
@JoinColumn(name="applicantId")
public User getApplicant() {
return applicant;
}

public void setApplicant(User applicant) {
this.applicant = applicant;
}

public Date getApplyTime() {
return applyTime;
}

public void setApplyTime(Date applyTime) {
this.applyTime = applyTime;
}

public String getPath() {
return path;
}

public void setPath(String path) {
this.path = path;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getStatus() {
return status;
}

public void setStatus(String status) {
this.status = status;
}

@OneToMany(cascade= {CascadeType.ALL},fetch=FetchType.EAGER ,mappedBy="application")
@OrderBy("id asc")
public Set<ApproveInfo> getApproveInfos() {
return approveInfos;
}

public void setApproveInfos(Set<ApproveInfo> approveInfos) {
this.approveInfos = approveInfos;
}
}

3、审批信息

@Entity
@Table(name = "workflow_approveInfo")
public class ApproveInfo {
private Long id;
private Application application; //
private User approver;// 审批人

private Date approveTime;// 审批时间
private boolean approval; // 是否通过
private String comment; // 审批意见

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

@ManyToOne
@JoinColumn(name="approverId")
public User getApprover() {
return approver;
}

public void setApprover(User approver) {
this.approver = approver;
}

public Date getApproveTime() {
return approveTime;
}

public void setApproveTime(Date approveTime) {
this.approveTime = approveTime;
}

@ManyToOne
@JoinColumn(name="applicationId")
public Application getApplication() {
return application;
}

public void setApplication(Application application) {
this.application = application;
}

public boolean isApproval() {
return approval;
}

public void setApproval(boolean approval) {
this.approval = approval;
}

public String getComment() {
return comment;
}

public void setComment(String comment) {
this.comment = comment;
}
}

三、【审批流转的约定】:

审批流程:
第一个环节是“提交申请”,以后每个环节基本上都是“审批”环节。

1,第一个活动是“提交申请”,办理人是申请人,也就是提交申请时的当前登录用户。

2,在我们的程序中,使用User对象表示用户,在JBPM中使用字符串表示参与者。
可以使用User中的一个不会重复的属性值作为JBPM的用户标识。
比如可以是id.toString()或是loginName.

3,在第一个“提交申请”的环节中会产生一个“申请信息”,
要求在流程中后面的每个环节中都应能方便的获取这个“申请信息”。
可以在“提交申请”环节设置一下流程变量:setVariable(“application”, application);

4,(对应第一条)“提交申请”环节的办理人应写为:assignee=”#{application.applicant.loginName}”


举报

相关推荐

0 条评论