读书人

项目风险汇报邮件

发布时间: 2013-07-01 12:33:04 作者: rapoo

项目风险报告邮件
public class DelayedUpdateReportTask extends AbstractMail implements ITask{Connection con = null;Statement state = null;ResultSet result =null;//存储每条产品线数据的行模板String columns = "<tr height='50px'><td class='thor'>%d</td><td class='thdr'>%s</td><td class='thor'>%s</td>"+ "<td class='thdr'>%s</td><td class='thor'>%s</td><td class='thdr'>%s</td><td class='thor'>%s</td></tr>";/**邮件模板**/String emailTemplate = "";//项目状态长时间没有跟新Map<String,List<delayedUpdateReportEntity>> delayedUpdateMap = new HashMap<String,List<delayedUpdateReportEntity>>();/** * 发送邮件 */public void execute(){//读取模板文件this.readerFile();//查询长时间没有跟新的项目信息this.getDelayedUpdate();//给riskMap申明迭代Iterator<String> riskIter = delayedUpdateMap.keySet().iterator();while(riskIter.hasNext()){//责任人风险类测试信息String riskContent = "";//组装后发送邮件时的最终字符串String content = "";//得到责任人String burEditer = riskIter.next(); //得到责任人下的所有存在长时间没有跟新的项目List<delayedUpdateReportEntity> riskNews = delayedUpdateMap.get(burEditer);int i = 0;for (delayedUpdateReportEntity riskNew : riskNews) {//项目IDString burId = riskNew.getBurId();//项目名称和链接String proName = "<a href = 'http://10.70.32.116:8080/eposs/bureau/bureauFrame_new.jsp?bur_id=" + burId + "'>" + riskNew.getProjectName() + "</a>";String proType = riskNew.getProjectType();//项目类型String proState = riskNew.getProjectState();//项目状态String riskState = riskNew.getRiskState();//风险状态String burEditor = riskNew.getBurEditor();//项目责任人String updateState = riskNew.getLastUpdate();//最后跟新时间riskContent += String.format(columns,++i,proName,proType,proState,riskState,burEditor,updateState);}content = String.format(emailTemplate.toString(),riskContent);/**给项目责任人发送邮件**/this.sendEmail("smtp.huawei.com","MTS项目管理平台通知您刷新项目信息","MTS",new String[] {burEditer + "@notesmail.huawei.com"},null,null,null,content,null);}/**邮件发送完后向开发者发一份邮件提示邮件发送成功**/this.sendEmail("smtp.huawei.com","项目延时报告已经发出","MTS",null,null,new String[] {"xkf68650@notesmail.huawei.com"},null,"项目延时报告已经发出",null);/**邮件发出后清空数据**/emailTemplate = "";delayedUpdateMap.clear();}/** * 发送邮件 * @param smtpHost - SMTP服务器地址 * @param subject - 邮件标题 * @param from - 邮件发送地址 * @param to - 邮件收件地址列表 * @param cc - 邮件抄送地址列表 * @param bcc - 邮件广播地址列表 * @param replyTo - 邮件答复地址列表 * @param content - 邮件内容 * @param files - 附件 */public void sendEmail(String smtpHost, String subject, String from, String[] to, String[] cc, String[] bcc, String[] replyTo, String content,String[] files){try {MailSender.send(smtpHost,subject,from,to,cc,bcc,replyTo,content,files);} catch (Exception e) {e.printStackTrace();}}//读取模板文件信息public void readerFile(){/**邮件模板内容**/StringBuffer content = new StringBuffer();String str = "";//读取模板文件try {//Project.root获得服务器地址InputStream in = new FileInputStream(Project.root + "template/delayed_new_template.txt");//文件读取流InputStreamReader reader = new InputStreamReader(in,"UTF-8");BufferedReader rea = new BufferedReader(reader);//读取模板信息while((str = rea.readLine()) != null){content.append(str + "\n");}} catch (Exception e) {e.printStackTrace();}emailTemplate = content.toString();}public void getDelayedUpdate(){try {//得到连接con = Project.getJDBCConnection();state = con.createStatement();//查询数据库长时间没有跟新的项目String sql = "select a.bur_id,a.bur_project_name,a.bur_editer,a.update_date,a.project_type,b.nonce_state,c.dict_value "+ "from (select ((select to_date(sysdate) from dual) - update_date) as time_differ, " + "bur_id,bur_project_name,bur_editer,update_date,bur_state,project_type " + "from bureau_info " + "where update_date is not null " + "and bur_state != '6' " + ") a left join bureau_state b on a.bur_id = b.sta_id left join dict_table c on a.bur_state = c.dict_key " + "where a.time_differ > 7 and c.dict_type_id = 'bureau_state' " + "and bur_editer like 'kf68650%'";state = con.createStatement();result = state.executeQuery(sql);while(result.next()){delayedUpdateReportEntity record = new delayedUpdateReportEntity();record.setBurId(result.getString("bur_id"));//项目IDrecord.setProjectName(result.getString("bur_project_name")); //项目名称record.setProjectType(result.getString("project_type"));//项目类型 record.setProjectState(result.getString("dict_value"));//项目状态record.setRiskState(result.getString("nonce_state")); //风险状态record.setBurEditor(result.getString("bur_editer")); //项目责任人record.setLastUpdate(result.getString("update_date"));//最后跟新时间this.packaging(record);//调用方法封装数据}result.close();state.close();} catch (Exception e) {e.printStackTrace();return;}finally{try {if(result != null)result.close();if(state != null)state.close();if(con != null)con.close();} catch (Exception e) {e.printStackTrace();}}}/** * 封装邮件信息 * @author xKF68650 * @time 2012-5-29 * @record 一条长时间没有跟新的记录 */public void packaging(delayedUpdateReportEntity record){String[] editors = record.getBurEditor().split(",");for (String editor : editors) {List<delayedUpdateReportEntity> list = delayedUpdateMap.get(editor);if(list != null){list.add(record);}else{List<delayedUpdateReportEntity> newList = new ArrayList<delayedUpdateReportEntity>();newList.add(record);delayedUpdateMap.put(editor,newList);}}}/** * 执行任务前的状态 * 状态为true是才会自动执行任务 */public boolean beforeExecute() {return true;}public void afterExecute() {}}

?

读书人网 >行业软件

热点推荐