package com.vci.client.workflow.user;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.dom4j.DocumentException;
|
|
import com.vci.client.bof.ClientBusinessObject;
|
import com.vci.client.bof.ClientBusinessObjectOperation;
|
import com.vci.client.common.objects.UserEntityObject;
|
import com.vci.client.common.oq.OQTool;
|
import com.vci.client.oq.QTClient;
|
import com.vci.client.portal.utility.TableDataUtil;
|
import com.vci.common.qt.object.Condition;
|
import com.vci.common.qt.object.QueryTemplate;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.omd.data.BusinessObject;
|
|
public class WorkflowUserUtil {
|
VciWorkflowUserImpl workflowUserImpl = new VciWorkflowUserImpl();
|
|
private static WorkflowUserUtil instance = null;
|
|
public static WorkflowUserUtil getInstance() {
|
if(instance == null) {
|
instance = new WorkflowUserUtil();
|
}
|
return instance;
|
}
|
|
public List<String[]> getUserByExp(String exp, String executionId, UserEntityObject userObj){
|
return workflowUserImpl.getUserByExp(exp, executionId, userObj);
|
}
|
|
public List <String[]> getUsersByDeptId(String deptId) throws VCIError, DocumentException {
|
ClientBusinessObjectOperation cboo = new ClientBusinessObjectOperation();
|
List <String[]> list = new ArrayList<String[]>();
|
Map<String, String> conditionMap = new HashMap<String, String>();
|
conditionMap.put("isparttime", "0");
|
conditionMap.put("f_oid", deptId);
|
// List<Map<String, String>> deptData = searchLo("deptPersonTemplate", "deptperson", conditionMap);
|
List<Map<String, String>> deptData = searchLo("deptUserTemplate", "deptuser", conditionMap);
|
if (deptData != null && deptData.size() > 0) {
|
for (int j = 0 ; j < deptData.size(); j++) {
|
Map<String, String> personMap = deptData.get(j);
|
String userId = (String) personMap.get("oid");
|
// ClientBusinessObject cboPerson = cboo.readBusinessObjectById(userId, "person");
|
ClientBusinessObject cboPerson = cboo.readBusinessObjectById(userId, "user");
|
String [] userStr = new String[4];
|
userStr[0] = "user:" + cboPerson.getId();
|
userStr[1] = cboPerson.getName();
|
list.add(userStr);
|
}
|
}
|
return list;
|
}
|
|
public List<String[]> getUsersByRoleId(String roleId) throws VCIError, DocumentException {
|
ClientBusinessObjectOperation cboo = new ClientBusinessObjectOperation();
|
List <String[]> list = new ArrayList<String[]>();
|
Map<String, String> conditionMap = new HashMap<String, String>();
|
conditionMap.put("f_oid", roleId);
|
// List<Map<String, String>> deptData = searchLo("rolePersonTemplate", "roleperson", conditionMap);
|
List<Map<String, String>> deptData = searchLo("roleUserTemplate", "roleuser", conditionMap);
|
if (deptData != null && deptData.size() > 0) {
|
for (int j = 0 ; j < deptData.size(); j++) {
|
Map<String, String> personMap = deptData.get(j);
|
String userId = (String) personMap.get("oid");
|
// ClientBusinessObject cboPerson = cboo.readBusinessObjectById(userId, "person");
|
ClientBusinessObject cboPerson = cboo.readBusinessObjectById(userId, "user");
|
String [] userStr = new String[4];
|
userStr[0] = "user:" + cboPerson.getId();
|
userStr[1] = cboPerson.getName();
|
list.add(userStr);
|
}
|
}
|
return list;
|
}
|
|
public List<String[]> getUsersByOrgId(String orgId) throws VCIError, DocumentException {
|
ClientBusinessObjectOperation cboo = new ClientBusinessObjectOperation();
|
List <String[]> list = new ArrayList<String[]>();
|
Map<String, String> conditionMap = new HashMap<String, String>();
|
conditionMap.put("f_oid", orgId);
|
// List<Map<String, String>> deptData = searchLo("orgpersonTemplate", "orgperson", conditionMap);
|
List<Map<String, String>> deptData = searchLo("orgUserTemplate", "orguser", conditionMap);
|
if (deptData != null && deptData.size() > 0) {
|
for (int j = 0 ; j < deptData.size(); j++) {
|
Map<String, String> personMap = deptData.get(j);
|
String userId = (String) personMap.get("oid");
|
// ClientBusinessObject cboPerson = cboo.readBusinessObjectById(userId, "person");
|
ClientBusinessObject cboPerson = cboo.readBusinessObjectById(userId, "user");
|
String [] userStr = new String[4];
|
userStr[0] = "user:" + cboPerson.getId();
|
userStr[1] = cboPerson.getName();
|
list.add(userStr);
|
}
|
}
|
return list;
|
}
|
|
public List<String[]> getUsersByPostId(String postId) throws VCIError, DocumentException {
|
ClientBusinessObjectOperation cboo = new ClientBusinessObjectOperation();
|
List <String[]> list = new ArrayList<String[]>();
|
Map<String, String> conditionMap = new HashMap<String, String>();
|
conditionMap.put("isparttime", "0");
|
conditionMap.put("refpost", postId);
|
// List<Map<String, String>> deptData = searchLo("deptPersonTemplate", "deptperson", conditionMap);
|
List<Map<String, String>> deptData = searchLo("deptUserTemplate", "deptuser", conditionMap);
|
if (deptData != null && deptData.size() > 0) {
|
for (int j = 0; j < deptData.size(); j++) {
|
Map<String, String> personMap = deptData.get(j);
|
String userId = (String) personMap.get("oid");
|
// ClientBusinessObject cboPerson = cboo.readBusinessObjectById(userId, "person");
|
ClientBusinessObject cboPerson = cboo.readBusinessObjectById(userId, "user");
|
String [] userStr = new String[4];
|
userStr[0] = "user:" + cboPerson.getId();
|
userStr[1] = cboPerson.getName();
|
list.add(userStr);
|
}
|
}
|
return list;
|
}
|
|
public List <String[]> getSubDeptByDeptId(String deptId) throws VCIError {
|
List <String[]> list = new ArrayList<String[]>();
|
Map<String, String> map = new HashMap<String, String>();
|
map.put("PARENTDEPT", deptId);
|
List<ClientBusinessObject> sublist = searchBo("department", map);
|
for (int k = 0; k < sublist.size(); k++) {
|
ClientBusinessObject subcbo = sublist.get(k);
|
String [] subDeptStr = new String[4];
|
subDeptStr[0] = "dept:" + subcbo.getOid();
|
subDeptStr[1] = subcbo.getName();
|
list.add(subDeptStr);
|
}
|
return list;
|
}
|
|
public String[] getDepartmentByOid(String Oid) throws VCIError {
|
ClientBusinessObjectOperation cboo = new ClientBusinessObjectOperation();
|
ClientBusinessObject cbo = cboo.readBusinessObjectById(Oid, "department");
|
String [] deptStr = new String[4];
|
deptStr[0] = "dept:" + cbo.getOid();
|
deptStr[1] = cbo.getName();
|
return deptStr;
|
}
|
|
public String[] getRoleByOid(String Oid) throws VCIError {
|
ClientBusinessObjectOperation cboo = new ClientBusinessObjectOperation();
|
ClientBusinessObject cbo = cboo.readBusinessObjectById(Oid, "role");
|
String [] roleStr = new String[4];
|
roleStr[0] = "role:" + cbo.getOid();
|
roleStr[1] = cbo.getName();
|
return roleStr;
|
}
|
|
public String[] getOrgByOid(String Oid) throws VCIError {
|
ClientBusinessObjectOperation cboo = new ClientBusinessObjectOperation();
|
ClientBusinessObject cbo = cboo.readBusinessObjectById(Oid, "organization");
|
String [] orgStr = new String[4];
|
orgStr[0] = "org:" + cbo.getOid();
|
orgStr[1] = cbo.getName();
|
return orgStr;
|
}
|
|
public String[] getPersonByOid(String Oid) throws VCIError {
|
ClientBusinessObjectOperation cboo = new ClientBusinessObjectOperation();
|
// ClientBusinessObject cbo = cboo.readBusinessObjectById(Oid, "person");
|
ClientBusinessObject cbo = cboo.readBusinessObjectById(Oid, "user");
|
String [] userStr = new String[4];
|
userStr[0] = "user:" + cbo.getId();
|
userStr[1] = cbo.getName();
|
return userStr;
|
}
|
|
public List<ClientBusinessObject> searchBo(String btmName, Map<String, String> queryCondition) throws VCIError{
|
QueryTemplate qt = new QueryTemplate();
|
qt.setId("queryBusinessQT");
|
qt.setType("btm");
|
qt.setBtmType(btmName);
|
List<String> clauseList = new ArrayList<String>();
|
clauseList.add("*");
|
qt.setClauseList(clauseList);
|
Condition condition = OQTool.getCondition(queryCondition);
|
qt.setCondition(condition);
|
BusinessObject[] bos = QTClient.getService().findBTMObjects(qt.getId(), OQTool.getQTTextByQT(qt));
|
List<ClientBusinessObject> clos = new ArrayList<ClientBusinessObject>();
|
if(bos != null && bos.length > 0){
|
for(BusinessObject bo: bos){
|
ClientBusinessObject cbo = new ClientBusinessObject();
|
cbo.setBusinessObject(bo);
|
clos.add(cbo);
|
}
|
}
|
return clos;
|
}
|
|
public List<Map<String, String>> searchLo(String qtName, String showType, Map<String, String> queryCondition) throws VCIError, DocumentException{
|
Map<String, String> queryColumnsMap = new HashMap<String, String>();
|
queryColumnsMap.put("*", "标题");
|
TableDataUtil util = new TableDataUtil();
|
List<Map<String, String>> dataModel = util.getObjectDataList(qtName, null,
|
queryCondition , null, null, showType,
|
queryColumnsMap, null, null);
|
|
return dataModel;
|
}
|
|
}
|