作者:钟剑华  历史版本:1  更新时间:2024-06-15 15:03

适用版本:所有版本;
完整类名:com.lc.ibps.platform.script.script.CommonScript

适用哪些服务?

  1. 通过business

调用方式例子

// 获取一个uid
cscript.getUuid();

// 获取当前登录用户名
cscript.getAccount();

//获取当前登录用户ID。
cscript.getCurrentUserId();

常用方法


    /**
     * 获取当前登录用户名 。<br>
     * 
     * <pre>
     * 脚本中使用方法:
     * cscript.getAccount();
     * </pre>
     * 
     * @return
     */
    public String getAccount();

    /**
     * 获取当前登录用户ID。<br>
     * 
     * <pre>
     * 脚本中使用方法:
     * cscript.getCurrentUserId();
     * </pre>
     * 
     * @return
     */
    public String getCurrentUserId();

    /**
     * 获取当前登录用户组织名称 。<br>
     * 
     * <pre>
     * 脚本中使用方法:
     * cscript.getCurrentName();
     * </pre>
     * 
     * @return
     */
    public String getCurrentName();

    /**
     * 获取当前系统的用户。
     * 
     * <pre>
     * 脚本中使用方法:
     * cscript.getCurrentUser();
     * </pre>
     * 
     * @return 用户对象。
     */
    public User getCurrentUser();


    /**
     * 获取当前用户所在的组织名
     * 
     * <pre>
     * 脚本中使用方法:
     * cscript.getCurrentOrgName();
     * </pre>
     * 
     * @return
     */
    public String getCurrentOrgName();

    /**
     * 获取当前组织ID
     * 
     * <pre>
     * 脚本中使用方法:
     * cscript.getCurrentOrgId();
     * </pre>
     * 
     * @return
     */
    public String getCurrentOrgId();

    /**
     * 获取当前用户所在的主岗位名称
     * 
     * <pre>
     * 脚本中使用方法:
     * cscript.getCurrentPositionName();
     * </pre>
     * 
     * @return
     */
    public String getCurrentPositionName();

    /**
     * 获取当前用户所在的主岗位ID
     * 
     * <pre>
     * 脚本中使用方法:
     * cscript.getCurrentPositionId();
     * </pre>
     * 
     * @return
     */
    public String getCurrentPositionId();

    /**
     * 获取当前用户员工扩展属性值
     * 
     * @param attrKey 具体的扩展属性key
     * 
     *            <pre>
     *            脚本中使用方法:
     *            cscript.getCurrentEmployeeAttrVal("securityLevel");
     *            </pre>
     * 
     * @return
     * @author huangdq
     * @date 2020-09-04
     */
    public String getCurrentEmployeeAttrVal(String attrKey);

    /**
     * 获取员工扩展属性值
     * 
     * @param id
     * @param attrKey
     * 
     *            <pre>
     *            脚本中使用方法:
     *            cscript.getEmployeeAttrVal(userId, "securityLevel");
     *            </pre>
     * 
     * @return
     * @author huangdq
     * @date 2020-09-04
     */
    public String getEmployeeAttrVal(String id, String attrKey);

    /**
     * 获取扩展属性值
     * 
     * @param id
     * @param partyType employee-员工,org-机构,position-岗位,role-角色
     * @param attrKey 具体的扩展属性key
     * 
     *            <pre>
     *            脚本中使用方法:
     *            cscript.getCurrentAttrVal("employee", "securityLevel");
     *            </pre>
     * 
     * @return
     * @author huangdq
     * @date 2020-09-04
     */
    public String getAttrVal(String id, String partyType, String attrKey);


    /* 系统脚本 */

    /**
     * 获取系统当前日期,默认格式2015-12-21
     *
     * @return
     */
    public String getCurDate();

    /**
     * 获取当前日期时间,按format格式输出
     *
     * @param format
     * @return
     */
    public String getCurDate(String format);

    /**
     * 获取当前日期时间,按format格式输出
     *
     * @param
     * @return
     */
    public String getCurDateTime();

    /* 工具脚本 */

    /**
     * 比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等。
     * 
     * @param str1
     * @param str2
     * @return
     */
    public boolean equalsIgnoreCase(String str1, String str2);

    /**
     * 比较两个字符串是否相等,如果两个均为空则也认为相等。
     * 
     * @param str1
     * @param str2
     * @return
     */
    public boolean equals(String str1, String str2);

    /**
     * 将字符串转化为short类型(默认值0)
     * 
     * @param str 字符串值
     * @return
     */
    public short parseShort(String str);

    /**
     * 将字符串转化为short类型
     * 
     * @param str 字符串值
     * @param defaultValue 自定义默认
     * @return 返回转化的值
     */
    public short parseShort(String str, short defaultValue);

    /**
     * 将字符串转化为int类型(默认值0)
     * 
     * @param str 字符串值
     * @return
     */
    public int parseInt(String str);

    /**
     * 将字符串转化为int类型
     * 
     * @param str 字符串值
     * @param defaultValue 自定义默认
     * @return 返回转化的值
     */
    public int parseInt(String str, int defaultValue);

    /**
     * 将字符串转化为long类型
     * 
     * @param str 字符串值
     * @return 返回转化的值
     */
    public long parseLong(String str);

    /**
     * 将字符串转化为long类型
     * 
     * @param str 字符串值
     * @param defaultValue 自定义默认
     * @return 返回转化的值
     */
    public long parseLong(String str, long defaultValue);

    /**
     * 将字符串转化为float类型
     * 
     * @param str 字符串值
     * @return 返回转化的值
     */
    public float parseFloat(String str);

    /**
     * 将字符串转化为float类型
     * 
     * @param str 字符串值
     * @param defaultValue 自定义默认
     * @return 返回转化的值
     */
    public float parseFloat(String str, float defaultValue);

    /**
     * 将字符串转化为double类型
     * 
     * @param str 字符串值
     * @return 返回转化的值
     */
    public double parseDouble(String str);

    /**
     * 将字符串转化为double类型
     * 
     * @param str 字符串值
     * @param defaultValue 自定义默认
     * @return 返回转化的值
     */
    public double parseDouble(String str, double defaultValue);

    /**
     * 将字符串转化为boolean类型(默认值false)
     * 
     * @param str 字符串值(如无值则返回缺省值, 如值为数字1,则返回true,不是数字1的)
     * @return 返回转化的值
     */
    public boolean parseBoolean(String str);

    /**
     * 将字符串转化为long类型
     * 
     * @param str 字符串值 (如无值则返回缺省值, 如值为数字1,则返回true,不是数字1的)
     * @param defaultValue 自定义默认
     * @return 返回转化的值
     */
    public Boolean parseBoolean(String str, Boolean defaultValue);

    /**
     * 将obj类型转换为string
     * 
     * @param obj 如果是null返回空字符串
     * @return
     */
    public String parseString(Object obj);

    /**
     * 将obj类型转换为string
     * 
     * @param obj 如果是null返回空字符串
     * @return
     */
    public String parseString(Object obj, String style);

    /**
     * 转化日期格式 , 如无值则返回缺省值,如有值则返回 yyyy-MM-dd HH:mm:ss 格式的日期,或者自定义格式的日期
     * 
     * @param str
     * @param style
     * @return
     * @throws Exception
     */
    public Date parseDate(String str, String style) throws Exception;

    /**
     * 转化日期格式 , 如无值则返回缺省值,如有值则返回 yyyy-MM-dd HH:mm:ss 格式的日期,或者自定义格式的日期
     * 
     * @param str
     * @param style
     * @return
     * @throws Exception
     */
    public Date parseDate(String str, Date defaultValue, String style) throws Exception;

    /**
     * 2个日期比较
     * 
     * @param date1 日期1
     * @param date2 日期2
     * @return 返回 0 表示时间日期相同 返回 1 表示日期1>日期2 返回 -1 表示日期1<日期2 返回-10 表示日期1为null 返回 10 表示日期2为null
     */
    public int compareTo(Date date1, Date date2);

    /**
     * 2个字符串比较
     * 
     * @param str1
     * @param str2
     * @return 返回 0 表示字符串相同 返回 1 表示字符串1>字符串2 返回 -1 表示字符串1<字符串2 返回-10 表示字符串1为"" 或null 返回 10 表示字符串2为""或null
     */
    public int compareTo(String str1, String str2);

    /**
     * 判断字符串是否为空
     * 
     * @param str
     * @return
     */
    public boolean isEmpty(String str);

    /**
     * 判断对象是否为空(Map,Collection,String,Array,Long是否为空)
     * 
     * @param obj
     * @return
     */
    public boolean isEmpty(Object obj);

    /**
     * <pre>
     * 脚本获取当前人用户信息
     * 通过在【上下级管理】维护的下属信息
     * cscript.currentUser()
     * </pre>
     * 
     * @return Set&lt;BpmIdentity>
     */
    public Set<BpmIdentity> currentUser();

    /**
     * <pre>
     * 脚本获取指定Id的用户信息
     * 通过在【上下级管理】维护的下属信息
     * cscript.user(uid)
     * </pre>
     * 
     * @return Set&lt;BpmIdentity>
     */
    public Set<BpmIdentity> user(String uid);

    /* 组织架构脚本 */

    /**
     * <pre>
     * 脚本获取当前人的下级用户信息
     * 通过在【上下级管理】维护的下属信息
     * cscript.findCurrentUserUnders()
     * </pre>
     * 
     * @return Set&lt;BpmIdentity>
     */
    public Set<BpmIdentity> findCurrentUserUnders();

    /**
     * <pre>
     * 脚本获取当前人的上级用户信息
     * 通过在【上下级管理】维护的上级信息
     * cscript.findCurrentUserSuperoirs()
     * </pre>
     * 
     * @return Set&lt;BpmIdentity>
     */
    public Set<BpmIdentity> findCurrentUserSuperoirs();

    /**
     * <pre>
     * 脚本获取当前人的上级用户ID
     * 通过在【上下级管理】维护的上级信息
     * cscript.findCurrentUserSuperoirIds()
     * </pre>
     * 
     * @return Set&lt;BpmIdentity>
     */
    public List<String> findCurrentUserSuperoirIds();

    /**
     * 脚本获取当前组织或者包含所有子组织ID 只能用于in 或者 not in 在。。之内和 不在。。之内 cscript.findCurrentUserOrgIds(true/false)
     * 
     * @param descendants 是否递归查询子组织,true:查询包含所有子组织/false:只查询当前组织
     * @return List<String> 组织ID列表
     */
    public List<String> findCurrentUserOrgIds(boolean descendants);

    /**
     * 脚本获取当前组织的上一级或者所有上级ID cscript.findCurrentUserParentOrgIds(true/false)
     * 
     * @param descendants 是否递归查询父组织,true:查询所有父组织/false:只查询直接父组织
     * @return List<String>
     */
    public List<String> findCurrentUserParentOrgIds(boolean descendants);

    /**
     * 脚本获取当前用户的所有角色ID 只能用于in 或者 not in 在。。之内和 不在。。之内 cscript.findCurrentUserRoleIds()
     * 
     * @return List<String>
     */
    public List<String> findCurrentUserRoleIds();

    /**
     * 脚本获取用户的岗位ID 只能用于in 或者 not in 在。。之内和 不在。。之内 cscript.findCurrentUserPositionIds(true/false)
     * 
     * @param isMain 是否主岗位,true:是/false:所有岗位
     * @return List<String>
     */
    public List<String> findCurrentUserPositionIds(boolean isMain);

    /**
     * 脚本判断当前用户是否部门负责人 cscript.isOrgManager()
     * 
     * @return boolean true/false
     */
    public boolean isOrgManager();

    /**
     * 获取当前用户所在的最上层组织id
     * 
     * <pre>
     * 脚本中使用方法: 
     * cscript.getCurrentTopOrgId()
     * </pre>
     * 
     * @return String 如果是顶级组织返回的是"0"
     */
    public String getCurrentTopOrgId();

    /**
     * 根据用户id和岗位姓名判断是否有岗位信息
     * 
     * <pre>
     * 脚本中使用方法: 
     * cscript.hasPosition("111","技术经理", true)
     * </pre>
     * 
     * @param userId 用户ID,当传空时,则默认获取当前用户Id
     * @param posName 岗位名称
     * @return
     * @throws Exception
     */
    public boolean hasPosition(String userId, String posName, boolean isMain);

    /**
     * 获取当前用户所在的主岗位ID
     * 
     * <pre>
     * 脚本中使用方法: 
     * cscript.getCurrentTopOrg()
     * </pre>
     * 
     * @return
     */
    public String getCurrentMainPositionId();

    /**
     * 根据组织ID获取组织机构名称
     * 
     * <pre>
     * 脚本中使用方法: 
     * cscript.getOrgName("222324232525252")
     * </pre>
     * 
     * @param orgId 组织ID
     * @return
     */
    public String getOrgNameById(String orgId);

    /**
     * 根据组织别名获取组织机构名称
     * 
     * <pre>
     * 脚本中使用方法: 
     * cscript.getOrgName("gzlc")
     * </pre>
     * 
     * @param orgAlias 组织别名
     * @return
     */
    public String getOrgName(String orgAlias);

    /**
     * WebService 调用
     * 
     * <pre>
     * InvokeCmd cmd = new DefaultInvokeCmd();
     * cmd.setAddress(target);
     * cmd.setOperatorNamespace("http://webservice.basics.jit.com/");
     * cmd.setOperatorName("queryCardTypeTest");
     * cmd.setJsonParam("{\"type\":\"0\"}");
     * cmd.setSoapAction(true);
     * </pre>
     * 
     * @param cmd
     * @return
     */
    public InvokeResult webServiceInvoke(InvokeCmd cmd);

    /**
cscript.getUuid()
     * </pre>
     * 
     * @return
     */
    public String getUuid()

    /**
     * 获取一个uuidu
     * 
     * <pre>
     * 脚本中使用方法: 
     * cscript.uuid()
     * </pre>
     * 
     * @return
     */
    public String uuid();

    /**
     * 输入参数数据处理脚本
     * 
     * @param params
     * @return
     */
    public Map<String, Object> defaultResfulInput(Map<String, Object> params);

    /**
     * 输出参数数据处理脚本
     * 
     * @param data
     * @return
     */
    public List<?> defaultResfulOutput(String data);

    /**
     * 根据页面传递的组织id进行过滤组织选择器
     * 
     * <pre>
     * 脚本中使用方法: 
     * cscript.queryByOrgIdInfo(组织ID)
     * </pre>
     * 
     * @param orgId
     * @return
     */
    public List<PartyEntityTreePo> queryByOrgIdInfo(String orgId);

    /**
     * 返回当前用户所属组织下的所有用户
     *
     * <pre>
     * 脚本中使用方法: 
     * cscript.getCurrOrgEmps()
     * </pre>
     */
    public List<PartyEntityTreePo> getCurrOrgEmps();

    /**
     * 岗位范围脚本测试
     * 
     * <pre>
     * 脚本中使用方法: 
     * cscript.queryByPositionIdInfo()
     * </pre>
     */
    public List<PartyEntityTreePo> queryByPositionIdInfo();

    /**
     * 获取当前登录用户角色*
     * 
     * <pre>
     *脚本中使用方法:
     *cscript.getCurrRole()
     * </pre>
     * 
     * @return
     */
    public List<PartyRoleTree> getCurrRole();

    /**
     * 
     * 测试脚本方法 cscript.testScript("test")
     *
     * @param object
     * @return
     */
    public Object testScript(Object object);