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;
}