package
com.kvt.lbs.alarm.entity;
import
java.util.List;
import
javax.annotation.Resource;
import
org.quartz.Job;
import
org.quartz.JobExecutionContext;
import
org.quartz.JobExecutionException;
import
org.springframework.stereotype.Component;
import
org.springframework.transaction.annotation.Propagation;
import
org.springframework.transaction.annotation.Transactional;
import
com.kvt.lbs.alarm.dao.AlarmDao;
import
com.kvt.lbs.utils.Log;
/**
* 报警定时任务
* <li>文件名称: AlarmJob</li>
* <li>文件描述: $报警定时任务</li>
* <li>内容摘要: 包括任务执行方法和执行频率</li>
* <li>完成日期:2013-6-17</li>
* <li>修改记录1:boonya</li>
*
*/
@Component
(
"alarmJob"
)
public
class
AlarmJob
implements
Job
{
@Resource
private
AlarmDao alarmDao;
@Transactional
(propagation = Propagation.REQUIRED)
public
void
execute(JobExecutionContext jbec)
throws
JobExecutionException
{
int
doFlag=
2
,operateWay=
2
;
boolean
isSuccess=
true
;
String operator =
"定时任务"
, remark =
"系统定时过期处理"
;
Log.getLogger(
this
.getClass()).info(
"==Start====报警数据:系统过期处理-----------开始"
);
String[] deviceIdToalarmTypeArray =
this
.getDeviceIdToAlarmTypekeys();
if
(deviceIdToalarmTypeArray.length>
0
)
{
isSuccess= alarmDao.handleAlarmByOvertime(deviceIdToalarmTypeArray,doFlag,operateWay, operator, remark);
}
Log.getLogger(
this
.getClass()).info(
"==Results==报警数据:系统过期处理"
+ (isSuccess ?
"成功"
:
"失败"
)+
" ,处理数据条数: "
+deviceIdToalarmTypeArray.length);
Log.getLogger(
this
.getClass()).info(
"==End======报警数据:系统过期处理-----------完成"
);
}
/**
* 获取内存中需要过期处理的报警的Key数组
*
* @return
*/
public
String[] getDeviceIdToAlarmTypekeys()
{
String[] deviceIdToalarmTypeArray =
new
String [
0
];
long
longDeTime =
1
*
24
*
60
*
60
*
1000
;
List<String> list = alarmDao.getOvertimeDeviceIdToAlarmTypeKeys(longDeTime);
if
(list !=
null
)
{
deviceIdToalarmTypeArray =
new
String[list.size()];
for
(
int
i =
0
; i < list.size(); i++)
{
deviceIdToalarmTypeArray[i] = list.get(i);
}
}
return
deviceIdToalarmTypeArray;
}
}