package cn.gistack.job.executor.jobhandler;
|
|
import cn.gistack.job.executor.thread.MyThread;
|
import cn.gistack.nky.fegin.INkyClient;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
import com.xxl.job.core.log.XxlJobLogger;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.tool.utils.DateUtil;
|
import org.springframework.stereotype.Component;
|
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
/**
|
* 南科院预测数据定时器
|
*/
|
@Component
|
@AllArgsConstructor
|
public class NkyXxlJob {
|
//type,1:渗压,2:渗流,3:X位移,4:Y位移,5:Z位移
|
private static final String SY = "1";
|
private static final String SL = "2";
|
private static final String X = "3";
|
private static final String Y = "4";
|
private static final String Z = "5";
|
|
private final INkyClient nkyClient;
|
|
/**
|
* 南科院Arima请求预测
|
*
|
* @param param
|
* @return
|
* @throws Exception
|
*/
|
@XxlJob("predictNkyDataJobHandler")
|
public ReturnT<String> predictNkyDataJobHandler(String param) {
|
XxlJobLogger.log("开始ArimaPredict预测...");
|
arimaPredict();
|
XxlJobLogger.log("ArimaPredict预测结束...");
|
|
XxlJobLogger.log("结束任务...");
|
return ReturnT.SUCCESS;
|
}
|
|
/**
|
* 南科院Hst请求预测
|
*
|
* @param param
|
* @return
|
* @throws Exception
|
*/
|
@XxlJob("predictNkyHstDataJobHandler")
|
public ReturnT<String> predictNkyHstDataJobHandler(String param) {
|
|
XxlJobLogger.log("开始Hst预测...");
|
hstPredict();
|
XxlJobLogger.log("Hst预测结束...");
|
XxlJobLogger.log("结束任务...");
|
return ReturnT.SUCCESS;
|
}
|
|
/**
|
* 南科院Hst请求预测结果
|
*
|
* @param param
|
* @return
|
* @throws Exception
|
*/
|
@XxlJob("queryNkyHstDataJobHandler")
|
public ReturnT<String> queryNkyHstDataJobHandler(String param) {
|
XxlJobLogger.log("开始Hst预测结果请求");
|
hstQuery();
|
XxlJobLogger.log("Hst预测结果请求结束");
|
XxlJobLogger.log("结束任务...");
|
return ReturnT.SUCCESS;
|
}
|
|
/**
|
* 南科院Arima请求预测结果(渗压)
|
*
|
* @param param
|
* @return
|
* @throws Exception
|
*/
|
@XxlJob("queryNkyDataJobHandler")
|
public ReturnT<String> queryNkyDataJobHandler(String param) {
|
XxlJobLogger.log("开始预测时间:" + DateUtil.now().toString());
|
nkyClient.arimaQueryData(SY);
|
XxlJobLogger.log("预测结束时间:" + DateUtil.now().toString());
|
return ReturnT.SUCCESS;
|
}
|
|
/**
|
* 南科院Arima请求预测结果(渗流)
|
*
|
* @param param
|
* @return
|
* @throws Exception
|
*/
|
@XxlJob("queryNkyDataSlJobHandler")
|
public ReturnT<String> queryNkyDataSlJobHandler(String param) {
|
XxlJobLogger.log("开始预测时间:" + DateUtil.now().toString());
|
nkyClient.arimaQueryData(SL);
|
XxlJobLogger.log("预测结束时间:" + DateUtil.now().toString());
|
return ReturnT.SUCCESS;
|
}
|
|
/**
|
* 南科院Arima请求预测结果(位移)
|
*
|
* @param param
|
* @return
|
* @throws Exception
|
*/
|
@XxlJob("queryNkyDataWyJobHandler")
|
public ReturnT<String> queryNkyDataWyJobHandler(String param) {
|
XxlJobLogger.log("开始预测时间:" + DateUtil.now().toString());
|
nkyClient.arimaQueryData(X);
|
nkyClient.arimaQueryData(Y);
|
nkyClient.arimaQueryData(Z);
|
XxlJobLogger.log("预测结束时间:" + DateUtil.now().toString());
|
return ReturnT.SUCCESS;
|
}
|
|
public void arimaPredict() {
|
XxlJobLogger.log("渗压预测开始");
|
nkyClient.arimaPredictData(SY);
|
XxlJobLogger.log("渗流预测开始");
|
nkyClient.arimaPredictData(SL);
|
XxlJobLogger.log("位移预测开始");
|
nkyClient.arimaPredictData(X);
|
|
}
|
|
public void arimaQuery() {
|
nkyClient.arimaQueryData(SY);
|
nkyClient.arimaQueryData(SL);
|
nkyClient.arimaQueryData(X);
|
nkyClient.arimaQueryData(Y);
|
nkyClient.arimaQueryData(Z);
|
}
|
|
/**
|
* hst预测
|
*/
|
public void hstPredict() {
|
|
try {
|
MyThread sl = new MyThread(nkyClient,SL);
|
MyThread wy = new MyThread(nkyClient,X);
|
MyThread sy = new MyThread(nkyClient,SY);
|
|
sl.start();
|
wy.start();
|
sy.start();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
// XxlJobLogger.log("渗流预测开始");
|
// nkyClient.hstPredictData(SL);
|
// XxlJobLogger.log("位移预测开始");
|
// nkyClient.hstPredictData(X);
|
// XxlJobLogger.log("渗压预测开始");
|
// nkyClient.hstPredictData(SY);
|
|
|
}
|
|
public void hstQuery() {
|
nkyClient.hstQueryData(SL);
|
nkyClient.hstQueryData(X);
|
nkyClient.hstQueryData(Y);
|
nkyClient.hstQueryData(Z);
|
nkyClient.hstQueryData(SY);
|
}
|
|
/**
|
* 南科院按库请求数据接口
|
*
|
* @param param
|
* @return
|
*/
|
@XxlJob("batchDataJobHandler")
|
public ReturnT<String> batchDataJobHandler(String param) {
|
XxlJobLogger.log("按库请求开始");
|
|
nkyClient.batchData(SY);
|
nkyClient.batchData(SL);
|
nkyClient.batchData(X);
|
nkyClient.batchData(Y);
|
nkyClient.batchData(Z);
|
|
XxlJobLogger.log("按库请求结束");
|
|
return ReturnT.SUCCESS;
|
}
|
|
/**
|
* 南科院按库请求数据接口
|
*
|
* @param param
|
* @return
|
*/
|
@XxlJob("alarmGetJobHandler")
|
public ReturnT<String> alarmGetJobHandler(String param) {
|
XxlJobLogger.log("判定异常开始");
|
|
nkyClient.alarmGetData(SY);
|
|
XxlJobLogger.log("判定异常结束");
|
|
return ReturnT.SUCCESS;
|
}
|
|
|
|
|
@XxlJob("initAlgorithmHandler")
|
public ReturnT<String> initAlgorithmHandler(String param) {
|
XxlJobLogger.log("定时器执行时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(DateUtil.now()));
|
|
JSONObject jsonParam = JSON.parseObject(param);
|
List<String> resList = new ArrayList<>();
|
if (jsonParam != null){
|
String resGuids = jsonParam.getString("resGuids");
|
resList = Arrays.asList(resGuids.split(","));
|
}
|
|
nkyClient.initAlgorithm(resList);
|
|
|
XxlJobLogger.log("定时器执行结束时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(DateUtil.now()));
|
|
return ReturnT.SUCCESS;
|
}
|
|
|
|
}
|