目录

每月定点算报表发邮件并上传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