EAS BOS 代码发送手机短信、系统消息

1、发送手机短信

//参数1:上下文ctx
//参数2:手机号码集合
//参数3:消息内容
public static void sendSMS(Context ctx, Set phoneSet, String sendMessage) throws EASBizException, BOSException {

    if (phoneSet == null || phoneSet.size() == 0) return;

    SendMessageParamInfo paramInfo = new SendMessageParamInfo();
    paramInfo.setAppendCompanyName(true);//是否附加公司签名
    paramInfo.setAppendNumber(false);
    paramInfo.setAppendPersonName(false);//是否附加个人签名
    paramInfo.setAppendRevert(false);
    paramInfo.setAppendUserName(false);
    paramInfo.setContent(sendMessage);
    paramInfo.setPhoneNumber(phoneSet);
    paramInfo.setReceiver("");
    paramInfo.setCanback(false);//是否允许回复
    IMsgFacade iMsgFacade = MsgFacadeFactory.getLocalInstance(ctx);
    iMsgFacade.sendMsg(paramInfo);
}

2、发送系统消息

//参数1:上下文ctx
//参数2:接收人id,注意:此id为userId,若为personId需要转换为userId后使用,若接收人为多个,则id用分号隔开
//参数3:消息标题
//参数4:消息内容
public static void sendMessage(Context ctx, String receiveIds, String title, String sendMessage){

    //receiveIds = getUserByPerson(ctx, receiveIds);//若receiveIds为personId则先转换为userId
    if(StringUtils.isEmpty(receiveIds)) return;
		
    SenderAgent sender = SenderAgent.getSenderAgent();
    SolutionInfo solution = MetaDataLoaderFactory.getLocalMetaDataLoader(ctx).getSolution();
    sender.start();
    LanguageCollection language = null;
    if(solution != null)
        language = solution.getLanguages();

    Message message = MessageFactory.newMessage("kingdee.workflow");
    if(language.size()>0){
        for(int i=0; i<language.size(); i++){
            message.setLocaleStringHeader("title",title,language.get(i).getLocale());
            message.setLocaleStringHeader("sender",
                   ContextHelperFactory.getLocalInstance(ctx).getCurrentUser().getName(),
            language.get(i).getLocale());
            message.setLocaleStringHeader("body", sendMessage, language.get(i).getLocale());
        }
        message.setIntHeader("type", MsgType.NOTICE_VALUE);//设置消息类型为通知
        message.setIntHeader("sourceStatus", MsgSourceStatus.EMPTY_VALUE);//设置任务状态,此处是通知消息,所以设置空
        message.setIntHeader("priority", MsgPriority.MIDDLE_VALUE);//设置消息优先级,自己根据需要设定相应的级别
        message.setIntHeader("bizType", MsgBizType.ONLINE_VALUE);//在右下角的提示框中弹出信息
        message.setStringHeader("databaseCenter", ctx.getAIS());//设置数据中心
        message.setStringHeader("solution", ctx.getSolution());//设置解决方案
        message.setStringHeader("receiver",receiveIds);//设置接收用户ID
        sender.sendMessage(message);//发送消息
    }
    if(sender != null)
        sender.stop();
}

3、personId转userId

//参数personIds为单个或多个personId,多个id用分号隔开
//personId转userId
public static String getUserByPerson(Context ctx, String personIds){

    if(StringUtils.isEmpty(personIds)) return null;

    String userIds = "";

    StringBuffer sql = new StringBuffer();
    sql.append("select fid from t_pm_user ");
    sql.append("where 1 = 1 ");
    if(personIds.contains(";")){
        String[] personIdsArr = personIds.split(";");
        String ids = getFromatFields(personIdsArr);
        sql.append("and FPersonID in (").append(ids).append(")");
    } else {
        sql.append("and FPersonID = '").append(personIds).append("'");
    }

    try {
        IRowSet rs = DbUtil.executeQuery(ctx, sql.toString());
        while(rs.next()){
            String userId = rs.getString("fid");
            userIds = userIds + userId + ";" ;
        }
    } catch (BOSException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }

    if(userIds.length() > 0)
        userIds = userIds.substring(0, userIds.length() - 1);

    return userIds;
}

//格式化id为可执行sql形式
public static String getFromatFields(Object[] obj){

    String formatFields = "";

    if(obj == null || obj.length == 0) return null;

    for(int i = 0; i<obj.length; i++)
        formatFields = formatFields + "'" + obj[i] + "',";

    if(formatFields.length() != 0)
        formatFields = formatFields.substring(0, formatFields.length() - 1);
		
    return formatFields;
}

猜你喜欢

转载自blog.csdn.net/qq_25170493/article/details/82771371