4、NC发送系统邮件给员工

**

4、NC发送系统邮件给员工

**

发送邮件给员工
util类:
package nc.pub.uap.util;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;

import nc.bs.framework.common.NCLocator;
import nc.itf.hi.IPsndocQryService;
import nc.itf.org.IOrgUnitQryService;
import nc.message.pub.mobile.SMSAndMailUtil;
import nc.message.vo.MessageVO;
import nc.message.vo.NCMessage;
import nc.pub.templet.converter.util.helper.ExceptionUtils;
import nc.vo.hi.psndoc.PsndocAggVO;
import nc.vo.hrhi.pub.tool.GenPsnPWDForMDMUtil;
import nc.vo.org.OrgVO;
import nc.vo.pub.BusinessException;

/**

  • 消息发送工具类
  • 目前已有邮件发送方式,其他方式可根据实际需要扩展该类
  • @author lzm

/
**
public class SendMessageUtil {
*

/**
 * 构建单条消息VO
 * @param subject 标题
 * @param content 正文
 * @param recuserid 接收人:用户主键或者员工邮箱地址
 * @param msgtype 消息类型  0=NC,1=邮件,2=短信,3=NC、邮件、短信,
 * @return
 */
public MessageVO getMessageVO(String subject,String content,String recuserid,String msgtype){	
	MessageVO vo = new MessageVO();
	vo.setContent(content.trim());
	vo.setReceiver(recuserid.trim());
	vo.setSubject(subject.trim());
	vo.setMsgtype(msgtype);
	return vo;
}

/**
 * 构建多条消息VOS
 * @param subject 标题
 * @param content 正文
 * @param recuserid 接收人:用户主键或者员工邮箱地址
 * @param msgtype 消息类型  0=NC,1=邮件,2=短信,3=NC、邮件、短信,
 * @return
 */
public MessageVO[] getMessageVOs(String subject,String content,String recuserid,String msgtype){
	List<MessageVO> list = new ArrayList<MessageVO>();	
	list.add(getMessageVO(subject,content,recuserid,msgtype));
	return list.toArray(new MessageVO[list.size()]);
}

/**
 * 以邮件方式发送消息
 * @param vos
 */
public void sendMessageByEmail(MessageVO[] vos){
	if(vos == null || vos.length<=0){
		return;
	}
	//1-邮件
	if ("1".equals(vos[0].getMsgtype())) {
		List<NCMessage> ncMessageList = new ArrayList<NCMessage>();
		for(MessageVO vo : vos){
			NCMessage msg = new NCMessage();
			msg.setMessage(vo);	
			ncMessageList.add(msg);
		}
		if(ncMessageList!=null && ncMessageList.size()>0){
			try{
				SMSAndMailUtil.sendMailSMS(ncMessageList.toArray(new NCMessage[ncMessageList.size()]));			
			}catch(Exception e){
				e.printStackTrace();
				ExceptionUtils.wrapException(e);
			}
		}
	}
	
	//2-短信      add by laihp 20180626
	if ("2".equals(vos[0].getMsgtype())) {
		List<NCMessage> ncMessageList = new ArrayList<NCMessage>();
		String [][]targetPhones = new String[vos.length][1];
		String []contents = new String[vos.length];			
		for(int i=0; i<vos.length; i++){
			MessageVO vo = vos[i];
			contents[i] = vo.getContent();
			targetPhones[i][0] = vo.getReceiver();								
		}
		if(ncMessageList!=null && ncMessageList.size()>0){
			try{

// SMSAndMailUtil.sendMailSMS(ncMessageList.toArray(new NCMessage[ncMessageList.size()]));
// SMSAndMailUtil.sendSMS(targetPhones, contents);

			}catch(Exception e){
				e.printStackTrace();
				ExceptionUtils.wrapException(e);
			}
		}
	}
}

/**
 * 以邮件方式发送消息
 * @param vos
 */
public void sendMessageWithOrg(MessageVO[] vos, String pk_org){
	if(vos == null || vos.length<=0){
		return;
	}
	//1-邮件
	if ("1".equals(vos[0].getMsgtype())) {
		List<NCMessage> ncMessageList = new ArrayList<NCMessage>();
		for(MessageVO vo : vos){
			NCMessage msg = new NCMessage();
			msg.setMessage(vo);	
			ncMessageList.add(msg);
		}
		if(ncMessageList!=null && ncMessageList.size()>0){
			try{
				SMSAndMailUtil.sendMailSMS(ncMessageList.toArray(new NCMessage[ncMessageList.size()]));			
			}catch(Exception e){
				e.printStackTrace();
				ExceptionUtils.wrapException(e);
			}
		}
	}
	
	//2-短信      add by laihp 20180626
	if ("2".equals(vos[0].getMsgtype())) {
		List<NCMessage> ncMessageList = new ArrayList<NCMessage>();
		String []targetPhones = new String[vos.length];
		String []contents = new String[vos.length];			
		for(int i=0; i<vos.length; i++){
			MessageVO vo = vos[i];
			contents[i] = vo.getContent();
			targetPhones[i] = vo.getReceiver();								
		}
			try{

// SMSAndMailUtil.sendMailSMS(ncMessageList.toArray(new NCMessage[ncMessageList.size()]));
sms_Send.sendSySms(targetPhones, contents, pk_org);

			}catch(Exception e){
				e.printStackTrace();
				ExceptionUtils.wrapException(e);
			}
		
	}
}

/**
 * 根据员工任职记录主键获取员工初始化密码及账号
 * @param psnJobPks
 * @return
 * @throws BusinessException
 */
public List<MessageVO> getPsnIniCodeAndPWDMsgVOsByPsnJob(String[] psnJobPks) throws BusinessException{	
	List<MessageVO>  msgList = new ArrayList<MessageVO>();
	IPsndocQryService qry = NCLocator.getInstance().lookup(IPsndocQryService.class);
	PsndocAggVO[] aggVOs = qry.queryPsndocVOByPks(psnJobPks);
	if(aggVOs!=null && aggVOs.length>0){
		msgList = getPsnInitPasswdMsgVOs(aggVOs);
	}
	return msgList;
	
}

/**
 * 根据员工任职记录主键获取员工初始化密码及账号-短信
 * @param psnJobPks
 * @return
 * @throws BusinessException
 */
public List<MessageVO> getPsnIniCodeAndPWDMsgVOsByPsnJob4SMS(String[] psnJobPks) throws BusinessException{	
	List<MessageVO>  msgList = new ArrayList<MessageVO>();
	IPsndocQryService qry = NCLocator.getInstance().lookup(IPsndocQryService.class);
	PsndocAggVO[] aggVOs = qry.queryPsndocVOByPks(psnJobPks);
	if(aggVOs!=null && aggVOs.length>0){
		msgList = getPsnInitPasswdMsgVOs4SMS(aggVOs);
	}
	return msgList;
	
}

/**
 * 根据员工主键获取员工初始化密码及账号
 * @param psnPks
 * @return
 * @throws BusinessException
 */
public List<MessageVO> getPsnInitCodeAndPWDMsgVOsByPks(String[] psnPks) throws BusinessException{	
	List<MessageVO>  msgList = new ArrayList<MessageVO>();
	IPsndocQryService qry = NCLocator.getInstance().lookup(IPsndocQryService.class);
	PsndocAggVO[] aggVOs = qry.queryPsndocVOByPks(psnPks);
	if(aggVOs!=null && aggVOs.length>0){
		msgList = getPsnInitPasswdMsgVOs(aggVOs);
	}
	return msgList;
	
}


/**
 * 根据人员信息AGGVO批量获取人员初始化密码及账号信息数据
 * @param aggVOs
 * @return
 * @throws BusinessException
 */
public List<MessageVO> getPsnInitPasswdMsgVOs(PsndocAggVO[] aggVOs) throws BusinessException{
	List<MessageVO>  msgList = new ArrayList<MessageVO>();
	IOrgUnitQryService orgservice = NCLocator.getInstance().lookup(IOrgUnitQryService.class);
	for(PsndocAggVO aggVO:aggVOs){
		Object mdmpwd = aggVO.getParentVO().getAttributeValue("glbdef45");
		if(mdmpwd!=null && StringUtils.isNotEmpty(aggVO.getParentVO().getEmail())){
			OrgVO orgVO = orgservice.getOrg(aggVO.getParentVO().getPk_org());
			if(orgVO!=null && StringUtils.isNotEmpty(orgVO.getOrganizationcode())){

// new GenPsnPWDForMDMUtil();
//解密
String decodestr = GenPsnPWDForMDMUtil.EnAndDecryptByAES(mdmpwd.toString(),orgVO.getOrganizationcode(),1);
MessageVO msgVO = new SendMessageUtil().getMessageVO(“通知:登录各业务系统的账号和初始化密码”, aggVO.getParentVO().getName() + “,您好!您登录各业务系统的账号:”+aggVO.getParentVO().getCode()+",初始化密码:"+decodestr+",请妥善保存并及早修改密码。\n", aggVO.getParentVO().getMobile(), “1”);//1=邮件
// MessageVO msgVO = new SendMessageUtil().getMessageVO(“通知:登录各业务系统的账号和初始化密码”, aggVO.getParentVO().getName() + “,您好!您登录HRP、OA、PC内门户和移动内门户等系统的账号:”+aggVO.getParentVO().getCode()+",初始化密码:"+decodestr+",请妥善保存并及早修改密码。\n", aggVO.getParentVO().getMobile(), “2”);//1=邮件
msgList.add(msgVO);
}
}
}
return msgList;
}

/**
 * 根据人员信息AGGVO批量获取人员初始化密码及账号信息数据 -- 短信部分
 * @param aggVOs
 * @return
 * @throws BusinessException
 * 
 * add by laihp
 */
public List<MessageVO> getPsnInitPasswdMsgVOs4SMS(PsndocAggVO[] aggVOs) throws BusinessException{
	List<MessageVO>  msgList = new ArrayList<MessageVO>();
	IOrgUnitQryService orgservice = NCLocator.getInstance().lookup(IOrgUnitQryService.class);
	for(PsndocAggVO aggVO:aggVOs){
		Object mdmpwd = aggVO.getParentVO().getAttributeValue("glbdef45");
		if(mdmpwd!=null && StringUtils.isNotEmpty(aggVO.getParentVO().getMobile())){
			OrgVO orgVO = orgservice.getOrg(aggVO.getParentVO().getPk_org());
			if(orgVO!=null && StringUtils.isNotEmpty(orgVO.getOrganizationcode())){

// new GenPsnPWDForMDMUtil();
//解密
String decodestr = GenPsnPWDForMDMUtil.EnAndDecryptByAES(mdmpwd.toString(),orgVO.getOrganizationcode(),1);
// String decodestr = “123456”;
MessageVO msgVO = new SendMessageUtil().getMessageVO(“通知:登录各业务系统的账号和初始化密码”, aggVO.getParentVO().getName() + “,您好!您登录各业务系统的账号:”+aggVO.getParentVO().getCode()+",初始化密码:"+decodestr+",请妥善保存并及早修改密码。\n", aggVO.getParentVO().getMobile(), “2”);//1=邮件
// MessageVO msgVO = new SendMessageUtil().getMessageVO(“通知:登录各业务系统的账号和初始化密码”, aggVO.getParentVO().getName() + “,您好!您登录HRP、OA、PC内门户和移动内门户等系统的账号:”+aggVO.getParentVO().getCode()+",初始化密码:"+decodestr+",请妥善保存并及早修改密码。\n", aggVO.getParentVO().getMobile(), “2”);//1=邮件
msgList.add(msgVO);
}
}
}
return msgList;
}

}//util类代码结束

代码:
PsndocAggVO[] selectedAggVOs = new PsndocAggVO[selectedObjs.length];

	try{
		for(int i=0;i<selectedObjs.length;i++){
			selectedAggVOs[i] = (PsndocAggVO) selectedObjs[i];
		}
		
		List<MessageVO>  msgList = new SendMessageUtil().getPsnInitPasswdMsgVOs(selectedAggVOs);
	
		if(msgList!=null && msgList.size()>0){
			new SendMessageUtil().sendMessageByEmail(msgList.toArray(new MessageVO[msgList.size()]));
			MessageDialog.showHintDlg(new Container(), "密码发送", "批量发送员工初始化密码到员工邮箱成功!");
									
		}else{
			MessageDialog.showHintDlg(new Container(), "密码发送", "所选择人员没有初始化密码或者电子邮件为空,无法发送!");
		}
			
	}catch(Exception ex){
		ex.printStackTrace();
		MessageDialog.showErrorDlg(new Container(), "密码发送", "批量发送员工初始化密码到员工邮箱失败:"+ex.getMessage());
	}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值