⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 document.java

📁 OBPM是一个开源
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// Source file:
// C:\\Java\\workspace\\SmartWeb3\\src\\com\\cyberway\\dynaform\\document\\ejb\\Document.java

package cn.myapps.core.dynaform.document.ejb;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.apache.commons.beanutils.PropertyUtils;

import cn.myapps.base.action.ParamsTable;
import cn.myapps.base.dao.ValueObject;
import cn.myapps.core.user.action.WebUser;
import cn.myapps.core.user.ejb.UserProcess;
import cn.myapps.core.user.ejb.UserVO;
import cn.myapps.core.workflow.element.Node;
import cn.myapps.core.workflow.engine.StateMachine;
import cn.myapps.core.workflow.engine.StateMachineHelper;
import cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRT;
import cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRTProcess;
import cn.myapps.core.workflow.storage.runtime.ejb.NodeRT;
import cn.myapps.core.workflow.utility.FieldPermissionList;
import cn.myapps.util.DateUtil;
import cn.myapps.util.Debug;
import cn.myapps.util.ProcessFactory;
import cn.myapps.util.sequence.Sequence;

/**
 * @hibernate.class table="T_DOCUMENT" lazy="true"
 * 
 * @author nicholas
 * 
 */
public class Document extends ValueObject implements Cloneable {

	/**
	 * 默认表单id
	 */
	private String formname;// 表单模板

	private String formid; // 表单模板 id值

	private String id;

	private Map _items_id; // item id的值

	private Map _items_name; // item name

	private FieldPermissionList fieldPermList;// 流程节点对应formfield权限

	private FlowStateRT state;// 流程状态(从t_docflow表中获取)

	private boolean _issubdoc;

	private UserVO author;

	private Date created;

	private Date lastmodified;

	private ParamsTable _params;

	private boolean _new;// 是否新文档(在新建时就已创建文档id, 故保存时只能通过增加此属性判断是否为新文档)

	private Date auditdate;// 最后审核时间

	private String audituser;// 最后审核人姓名

	private String auditusers;// 所有已审核人ID(以分号隔开)

	private Collection childs; // 子表单

	private Document parent; // 父表单

	private boolean istmp = true;

	private int version;

	private String flowid; // 流程ID

	/**
	 * @hibernate.property column="FLOWID"
	 * @return
	 */
	public String getFlowid() {
		return flowid;
	}

	public void setFlowid(String flowid) {
		this.flowid = flowid;
	}

	/**
	 * @hibernate.property column="VERSIONS"
	 * @return
	 */
	public int getVersion() {
		return version;
	}

	public void setVersion(int version) {
		this.version = version;
	}

	/**
	 * @hibernate.collection-one-to-many class="cn.myapps.core.dynaform.document.ejb.Document"
	 * @hibernate.collection-key column="PARENT"
	 * @hibernate.set name="childs" table="T_DOCUMENT" cascade="delete-orphan"
	 *                inverse="true"
	 */
	public Collection getChilds() {
		return childs;
	}

	public Collection getChilds(String formName) {
		Collection rtn = new ArrayList();
		if (childs != null) {
			for (Iterator iter = childs.iterator(); iter.hasNext();) {
				Document subdoc = (Document) iter.next();
				if (subdoc.getFormname().equals(formName)
						&& subdoc.istmp != true) {
					rtn.add(subdoc);
				}
			}
		}
		return rtn;
	}

	public void setChilds(Collection childs) {
		this.childs = childs;
	}

	/**
	 * @return cn.myapps.core.dynaform.document.ejb.Document
	 * @hibernate.many-to-one class="cn.myapps.core.dynaform.document.ejb.Document"
	 *                        column="PARENT"
	 */
	public Document getParent() {
		return parent;
	}

	public void setParent(Document parent) {
		this.parent = parent;
	}

	/**
	 * @hibernate.id column="ID" generator-class="assigned"
	 */
	public String getId() {
		return id;
	}

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

	/**
	 * @return Returns the _new.
	 */
	public boolean is_new() {
		return _new;
	}

	public void set_new(boolean _new) {
		this._new = _new;
	}

	/**
	 * @hibernate.property column="LASTMODIFIED"
	 * @return
	 */
	public Date getLastmodified() {
		return lastmodified;
	}

	/**
	 * @param lastModified
	 *            The lastModified to set.
	 */
	public void setLastmodified(Date lastModified) {
		this.lastmodified = lastModified;
	}

	/**
	 * @roseuid 41ECB6550387
	 */
	public Document() {
		_new = false;
		_items_id = new HashMap(20);
		_items_name = new HashMap(20);
	}

	/**
	 * 添加Item项目
	 * 
	 * @param item
	 * @roseuid 41EBD760022F
	 */
	public void addItem(Item item) {
		if (item != null) {
			_items_id.put(item.getId() + "", item);
			_items_name.put(item.getName(), item);
		}
	}

	public void addItems(Collection items) {
		if (items != null && items.size() > 0) {
			Iterator iters = items.iterator();
			while (iters.hasNext()) {
				Item item = (Item) iters.next();
				if (item != null) {
					_items_id.put(item.getId() + "", item);
					_items_name.put(item.getName(), item);
				}
			}
		}
	}

	/**
	 * 移除item
	 * 
	 * @param itemid
	 * @roseuid 41EBD7AF01CE
	 */
	public void removeItem(long itemid) {
		Item item = (Item) _items_id.get(itemid + "");
		if (item != null) {
			_items_id.remove(item.getId() + "");
			_items_name.remove(item.getName());
		}

	}

	public void removeItem(String itemname) {
		if (itemname != null) {
			Item item = (Item) _items_name.get(itemname);
			if (item != null) {
				_items_name.remove(item.getName());
				_items_id.remove(item.getId() + "");
			}
		}
	}

	/**
	 * 移除item
	 * 
	 * @param item
	 * @roseuid 41EBD7E70388
	 */
	public void removeItem(Item item) {
		if (item != null) {
			_items_name.remove(item.getName());
			_items_id.remove(item.getId() + "");
		}
	}

	/**
	 * 获取Item
	 * 
	 * @param id
	 * @return cn.myapps.core.dynaform.document.ejb.Item
	 * @roseuid 41EBDA0402E5
	 */
	public Item findItem(long id) {
		return (Item) _items_id.get(id + "");
	}

	/**
	 * 获取Item
	 * 
	 * @param fieldname
	 * @return cn.myapps.core.dynaform.document.ejb.Item
	 * @roseuid 41EBDA490335
	 */
	public Item findItem(String fieldname) {
		if (fieldname != null)
			return (Item) _items_name.get(fieldname);
		else
			return null;
	}

	/**
	 * @hibernate.property column="FORMNAME"
	 * @return
	 */
	public String getFormname() {
		return formname;
	}

	public void setFormname(String formname) {
		this.formname = formname;
	}

	/**
	 * 修改的日期
	 * 
	 * @hibernate.property column="AUDITDATE"
	 * @return
	 */
	public Date getAuditdate() {
		return auditdate;
	}

	public void setAuditdate(Date auditdate) {
		this.auditdate = auditdate;
	}

	/**
	 * 进行修改的用户
	 * 
	 * @return Returns the audituser.
	 */
	public String getAudituser() {
		return audituser;
	}

	/**
	 * 所有进行修改的用户
	 * 
	 * @return Returns the auditusers.
	 */
	public String getAuditusers() {
		return auditusers;
	}

	/**
	 * @param auditusers
	 *            The auditusers to set.
	 */
	public void setAuditusers(String auditusers) {
		this.auditusers = auditusers;
	}

	/**
	 * @param audituser
	 *            The audituser to set.
	 */
	public void setAudituser(String audituser) {
		this.audituser = audituser;
	}

	// /**
	// * @return Returns the writers.
	// */
	// public String getWriters() {
	// return writers;
	// }
	//
	// /**
	// * @param writers
	// * The writers to set.
	// */
	// public void setWriters(String writers) {
	// this.writers = writers;
	// }

	// 获取所有item

	/**
	 * @hibernate.collection-one-to-many class="cn.myapps.core.dynaform.document.ejb.Item"
	 * @hibernate.collection-key column="DOC_ID"
	 * 
	 * @hibernate.set name="items" table="T_ITEM" inverse="false"
	 *                order-by="NAME" cascade="all"
	 * @return
	 */
	public Set getItems() {
		Set s = new HashSet();
		Iterator it = _items_id.values().iterator();
		while (it.hasNext()) {
			s.add(it.next());
		}
		return s;
	}

	public void setItems(Set items) {
		this._items_id.clear();// = new HashMap();
		this._items_name.clear();// = new HashMap();
		if (items != null) {
			Iterator iter = items.iterator();
			while (iter.hasNext()) {
				Item item = (Item) iter.next();
				_items_id.put(item.getId(), item);
				_items_name.put(item.getName(), item);
			}
		}

	}

	/**
	 * 创建日期
	 * 
	 * @hibernate.property column="CREATED"
	 * @return
	 */
	public Date getCreated() {
		return created;
	}

	public void setCreated(Date created) {
		this.created = created;
	}

	/**
	 * 创建许可频道列表
	 * 
	 * @return Returns the fieldPermList.
	 */
	public FieldPermissionList getFieldPermList() {
		if (fieldPermList == null) {
			fieldPermList = new FieldPermissionList();
		}
		return fieldPermList;
	}

	/**
	 * @param fieldPermList
	 *            The fieldPermList to set.
	 */
	public void setFieldPermList(FieldPermissionList fieldPermList) {
		this.fieldPermList = fieldPermList;
	}

	/**
	 * 将Doc内容转换为String
	 */
	public String toString() {
		StringBuffer sb = new StringBuffer();
		sb.append("Document:");
		sb.append("<formname>");
		sb.append(formname);
		sb.append("\n");
		// 获取所有item循环添加到Doc的StringBuffer中
		Iterator iter = this.getItems().iterator();
		while (iter.hasNext()) {
			Item item = (Item) iter.next();
			sb.append(item.toString());
			sb.append("\n");
		}
		// sb.append()
		return sb.toString();
	}

	/**
	 * 获取所有参数
	 * 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -