每月定点算报表发邮件并上传FTP
用例详情
每月1号,要将每位员工的工资条以excel的方式推送至对应员工邮箱,并将每位员工工资条推送至FTP服务器上每位员工的目录下,文档命名规则为员工名称+日期。
用例解析
此用例重点:
首先需要每月月初发送员工工资条,此时可通过Icycle任务周期循环接口实现此功能。
其次是对调度任务多种推送方式和文档命名规则的设置。
用例实现
- 初始化任务信息类对象,对任务信息类参数赋值
TaskInfo ti = new TaskInfo();// 任务信息类
ti.setTaskClass("com.runqian.schedule.task.ReportTask");//任务类
ti.setTaskCycleclass("com.runqianapp.schedule.example.cycle.MonthBeginCycle");//详见自定义周期-月初
ti.setTaskStarttime("2013-08-05 18:00:00");//任务首次执行时间
ti.setTaskTestclass("com.runqian.schedule.test.TrueTest");//自定义条件判断类,必须进行设置
ti.setTaskTestparam("");//自定义条件判断类参数,或设置的条件判断类需要传递参数,则可以使用此方法设置参数值
- 添加任务
idba = ScheduleConfig.getInitDBAccess();//获取数据库连接
taskId = PKGenerator.getInstance().getId("t_task.task_id", idba);// 得到任务主键值
ti.setTaskId(taskId);//设置任务id
ti.setTaskName("调度器示例2" + taskId);//设置任务名称
TaskManager.addTask(ti.toJSON());//添加任务(对应数据库t_task表)
args_ids = PKGenerator.getInstance().getIds("t_taskargument.arg_id", 10, idba);// 得到任务参数主键值,这里创建10个参数
- 添加任务参数
//设置sql参数,获取员工的姓名和邮箱
ArgumentInfo info10 = new ArgumentInfo();// 任务参数类,此参数使用sql语句在数据库中获取用户的NAME,EMAILE
info10.setArgId(args_ids[9]);//参数id
info10.setTaskId(taskId);//参数所属的任务ID
info10.setArgName("empId,empEmail");//参数名称,当参数类型为sql参数的时候,可以同时设置多个参数名称
info10.setArgTitle("员工id,员工email");//别名
info10.setArgType(ArgumentInfo.TYPE_SQL);//ArgumentInfo.TYPE_SQL:sql参数类型参数
info10.setArgValue("demo([select NAME,EMAILE from testschedule],[NAME,EMAILE])");//当参数类型为sql参数时,可以同时获取多个参数
说明:详细代码请参考DemoTaskManager.java