use of com.netsteadfast.greenstep.vo.SysExprJobVO in project bamboobsc by billchen198318.
the class SystemExpressionJobUtils method getExpressionJobs.
public static List<ExpressionJobObj> getExpressionJobs() throws ServiceException, Exception {
int year = Integer.parseInt(SimpleUtils.getStrYMD(SimpleUtils.IS_YEAR));
int month = Integer.parseInt(SimpleUtils.getStrYMD(SimpleUtils.IS_MONTH));
String dayOfWeek = String.valueOf(SimpleUtils.getDayOfWeek(year, month));
String hour = String.valueOf(LocalDateTime.now().getHourOfDay());
String minute = String.valueOf(LocalDateTime.now().getMinuteOfHour());
List<ExpressionJobObj> jobObjList = new ArrayList<ExpressionJobObj>();
@SuppressWarnings("unchecked") ISysExprJobService<SysExprJobVO, TbSysExprJob, String> sysExprJobService = (ISysExprJobService<SysExprJobVO, TbSysExprJob, String>) AppContext.getBean("core.service.SysExprJobService");
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("system", Constants.getSystem());
paramMap.put("active", YesNo.YES);
List<SysExprJobVO> exprJobList = sysExprJobService.findListVOByParams(paramMap);
if (null == exprJobList || exprJobList.size() < 1) {
return jobObjList;
}
@SuppressWarnings("unchecked") ISysExpressionService<SysExpressionVO, TbSysExpression, String> sysExpressionService = (ISysExpressionService<SysExpressionVO, TbSysExpression, String>) AppContext.getBean("core.service.SysExpressionService");
for (SysExprJobVO exprJob : exprJobList) {
if (ExpressionJobConstants.RUNSTATUS_PROCESS_NOW.equals(exprJob.getRunStatus())) {
log.warn("[Expression-Job] Please check it, process now, Id: " + exprJob.getExprId() + " , name: " + exprJob.getName());
continue;
}
if (!isRunTime(exprJob, dayOfWeek, hour, minute)) {
continue;
}
ExpressionJobObj jobObj = new ExpressionJobObj();
jobObj.setSysExprJob(exprJob);
jobObj.setSysExprJobLog(new SysExprJobLogVO());
SysExpressionVO expr = new SysExpressionVO();
expr.setExprId(exprJob.getExprId());
DefaultResult<SysExpressionVO> exprResult = sysExpressionService.findByUK(expr);
if (exprResult.getValue() == null) {
log.error("[Expression-Job] Id: " + exprJob.getExprId() + " , data not found.");
log.error(exprResult.getSystemMessage().getValue());
continue;
}
expr = exprResult.getValue();
jobObj.setSysExpression(expr);
jobObjList.add(jobObj);
}
return jobObjList;
}
use of com.netsteadfast.greenstep.vo.SysExprJobVO 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;
}
use of com.netsteadfast.greenstep.vo.SysExprJobVO in project bamboobsc by billchen198318.
the class SystemExpressionJobSaveOrUpdateAction method manualExecute.
private void manualExecute() throws ControllerException, AuthorityException, ServiceException, Exception {
String exprJobOid = this.getFields().get("oid");
String accountId = super.getAccountId();
SysExprJobVO exprJob = new SysExprJobVO();
exprJob.setOid(exprJobOid);
DefaultResult<SysExprJobVO> result = this.sysExprJobService.findObjectByOid(exprJob);
if (result.getValue() == null) {
throw new ServiceException(result.getSystemMessage().getValue());
}
exprJob = result.getValue();
if (Constants.getMainSystem().equals(exprJob.getSystem())) {
// 是自己 CORE系統, 所以不用觸發遠端的服務
SystemExpressionJobUtils.executeJobForManual(exprJobOid);
return;
}
/*
SysExprJobLogVO jobLog = SystemExpressionJobUtils.executeJobForManualFromRestServiceUrl(
exprJob, accountId, this.getHttpServletRequest());
*/
SysExprJobLogVO jobLog = SystemExpressionJobUtils.executeJobForManualWebClient(exprJob, accountId, this.getHttpServletRequest());
if (null != jobLog && !StringUtils.isBlank(jobLog.getFaultMsg())) {
throw new ServiceException(jobLog.getFaultMsg());
}
}
use of com.netsteadfast.greenstep.vo.SysExprJobVO in project bamboobsc by billchen198318.
the class SystemExpressionJobSaveOrUpdateAction method delete.
private void delete() throws ControllerException, AuthorityException, ServiceException, Exception {
SysExprJobVO sysExprJob = new SysExprJobVO();
this.transformFields2ValueObject(sysExprJob, new String[] { "oid" });
DefaultResult<Boolean> result = this.systemExpressionLogicService.deleteJob(sysExprJob);
this.message = result.getSystemMessage().getValue();
if (result.getValue() != null && result.getValue()) {
this.success = IS_YES;
}
}
use of com.netsteadfast.greenstep.vo.SysExprJobVO in project bamboobsc by billchen198318.
the class SystemExpressionLogicServiceImpl method updateJob.
@ServiceMethodAuthority(type = { ServiceMethodType.UPDATE })
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = { RuntimeException.class, IOException.class, Exception.class })
@Override
public DefaultResult<SysExprJobVO> updateJob(SysExprJobVO exprJob, String systemOid, String expressionOid) throws ServiceException, Exception {
if (null == exprJob || StringUtils.isBlank(exprJob.getOid()) || StringUtils.isBlank(systemOid) || StringUtils.isBlank(expressionOid)) {
throw new ServiceException(SysMessageUtil.get(GreenStepSysMsgConstants.PARAMS_BLANK));
}
SysVO sys = new SysVO();
sys.setOid(systemOid);
DefaultResult<SysVO> sysResult = this.sysService.findObjectByOid(sys);
if (sysResult.getValue() == null) {
throw new ServiceException(sysResult.getSystemMessage().getValue());
}
sys = sysResult.getValue();
SysExpressionVO expression = new SysExpressionVO();
expression.setOid(expressionOid);
DefaultResult<SysExpressionVO> expressionResult = this.sysExpressionService.findObjectByOid(expression);
if (expressionResult.getValue() == null) {
throw new ServiceException(expressionResult.getSystemMessage().getValue());
}
expression = expressionResult.getValue();
DefaultResult<SysExprJobVO> oldResult = this.sysExprJobService.findObjectByOid(exprJob);
if (oldResult.getValue() == null) {
throw new ServiceException(oldResult.getSystemMessage().getValue());
}
exprJob.setId(oldResult.getValue().getId());
exprJob.setSystem(sys.getSysId());
exprJob.setExprId(expression.getExprId());
exprJob.setRunStatus(oldResult.getValue().getRunStatus());
if (super.isBlank(oldResult.getValue().getRunStatus())) {
exprJob.setRunStatus(ExpressionJobConstants.RUNSTATUS_FAULT);
logger.warn("Before runStatus flag is blank. Expression Job ID: " + oldResult.getValue().getId());
}
this.setStringValueMaxLength(exprJob, "description", MAX_DESCRIPTION_LENGTH);
return this.sysExprJobService.updateObject(exprJob);
}
Aggregations