BOS物流项目笔记(13)

1、学习计划

(1)Quartz概述

  1. Quartz介绍和下载

  2. 入门案例

  3. Quartz执行流程

  4. cron表达式

(2)在BOS项目中使用Quartz创建定时任务

(3)在BOS项目中使用JavaMail发送邮件

(4)HighCharts概述

  1. HighCharts介绍

  2. 在线演示

(5)基于HighCharts实现区域分区分布图

2、Quartz概述

2.1、quartz介绍和下载

官网:http://www.quartz-scheduler.org/

BOS物流项目笔记(13)_第1张图片

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.2.3。

下载压缩包:

 

解压压缩包:

BOS物流项目笔记(13)_第2张图片

2.2、入门案例

第一步:创建maven工程,导入springquartz相关依赖

BOS物流项目笔记(13)_第3张图片

第二步:创建任务类

BOS物流项目笔记(13)_第4张图片

第三步:在spring配置文件中配置任务类

第四步:在spring配置文件中配置JobDetail

BOS物流项目笔记(13)_第5张图片

第五步:在spring配置文件中配置触发器

BOS物流项目笔记(13)_第6张图片

第六步:在spring配置文件中配置scheduler

BOS物流项目笔记(13)_第7张图片

第七步:加载spring配置文件,创建spring工厂

BOS物流项目笔记(13)_第8张图片

3、在BOS项目中引入quartz

第一步:在pom.xml中引入quartz和JavaMail的依赖

BOS物流项目笔记(13)_第9张图片

第二步:提供一个作业类,用于为系统管理员发送邮件

public class MailJob {
	@Resource
	private IWorkbillDao workbillDao;
	private String username;//发件人的邮箱账号
	private String password;//密码
	private String smtpServer;//服务器
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public void execute() {
		System.out.println("要发邮件了。。。" + new Date());
		try {
			//查询工单类型为新单的所有工单
			List list = workbillDao.findAll();
			if(null != list && list.size() > 0){
				final Properties mailProps = new Properties();
				mailProps.put("mail.smtp.host", this.getSmtpServer());
				mailProps.put("mail.smtp.auth", "true");
				mailProps.put("mail.username", this.getUsername());
				mailProps.put("mail.password", this.getPassword());

				// 构建授权信息,用于进行SMTP进行身份验证
				Authenticator authenticator = new Authenticator() {
					protected PasswordAuthentication getPasswordAuthentication() {
						// 用户名、密码
						String userName = mailProps.getProperty("mail.username");
						String password = mailProps.getProperty("mail.password");
						return new PasswordAuthentication(userName, password);
					}
				};
				// 使用环境属性和授权信息,创建邮件会话
				Session mailSession = Session.getInstance(mailProps, authenticator);
				for(Workbill workbill : list){
					// 创建邮件消息
					MimeMessage message = new MimeMessage(mailSession);
					// 设置发件人
					InternetAddress from = new InternetAddress(mailProps.getProperty("mail.username"));
					message.setFrom(from);
					// 设置收件人
					InternetAddress to = new InternetAddress("[email protected]");
					message.setRecipient(RecipientType.TO, to);
					// 设置邮件标题
					message.setSubject("系统邮件:新单通知");
					// 设置邮件的内容体
					message.setContent(workbill.toString(), "text/html;charset=UTF-8");
					// 发送邮件
					Transport.send(message);
				}
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	public String getSmtpServer() {
		return smtpServer;
	}

	public void setSmtpServer(String smtpServer) {
		this.smtpServer = smtpServer;
	}
}

第三步:在spring配置文件中配置


	
		
		
		
	
	
	
	
		
		
		
		
	
	
	
	
		
		
		
		
			0/5 * * * * ?
		
	
	
	
	
		
		
			
				
			
		
	

4、Highcharts

 4.1、Highcharts简介

Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。HighCharts支持的图表类型有曲线图、区域图、柱状图、饼状图、散状点图和综合图表。

基于jQuery开发一个图形报表工具插件

官网:http://www.hcharts.cn/

下载zip开发文档:

解压zip文件:

BOS物流项目笔记(13)_第10张图片

BOS物流项目笔记(13)_第11张图片

4.2、入门案例

第一步:将Highcharts相关资源文件复制到项目中

BOS物流项目笔记(13)_第12张图片

第二步:在页面中引入相关js文件




第三步:在页面中提供一个div,并指定id属性

第四步:调用Highcharts提供的方法,动态创建图表

BOS物流项目笔记(13)_第13张图片

5、在BOS项目中展示区域分区分布图

第一步:在subarea.jsp页面中引入Highcharts资源文件

第二步:在jsp页面中提供按钮,并提供div窗口,在这个窗口中展示图表

BOS物流项目笔记(13)_第14张图片

BOS物流项目笔记(13)_第15张图片

第三步:定义function

function doShowHighcharts(){
		$("#showSubareaWindow").window("open");
		//页面加载完成后,动态创建图表
		$.post("subareaAction_findSubareasGroupByProvince.action",function(data){
			$("#test").highcharts({
				title: {
		            text: '区域分区分布图'
		        },
		        series: [{
		            type: 'pie',
		            name: '区域分区分布图',
		            data: data
		        }]
			});
		});
	}

第四步:在服务端Action中提供方法

BOS物流项目笔记(13)_第16张图片

Dao代码:

@Repository
public class SubareaDaoImpl extends BaseDaoImpl implements ISubareaDao {
	public List findSubareasGroupByProvince() {
		String hql = "SELECT r.province ,count(*) FROM Subarea s LEFT OUTER JOIN s.region r Group BY r.province";
		return (List) this.getHibernateTemplate().find(hql);
	}
}
 
  

BOS物流项目笔记(13)_第17张图片

 

 

 

你可能感兴趣的:(BOS物流项目笔记(13))