package org.jeecg.modules.mdc.job;
|
|
import lombok.extern.slf4j.Slf4j;
|
import org.jeecg.common.util.DateUtils;
|
import org.jeecg.modules.mdc.service.IEquipmentService;
|
import org.jeecg.modules.mdc.util.CxfClientUtil;
|
import org.jeecg.modules.mdc.util.ThrowableUtil;
|
import org.jeecg.modules.mdc.util.XmlUtil;
|
import org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate;
|
import org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRateList;
|
import org.jeecg.modules.quartz.entity.QuartzJob;
|
import org.jeecg.modules.quartz.entity.SysQuartzLog;
|
import org.jeecg.modules.quartz.service.IQuartzJobService;
|
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
|
import org.quartz.*;
|
import org.springframework.beans.factory.annotation.Value;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @author Lius
|
* @date 2024/6/11 16:17
|
*/
|
@PersistJobDataAfterExecution
|
@DisallowConcurrentExecution
|
@Slf4j
|
public class WebServiceUtilizationRateJob implements Job {
|
|
/**
|
* 地址
|
*/
|
|
@Value("${webservice.url}")
|
private String url;
|
|
/**
|
* namespace
|
*/
|
@Value("${webservice.namespace}")
|
private String namespace;
|
|
/**
|
* 方法
|
*/
|
@Value("${webservice.rateMethod}")
|
private String method;
|
@Resource
|
private IQuartzJobService quartzJobService;
|
|
@Resource
|
private ISysQuartzLogService sysQuartzLogService;
|
|
@Resource
|
private IEquipmentService equipmentService;
|
|
@Override
|
public void execute(JobExecutionContext context) throws JobExecutionException {
|
SysQuartzLog quartzLog = new SysQuartzLog();
|
quartzLog.setCreateTime(new Date());
|
List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
|
if (byJobClassName != null && !byJobClassName.isEmpty()) {
|
quartzLog.setJobId(byJobClassName.get(0).getId());
|
}
|
log.info("WebService上报设备利用率到二级综合管控平台任务 WebServiceUtilizationRateJob start! 时间:" + DateUtils.now());
|
long startTime = System.currentTimeMillis();
|
try {
|
List<WsEquipmentUtilizationRate> equipmentRateList = equipmentService.selectEquipmentRate();
|
WsEquipmentUtilizationRateList wsEquipmentUtilizationRateList = new WsEquipmentUtilizationRateList();
|
List<WsEquipmentUtilizationRate> list = new ArrayList<>();
|
if (equipmentRateList != null && !equipmentRateList.isEmpty()) {
|
for (WsEquipmentUtilizationRate wsEquipmentUtilizationRate : equipmentRateList) {
|
list.add(wsEquipmentUtilizationRate);
|
wsEquipmentUtilizationRateList.setList(list);
|
String s = XmlUtil.convertToXml(wsEquipmentUtilizationRateList);
|
list.clear();
|
log.info("上报利用率数据 ===== " + s);
|
String result = CxfClientUtil.invokeService(url, s, namespace, method);
|
log.info("上报利用率结果 ===== " + result);
|
}
|
}
|
quartzLog.setIsSuccess(0);
|
} catch (Exception e) {
|
quartzLog.setIsSuccess(-1);
|
quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
|
}
|
long endTime = System.currentTimeMillis();
|
quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
|
sysQuartzLogService.save(quartzLog);
|
}
|
}
|