package com.oa.model;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
/**
* 公文
* @author Big mac
*
*/
@Entity
@Table(name="oa_document")
public class Document implements Serializable{
public static String New="新建";
public static String Finish="完成";
/**
* 文档 id
*/
private Integer id;
/**
* 文档标题
*/
private String title;
/**
* 文档内容
*/
private String doc;
/**
* 文档描述
*/
private String description;
/**
* 文档创建时间
*/
private Date createTime;
/**
* 文档状态
*/
private String status;
/**
* 创建者
*/
private Users users;
/**
* 所属工作流程
*/
private WorkFlow workFlow;
private Long processInstanceId;
//持久化在本地文件的Key
private String typePersist;
//持久化本地key对应的URL
private String url;
//
private Set<DocumentProperty> props=new HashSet<DocumentProperty>();
@Id
@GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Temporal(TemporalType.DATE)
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="creator", referencedColumnName="id")
public Users getUsers() {
return users;
}
public void setUsers(Users users) {
this.users = users;
}
@ManyToOne(cascade={CascadeType.ALL},fetch=FetchType.LAZY)
@JoinColumn(name="workflow",referencedColumnName="id")
public WorkFlow getWorkFlow() {
return workFlow;
}
public void setWorkFlow(WorkFlow workFlow) {
this.workFlow = workFlow;
}
public Long getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(Long processInstanceId) {
this.processInstanceId = processInstanceId;
}
public String getDoc() {
return doc;
}
public void setDoc(String doc) {
this.doc = doc;
}
@Override
public String toString() {
return "Document [id=" + id + ", title=" + title + ", doc=" + doc
+ ", description=" + description + ", createTime=" + createTime
+ ", status=" + status + "]";
}
@OneToMany(mappedBy="document",cascade={CascadeType.ALL})
public Set<DocumentProperty> getProps() {
return props;
}
public void setProps(Set<DocumentProperty> props) {
this.props = props;
}
public String getTypePersist() {
return typePersist;
}
public void setTypePersist(String typePersist) {
this.typePersist = typePersist;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}