use of com.netsteadfast.greenstep.service.ISysExprJobLogService in project bamboobsc by billchen198318.
the class ExpressionJobExecuteCallable method call.
@Override
public ExpressionJobObj call() throws Exception {
Date beginDatetime = new Date();
String faultMsg = "";
String runStatus = "";
String logStatus = "";
@SuppressWarnings("unchecked") ISysExprJobService<SysExprJobVO, TbSysExprJob, String> sysExprJobService = (ISysExprJobService<SysExprJobVO, TbSysExprJob, String>) AppContext.getBean("core.service.SysExprJobService");
@SuppressWarnings("unchecked") ISysExprJobLogService<SysExprJobLogVO, TbSysExprJobLog, String> sysExprJobLogService = (ISysExprJobLogService<SysExprJobLogVO, TbSysExprJobLog, String>) AppContext.getBean("core.service.SysExprJobLogService");
try {
logger.info("[Expression-Job] (Start) ID: " + this.jobObj.getSysExprJob().getId() + " , NAME: " + this.jobObj.getSysExprJob().getName());
if (StringUtils.isBlank(jobObj.getSysExpression().getContent())) {
faultMsg = "No expression content!";
runStatus = ExpressionJobConstants.RUNSTATUS_FAULT;
logStatus = ExpressionJobConstants.LOGSTATUS_NO_EXECUTE;
return this.jobObj;
}
if (YesNo.YES.equals(this.jobObj.getSysExprJob().getCheckFault()) && ExpressionJobConstants.RUNSTATUS_FAULT.equals(this.jobObj.getSysExprJob().getRunStatus())) {
faultMsg = "Before proccess fault, cannot execute expression job!";
runStatus = ExpressionJobConstants.RUNSTATUS_FAULT;
logStatus = ExpressionJobConstants.LOGSTATUS_NO_EXECUTE;
return this.jobObj;
}
this.jobObj.getSysExprJob().setRunStatus(ExpressionJobConstants.RUNSTATUS_PROCESS_NOW);
sysExprJobService.updateObject(this.jobObj.getSysExprJob());
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("jobObj", this.jobObj);
ScriptExpressionUtils.execute(jobObj.getSysExpression().getType(), jobObj.getSysExpression().getContent(), paramMap, paramMap);
runStatus = ExpressionJobConstants.RUNSTATUS_SUCCESS;
logStatus = ExpressionJobConstants.LOGSTATUS_SUCCESS;
} catch (ServiceException se) {
faultMsg = se.getMessage().toString();
runStatus = ExpressionJobConstants.RUNSTATUS_FAULT;
logStatus = ExpressionJobConstants.LOGSTATUS_FAULT;
logger.error(se.getMessage().toString());
} catch (Exception e) {
faultMsg = e.getMessage().toString();
if (e.getMessage() == null) {
faultMsg = e.toString();
} else {
faultMsg = e.getMessage().toString();
}
runStatus = ExpressionJobConstants.RUNSTATUS_FAULT;
logStatus = ExpressionJobConstants.LOGSTATUS_FAULT;
logger.error(faultMsg);
} finally {
if (faultMsg.length() > 2000) {
faultMsg = faultMsg.substring(0, 2000);
}
jobObj.getSysExprJob().setRunStatus(runStatus);
jobObj.getSysExprJobLog().setFaultMsg(faultMsg);
jobObj.getSysExprJobLog().setLogStatus(logStatus);
jobObj.getSysExprJobLog().setId(jobObj.getSysExprJob().getId());
jobObj.getSysExprJobLog().setBeginDatetime(beginDatetime);
jobObj.getSysExprJobLog().setEndDatetime(new Date());
sysExprJobService.updateObject(this.jobObj.getSysExprJob());
DefaultResult<SysExprJobLogVO> jobLogResult = sysExprJobLogService.saveObject(jobObj.getSysExprJobLog());
if (jobLogResult.getValue() != null) {
jobObj.setSysExprJobLog(jobLogResult.getValue());
}
this.sendMail();
logger.info("[Expression-Job] (End) ID: " + this.jobObj.getSysExprJob().getId() + " , NAME: " + this.jobObj.getSysExprJob().getName());
}
return this.jobObj;
}
Aggregations