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

📄 wfworker.java

📁 该HttpProxy用于从Applet或Swing界面中访问Ejb和服务端的JavaBean。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * Created on 2007-4-5
 * Lasted modified 2007-04-30
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 * 最后更新 2008-04-20 更新流程没激活的bug 
 */
package com.nari.pmos.wf.workflow;

import java.util.Calendar;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

import pbos.dao.DB.ConnectParameters;
import pbos.dao.helper.DAOFactory;
import pbos.dao.helper.DAOParameter;
import pbos.dao.services.PbosDAO;

import com.nari.pmos.common.utilities.SequenceMgr;
import com.nari.pmos.wf.table_wf.WfActivityVo;
import com.nari.pmos.wf.table_wf.WfAttributeVo;
import com.nari.pmos.wf.table_wf.WfInsActivityVo;
import com.nari.pmos.wf.table_wf.WfInsAttributeVo;
import com.nari.pmos.wf.table_wf.WfInsOperationVo;
import com.nari.pmos.wf.table_wf.WfInstanceVo;
import com.nari.pmos.wf.table_wf.WfModelVo;
import com.nari.pmos.wf.table_wf.WfParticipantVo;
import com.nari.pmos.wf.table_wf.WfTransitionVo;
import com.nari.pmos.wf.view_wf.WfWorkItemVo;
import com.nari.pmos.wf.workflow.InsAttribute;

/**
 * @author hujun
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public class WfWorker {
	private String userAccount = null;

	private PbosDAO DAO = null;

	private String dsName = "jdbc/pmosDB";

	/**
	 * 
	 */
	public WfWorker() {
		super();
		// TODO Auto-generated constructor stub
	}

	private String date2string(Date date, String format) {
		if (date == null) {
			return null;
		} 
		SimpleDateFormat dateFormat = new SimpleDateFormat(format);

		return dateFormat.format(date);
	}
	
	private String date2Str(Date dt){
		String s = "";
		s = date2string(dt, "yyyy-MM-dd");
		return s;
	}
	private String dateTime2Str(Date dt){
		String s = "";
		s = date2string(dt, "yyyy-MM-dd HH:mm:ss");
		return s;
	}
	
	public Collection rtvDefModels() {
		Collection rcol = null;
		getDAO();
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params.setCandiateClass(WfModelVo.class);
		Collection col = (Collection) DAO.findData(m_params);
		if (col != null) {
			rcol = new ArrayList();
			Iterator it = col.iterator();
			while (it.hasNext()) {
				WfModelVo modelVo = (WfModelVo) it.next();
				rcol.add(modelVo);
			}
			col.clear();
		}
		closeDAO();
		return rcol;
	}

	public Collection rtvDefAvtivities(String modelName) {
		Collection rcol = null;
		getDAO();
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params.setCandiateClass(WfActivityVo.class);
		m_params.setFilter("Model_Name = :m_Model_Name");
		m_params.setParameter("m_Model_Name", modelName);
		Collection col = (Collection) DAO.findData(m_params);
		if (col != null) {
			rcol = new ArrayList();
			Iterator it = col.iterator();
			while (it.hasNext()) {
				WfActivityVo actVo = (WfActivityVo) it.next();
				rcol.add(actVo);
			}
			col.clear();
		}
		closeDAO();
		return rcol;
	}

	//
	public Collection rtvDefAttributes(String modelName) {
		Collection rcol = null;
		getDAO();
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params.setCandiateClass(WfAttributeVo.class);
		m_params.setFilter("Model_Name = :m_Model_Name");
		m_params.setParameter("m_Model_Name", modelName);
		Collection col = (Collection) DAO.findData(m_params);
		if (col != null) {
			rcol = new ArrayList();
			Iterator it = col.iterator();
			while (it.hasNext()) {
				WfAttributeVo attrVo = (WfAttributeVo) it.next();
				rcol.add(attrVo);
			}
			col.clear();
		}
		closeDAO();
		return rcol;
	}

	//
	public Collection rtvDefPartivipants(String modelName) {
		Collection rcol = null;
		getDAO();
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params.setCandiateClass(WfParticipantVo.class);
		m_params.setFilter("Model_Name = :m_Model_Name");
		m_params.setParameter("m_Model_Name", modelName);
		Collection col = (Collection) DAO.findData(m_params);
		if (col != null) {
			rcol = new ArrayList();
			Iterator it = col.iterator();
			while (it.hasNext()) {
				WfParticipantVo patVo = (WfParticipantVo) it.next();
				rcol.add(patVo);
			}
			col.clear();
		}
		closeDAO();
		return rcol;
	}

	public Collection rtvDefTransitions(String modelName) {
		Collection rcol = null;
		getDAO();
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params.setCandiateClass(WfTransitionVo.class);
		m_params.setFilter("Model_Name = :m_Model_Name");
		m_params.setParameter("m_Model_Name", modelName);
		Collection col = (Collection) DAO.findData(m_params);
		if (col != null) {
			rcol = new ArrayList();
			Iterator it = col.iterator();
			while (it.hasNext()) {
				WfTransitionVo trVo = (WfTransitionVo) it.next();
				rcol.add(trVo);
			}
			col.clear();
		}
		closeDAO();
		return rcol;
	}

	private String insAttributes2Str(Collection initVaues) {
		String r = "";
		StringBuffer sb = new StringBuffer();
		Iterator it = initVaues.iterator();
		while (it.hasNext()) {
			InsAttribute item = (InsAttribute) it.next();
			sb.append(InsAttribute.Format(item) + ";");
		}
		int n = sb.length();
		if (n > 0)
			sb.deleteCharAt(n - 1);
		r = sb.toString();
		return r;
	}

	public long createInstance(String modelName, Collection initVaues) {
		long r = -1;
		getDAO();
		String values = insAttributes2Str(initVaues);
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params
				.setProcedure("{call pmoswf.CreateInstance(:m_name,:m_values,:m_id) }");
		m_params.setParameter("m_name", modelName);
		m_params.setParameter("m_values", values);
		m_params.setParameter("m_id", Long.class);
		boolean cr = DAO.callStoredProcedure(m_params);
		if (cr) {
			Long L = (Long) m_params.getParameter("m_id");
			r = L.longValue();
		}
		closeDAO();
		return r;
	}

	//	
	public boolean syncInstanceStatus(long instanceID) {
		getDAO();
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params.setProcedure("{call pmoswf.CheckInstanceStatus(:m_id) }");
		m_params.setParameter("m_id", new Long(instanceID));
		boolean cr = DAO.callStoredProcedure(m_params);
		closeDAO();
		return cr;
	}
  
	//
	private long rtvInstanceId(String modelName, Collection keyVaues) {
		String values = null;
		long id = -1;
		Iterator it = keyVaues.iterator();
		while (it.hasNext()) {
			InsAttribute ia = (InsAttribute) it.next();
			if (values != null)
				values = values + ";" + InsAttribute.Format(ia);
			else
				values = InsAttribute.Format(ia);
		}
		String m_sql = "pmoswf.RtvInstanceId('" + modelName + "','" + values
				+ "')";
		Long m_long = (Long) DAO.findDefaultVariable(m_sql, Long.class);
		if (m_long != null)
			id = m_long.longValue();
		return id;
	}

	private long rtvInstanceId(String modelName, String keyStr, String valStr) {
		String values = keyStr + ',' + valStr;
		long id = -1;
		String m_sql = "pmoswf.RtvInstanceId('" + modelName + "','" + values
				+ "')";
		Long m_long = (Long) DAO.findDefaultVariable(m_sql, Long.class);
		if (m_long != null)
			id = m_long.longValue();
		return id;
	}

	public WfInstanceVo rtvInstance(String modelName, String keyStr,
			String valStr) {
		getDAO();
		WfInstanceVo insVo = null;
		long insId = rtvInstanceId(modelName, keyStr, valStr);
		if (insId > 0) {
			DAOParameter m_params = DAOFactory.getDAOParameter();
			m_params.setCandiateClass(WfInstanceVo.class);
			m_params.setFilter("Instance_Id = :m_Instance_Id");
			m_params.setParameter("m_Instance_Id", new Long(insId));
			Collection col = (Collection) DAO.findData(m_params);
			if (col != null) {
				Iterator it = col.iterator();
				if (it.hasNext())
					insVo = (WfInstanceVo) it.next();
				col.clear();
			}
		}
		closeDAO();
		return insVo;
	}

	//
	public WfInstanceVo rtvInstance(String modelName, Collection keyVaues) {
		getDAO();
		WfInstanceVo insVo = null;
		long insId = rtvInstanceId(modelName, keyVaues);
		if (insId > 0) {
			DAOParameter m_params = DAOFactory.getDAOParameter();
			m_params.setCandiateClass(WfInstanceVo.class);
			m_params.setFilter("Instance_Id = :m_Instance_Id");
			m_params.setParameter("m_Instance_Id", new Long(insId));
			Collection col = (Collection) DAO.findData(m_params);
			if (col != null) {
				Iterator it = col.iterator();
				if (it.hasNext())
					insVo = (WfInstanceVo) it.next();
				col.clear();
			}
		}
		closeDAO();
		return insVo;
	}

	public Collection rtvInstances(String modelName, Date beginDt, Date endDt) {
		Collection rcol = null;
		getDAO();
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params.setCandiateClass(WfInstanceVo.class);
		m_params
				.setFilter("Model_Name = :m_name and Created_Time >= :m_begin and Created_Time <= :m_end");
		m_params.setParameter("m_name", modelName);
		m_params.setParameter("m_begin", beginDt);
		m_params.setParameter("m_end", endDt);
		Collection col = (Collection) DAO.findData(m_params);
		if (col != null) {
			rcol = new ArrayList();
			Iterator it = col.iterator();
			while (it.hasNext()) {
				WfInstanceVo insVo = (WfInstanceVo) it.next();
				rcol.add(insVo);
			}
			col.clear();
		}
		closeDAO();
		return rcol;
	}

	public Collection rtvInstances(String modelName, Long minId, Long maxId) {
		Collection rcol = null;
		getDAO();
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params.setCandiateClass(WfInstanceVo.class);
		m_params
				.setFilter("Model_Name = :m_name and Instance_Id >= :m_startid and Instance_Id <= :m_endid");
		m_params.setParameter("m_name", modelName);
		m_params.setParameter("m_startid", minId);
		m_params.setParameter("m_startid", maxId);
		Collection col = (Collection) DAO.findData(m_params);
		if (col != null) {
			rcol = new ArrayList();
			Iterator it = col.iterator();
			while (it.hasNext()) {
				WfInstanceVo insVo = (WfInstanceVo) it.next();
				rcol.add(insVo);
			}
			col.clear();
		}
		closeDAO();
		return rcol;
	}
	public Collection rtvInstancesByYear(String modelName, String year) {
		Collection rcol = null;
		getDAO();
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params.setCandiateClass(WfInstanceVo.class);
		m_params
				.setFilter("Model_Name = :m_name and substr(key_value,1,4)=:m_year");
		m_params.setParameter("m_name", modelName);
		m_params.setParameter("m_year", year);
		
		Collection col = (Collection) DAO.findData(m_params);
		if (col != null) {
			rcol = new ArrayList();
			Iterator it = col.iterator();
			while (it.hasNext()) {
				WfInstanceVo insVo = (WfInstanceVo) it.next();
				rcol.add(insVo);
			}
			col.clear();
		}
		closeDAO();
		return rcol;
	}
	public Collection rtvInstancesByKeyValue(String modelName, String keyValue) {
		Collection rcol = null;
		getDAO();
		DAOParameter m_params = DAOFactory.getDAOParameter();
		m_params.setCandiateClass(WfInstanceVo.class);
		m_params
				.setFilter("Model_Name = :m_name and key_value=:m_keyValue");
		m_params.setParameter("m_name", modelName);
		m_params.setParameter("m_keyValue", keyValue);
		
		Collection col = (Collection) DAO.findData(m_params);
		if (col != null) {
			rcol = new ArrayList();
			Iterator it = col.iterator();
			while (it.hasNext()) {
				WfInstanceVo insVo = (WfInstanceVo) it.next();
				rcol.add(insVo);
			}
			col.clear();
		}
		closeDAO();
		return rcol;
	}
	public Collection rtvInsActivities(long instanceId) {
		Collection rcol = null;
		getDAO();
		WfInsActivityVo actVo = null;
		if (instanceId > 0) {
			DAOParameter m_params = DAOFactory.getDAOParameter();
			m_params.setCandiateClass(WfInsActivityVo.class);
			m_params.setFilter("Instance_Id = :m_Instance_Id");
			m_params.setParameter("m_Instance_Id", new Long(instanceId));
			Collection col = (Collection) DAO.findData(m_params);
			if (col != null) {
				rcol = new ArrayList();
				Iterator it = col.iterator();

⌨️ 快捷键说明

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