📄 organizationcontrol.java
字号:
package cn.com.iaspec.workflow.organize.ext;
/**
* <p>Title: 组织的实现类(二次开发)</p>
*
* <p>Description: 深圳市劳动仲裁信息管理系统</p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: 永泰软件工程有限公司</p>
*
* @author syj
* @version 1.0
*/
import java.util.*;
import com.sunyard.sunflow.ext.organizationagent.*;
import com.sunyard.sunflow.ext.organizationagent.participant.*;
public class OrganizationControl
implements OrgInterface{
private static GetOrganizationInfoDAO getOrganizationInfoDAO=new
GetOrganizationInfoDAO();
private GetOrganizationInfoDAO getGetOrganizationInfoDAO(){
if(getOrganizationInfoDAO==null){
getOrganizationInfoDAO=new GetOrganizationInfoDAO();
}
return getOrganizationInfoDAO;
}
/**
* 得到组织的下一层子组织集
* 集合中的元素类型必须是com.sunyard.sunflow.organization.infc.ParticipantOrganization
* @param orgID String
* @return Vector
*/
public java.util.Vector getAllSubOrgs(java.lang.String orgID){
System.out.println("----开始调用-getAllSubOrgs()方法----");
Vector v=null;
try{
v=getOrganizationInfoDAO.getAllSubOrgsDAO(orgID);
}
catch(Exception e){
e.printStackTrace();
}
return v;
}
/**
* 得到用户基本信息(可以与上面的对象以相同方式实现)
* @param userID String
* @return UserInfo
* @throws Exception
*/
public UserInfo getHumanBasicInfo(java.lang.String userID)
throws java.lang.Exception{
System.out.println("----开始调用-getHumanBasicInfo()方法----");
UserInfo userinfo=null;
try{
userinfo=getOrganizationInfoDAO.getHumanBasicInfoDAO(userID);
System.out.println("----结束调用-getHumanBasicInfo()方法----");
}
catch(Exception e){
e.printStackTrace();
}
return userinfo;
}
/**
* 得到用户详细信息
* @param userID String
* @param pwd String
* @return UserInfo
* @throws Exception
*/
public UserInfo getHumanDetailInfo(java.lang.String userID,
java.lang.String pwd)
throws java.lang.Exception{
System.out.println("----开始调用-getHumanDetailInfo()方法----");
UserInfo userinfo=null;
try{
//UserInfo userinfo = getOrganizationInfoDAO.getHumanDetailInfo(userID,pwd);
userinfo=getOrganizationInfoDAO.getHumanDetailInfoDAO(userID,pwd);
}
catch(Exception e){
e.printStackTrace();
}
return userinfo;
}
/**
* 得到某个组织下的直属角色集合
* @param orgID String
* @return Vector
* @throws Exception
*/
public java.util.Vector getRolesByOrg(java.lang.String orgID)
throws java.lang.Exception{
System.out.println("----开始调用-getRolesByOrg()方法----");
Vector v=new Vector();
try{
v=getOrganizationInfoDAO.getRolesByOrgDAO(orgID);
}
catch(Exception e){
e.printStackTrace();
}
return v;
}
/**
* 返回直接的下级参与者
* @param sunflowParticipant SunflowParticipant
* @return CollecgetRolesByOrgtion
* @throws Exception
*/
public java.util.Collection getSubParticipants(SunflowParticipant
sunflowParticipant)
throws java.lang.Exception{
System.out.println("----开始调用-getSubParticipants()方法----");
Vector result=new Vector();
if(sunflowParticipant instanceof ParticipantRole){
Vector v=getUsersByRole(sunflowParticipant.getId());
SunflowParticipant sp;
for(Iterator itr=v.iterator();itr.hasNext();result.add(sp)){
UserInfo human=getHumanBasicInfo((String)itr.next());
sp=new ParticipantHuman(human.getID(),human.getName(),human.getDes(),
human.getEmail(),human.getMobile());
}
}
else if(sunflowParticipant instanceof ParticipantOrganization){
result.addAll(getSubUsersByOrg(sunflowParticipant.getId()));
result.addAll(getAllSubOrgs(sunflowParticipant.getId()));
result.addAll(getRolesByOrg(sunflowParticipant.getId()));
}
else if(sunflowParticipant instanceof ParticipantHuman){
result=null;
}
return result;
}
/**
* 得到某个组织下的直属人员集合
* @param orgID String
* @return Vector
* @throws Exception
*/
public java.util.Vector getSubUsersByOrg(java.lang.String orgID)
throws java.lang.Exception{
System.out.println("----开始调用-getSubUsersByOrg()方法----");
Vector v=null;
try{
v=getOrganizationInfoDAO.getSubUsersByOrgDAO(orgID);
}
catch(Exception e){
e.printStackTrace();
}
return v;
}
/**
* 得到组织结构图中最顶层的组织列表,该接口为流程设计器所调用
* @return Collection
* @throws Exception
*/
public java.util.Collection getTopLevelOrgs()
throws java.lang.Exception{
System.out.println("----开始调用-getTopLevelOrgs()方法----");
Collection list=null;
try{
list=getGetOrganizationInfoDAO().getTopLevelOrgsDAO();
System.out.println("----调用-getTopLevelOrgsDAO()方法成功----");
}
catch(Exception e){
e.printStackTrace();
throw new GetOrganizationInfoException(
"----------得到组织结构图中最顶层的组织列表异常--------");
}
return list;
}
/**
* 根据组织ID得到组织(这种组织可以是永久性的,也可以是临时生成的)
* 下所有人员,包括直接和间接从属的人员;该接口用来在工作流引擎分配任务的时候解析人员
* @param orgID String
* @return Vector
* @throws Exception
*/
public java.util.Vector getUsersByOrg(java.lang.String orgID)
throws java.lang.Exception{
System.out.println("----开始调用-getUsersByOrg()方法----");
Vector vec=null;
try{
//判断是否时格式化的字符串
//格式化字符串
System.out.println("begin getUsersByOrg");
System.out.println("orgID is:"+orgID);
if(orgID.indexOf("varActor;org")!=-1){
vec=getOrganizationInfoDAO.getUsersByOrgDAO(this.
getIdsFromFormatActorString(orgID));
}
//非格式化字符串
else{
vec=getOrganizationInfoDAO.getUsersByOrgDAO(orgID);
}
}
catch(Exception e){
e.printStackTrace();
}
return vec;
}
/**
* 从格式化的字符串中取得行政区id,字符串格式为:varActor;[user,role,org];areaId;[id1:parentid1,id2:parentid2,id3:parentid3]
* @param ids String
* @return String[]
*/
private String getAreaIdFromFormatActorString(String ids){
//String[] s1=ids.split(";");
String[] s1=Tools.split(ids,";");
return s1[2];
}
/**
* 从格式化的字符串中取得(部门、用户、角色)id,字符串格式为:varActor;[user,role,org];areaId;[id1:parentid1,id2:parentid2,id3:parentid3]
* @param ids String
* @return String
*/
private String[] getIdsFromFormatActorString(String ids){
// String[] s1=ids.split(";");
// return s1[3].split(",");
String[] s1=Tools.split(ids,";");
return Tools.split(s1[3],",");
}
/**
* 根据角色ID得到角色下所有人员(这种角色可以是永久性的,也可以是临时生成的);
* 该接口用来在工作流引擎分配任务的时候解析人员
* @param roleID String
* @return Vector
* @throws Exception
*/
public java.util.Vector getUsersByRole(java.lang.String roleID)
throws java.lang.Exception{
System.out.println("----开始调用-getUsersByRole()方法----");
System.out.println("begin getUsersByRole");
Vector v=null;
try{
//判断是否时格式化的字符串
//格式化字符串
System.out.println("roleID is:"+roleID);
if(roleID.indexOf("varActor;role")!=-1){
v=getOrganizationInfoDAO.getUsersByRoleDAO(this.
getIdsFromFormatActorString(roleID),
this.getAreaIdFromFormatActorString(roleID));
}
//非格式化字符串
else{
v=getOrganizationInfoDAO.getUsersByRoleDAO(roleID);
}
}
catch(Exception e){
e.printStackTrace();
}
return v;
}
/**
* 登录,得到用户详细信息
* @param userID String
* @param pwd String
* @return UserInfo
* @throws Exception
*/
public UserInfo login(java.lang.String userID,java.lang.String pwd)
throws java.lang.Exception{
System.out.println("----开始调用-login()方法----");
System.out.println("begin login...");
UserInfo userinfo=null;
userID=userID.trim();
pwd=pwd.trim();
System.out.println("userID is:"+userID+" password is:"+pwd);
if(userID==null||pwd==null||userID.equals("")||pwd.equals("")){
throw new Exception("---登录名和密码不能为空---");
}
try{
userinfo=getOrganizationInfoDAO.loginDAO(userID,pwd);
if(userinfo==null){
throw new Exception();
}
}
catch(Exception e){
e.printStackTrace();
throw new Exception("--口令和密码错误--");
}
return userinfo;
}
/**
* 注销用户登录信息,成功后返回true
* @param userID String
* @return boolean
* @throws Exception
*/
public boolean logout(java.lang.String userID)
throws java.lang.Exception{
return true;
}
/**
* 外挂系统自定义任务分配策略,对传入的人员列表根据一定的标准进行筛选, 返回符合条件的人员列表
* (用户应该在实现类中实现,如果不需要扩展该功能可以在实现类中返回null
* @param participantIDs Vector
* @param standard int
* @param retNo int
* @return Vector
* @throws Exception
*/
public java.util.Vector querySomeUsers(java.util.Vector participantIDs,
int standard,int retNo)
throws java.lang.Exception{
Vector v=new Vector();
return v;
}
/**
* 根据优先级筛选人员(如果在定义器中不按优先级分配任务,则不需要实现本方法,直接返回null)
* @param participantIDs Vector
* @param retNo int
* @return Vector
* @throws Exception
*/
public java.util.Vector queryUserByPriority(java.util.Vector participantIDs,
int retNo)
throws java.lang.Exception{
Vector v=new Vector();
return v;
}
public static void main(String[] args)
throws Exception{
OrganizationControl org=new OrganizationControl();
org.login("admin","admin");
// org.login("admin","admin");
org.getUsersByRole("22222");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -