package com.vci.client.uif.actions.client; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import com.vci.client.bof.ClientBusinessObject; import com.vci.client.bof.ClientLinkObject; import com.vci.client.common.objects.UserEntityObject; import com.vci.client.ui.exception.VCIException; import com.vci.client.uif.engine.common.IDataNode; import com.vci.client.workflow.delegate.ProcessCustomClientDelegate; import com.vci.client.workflow.task.ViewWorkfolwHistoryByPlatformDialog; import com.vci.corba.workflow.data.FlowTaskInfo; import com.vci.mw.ClientContextVariable; /** * 执行流程 Action *

* 执行流程 *

* * @author liudi * */ public class ViewWorkFlowHistoryAction extends AbstractBusionessOperationAction { @Override public String getKey() { return "workflowhistory"; } @Override public boolean checkHasRight(){ // 按BO进行数据权限检查 setDataRightCheckType(RightCheckConstants.RIGHT_CHECK_TYPE_B); return super.checkHasRight(); } /* * (non-Javadoc) * * @see plm.uif.actions.client.BusinessOperationAction#doPost() */ @Override public boolean doPost() { // 获取选择的数据 // 数据的实际类型一般为 IDataNode Object[] objs = getDataModel().getSelectObjects(); // paramsMap = getButtonParams(); IDataNode idn = (IDataNode) objs[0]; // 对象id String boOid = ""; String boType = ""; boOid = getBoOid(boOid, idn); boType = getBoType(boType, idn); UserEntityObject userEntityObject = new UserEntityObject(); String ip = ClientContextVariable.getInvocationInfo().clientIPInfo; String loginUserName = ClientContextVariable.getInvocationInfo().userName; userEntityObject.setIp(ip); userEntityObject.setUserName(loginUserName); userEntityObject.setModules(""); ProcessCustomClientDelegate delegate = new ProcessCustomClientDelegate( userEntityObject); Map valueMap = new HashMap(); try { FlowTaskInfo[] flowTaskInfos = delegate.getFlowTaskInfoByDataId( boOid, boType); String[] executionIds = new String[flowTaskInfos.length]; List flowTaskInfoList = new ArrayList(); for (FlowTaskInfo flowTaskInfo : flowTaskInfos) { flowTaskInfoList.add(flowTaskInfo); } ComparatorBo comparatorBo = new ComparatorBo(); Collections.sort(flowTaskInfoList, comparatorBo); for(int j=0;j list1 = new ArrayList(); // list1.add("*"); // taskidqtl.setBtmType("WorkItem".toLowerCase()); // taskidqtl.setClauseList(list1); // taskidqtl.setId("p"); // taskidqtl.setType(QTConstants.TYPE_BTM); // Map map1 = new HashMap(); // map1.put("BusinessType".toLowerCase(), "5"); // map1.put("oid".toLowerCase(), boOid); // Condition condition1 = Tool.getCondition(map1); // taskidqtl.setCondition(condition1); // HashMap datamapBytask = new HashMap(); // BusinessObject[] findBTMObjectsbyTask = QTClient.getService() // .findBTMObjects(taskidqtl.getId(), // Tool.qtTOXMl(taskidqtl).asXML()); // return findBTMObjectsbyTask; // } // // private LinkObject[] getLinkObjectsByQuery(String toOid) throws VCIError // { // QueryTemplate qtlLink = new QueryTemplate(); // List listLink = new ArrayList(); // listLink.add("*"); // qtlLink.setLinkType("input".toLowerCase()); // qtlLink.setClauseList(listLink); // qtlLink.setId("p"); // qtlLink.setType(QTConstants.TYPE_LINK); // qtlLink.setDirection(QTConstants.DIRECTION_POSITIVE); // Map linkMap = new HashMap(); // linkMap.put("t_oid".toLowerCase(), toOid); // Condition conditionLink = Tool.getCondition(linkMap); // qtlLink.setCondition(conditionLink); // LinkObject[] findLTObjects = QTClient.getService().findLTObjects( // qtlLink.getId(), Tool.qtTOXMl(qtlLink).asXML()); // return findLTObjects; // } }