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

📄 organizationcontrol.java

📁 公司自己开发的工作流引擎
💻 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 + -