package com.fzzy.igds.io.notify;
|
|
import com.fzzy.igds.constant.GrainFrequence;
|
import com.fzzy.igds.constant.OrderRespEnum;
|
import com.fzzy.igds.domain.Depot;
|
import com.fzzy.igds.domain.DepotConf;
|
import com.fzzy.igds.domain.Grain;
|
import com.fzzy.igds.domain.WeatherInfo;
|
import com.fzzy.igds.io.order.ExeOrderService;
|
import com.fzzy.igds.request.ExeBaseRequest;
|
import com.fzzy.igds.service.GrainService;
|
import com.fzzy.igds.service.WeatherService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
|
@Slf4j
|
@Component
|
public class NotifyGrainInvokerImpl extends NotifyWebParent implements NotifyGrainInvoker {
|
|
@Resource
|
private GrainService grainService;
|
@Resource
|
private ExeOrderService exeRequestService;
|
@Resource
|
private WeatherService weatherService;
|
|
@Override
|
public String analysisSuccess(Grain grain, DepotConf depotConf, Depot depot, boolean isNotifyWeb, ExeBaseRequest exeRequest) {
|
grain = addWeatherInfo(grain);
|
try {
|
// 如果是一日多次
|
if (null == depotConf) {
|
grainService.saveOrUpdateGrain(grain, null);
|
} else {
|
if (depotConf.getGrainFreq().equals(
|
GrainFrequence.FREQ_01.getCode())) {
|
grainService.saveOrUpdateGrain(grain, null);
|
} else {
|
grainService.saveOrUpdateGrain(grain, null);
|
}
|
}
|
String notifyMsg = depot.getName() + " 粮情采集并解析成功,批次号=" + grain.getBatchId();
|
//完成
|
exeRequest.setExeMsg(notifyMsg);
|
exeRequestService.completeCache(exeRequest, false);
|
|
notifyWeb(depotConf.getCompanyId(), OrderRespEnum.MSG_SUCCESS, "grain", notifyMsg);
|
|
log.info(depot.getName() + "粮情解析成功:" + grain.getBatchId());
|
|
} catch (Exception e) {
|
String notifyMsg = depot.getName() + "-保存失败,请勿2分钟内重复采集";
|
//完成
|
exeRequest.setErrorMsg(notifyMsg);
|
exeRequestService.completeCache(exeRequest, false);
|
notifyWeb(depotConf.getCompanyId(), OrderRespEnum.MSG_ERROR, "grain", notifyMsg);
|
log.error(depot.getName() + "粮情解析保存失败:" + e);
|
}
|
return null;
|
}
|
|
@Override
|
public String analysisSuccess(Grain grain, Depot depot) {
|
grain = addWeatherInfo(grain);
|
|
try {
|
grainService.saveOrUpdateGrain(grain,null);
|
|
String notifyMsg = depot.getName() + " 收到推送粮情信息并解析成功,批次号=" + grain.getBatchId();
|
|
notifyWeb(grain.getCompanyId(), OrderRespEnum.MSG_SUCCESS, "grain", notifyMsg);
|
|
} catch (Exception e) {
|
String notifyMsg = depot.getName() + "-保存失败,请勿2分钟内重复采集";
|
this.notifyWeb(grain.getCompanyId(), OrderRespEnum.MSG_ERROR, "grain", notifyMsg);
|
|
log.error("粮情解析保存失败:" + e);
|
return notifyMsg;
|
}
|
return null;
|
}
|
|
@Override
|
public String analysisSuccess(Grain grain, Depot depot, ExeBaseRequest exeRequest) {
|
|
grain = addWeatherInfo(grain);
|
try {
|
grainService.saveOrUpdateGrain(grain,null);
|
|
String notifyMsg = exeRequest.getDepotName() + " 粮情采集并解析成功,批次号=" + grain.getBatchId();
|
|
//完成
|
exeRequest.setExeMsg(notifyMsg);
|
exeRequestService.completeCache(exeRequest, false);
|
|
} catch (Exception e) {
|
String notifyMsg = exeRequest.getDepotName() + "-保存失败,请勿2分钟内重复采集";
|
//完成
|
exeRequest.setErrorMsg(notifyMsg);
|
exeRequestService.completeCache(exeRequest, false);
|
return notifyMsg;
|
}
|
return null;
|
}
|
|
@Override
|
public String analysisSuccess(Grain grain, Depot depot, ExeBaseRequest exeRequest, DepotConf depotConf) {
|
|
grain = addWeatherInfo(grain);
|
try {
|
grainService.saveOrUpdateGrain(grain,null);
|
|
String notifyMsg = exeRequest.getDepotName() + " 粮情采集并解析成功,批次号=" + grain.getBatchId();
|
|
//完成
|
exeRequest.setExeMsg(notifyMsg);
|
exeRequestService.completeCache(exeRequest, false);
|
|
notifyWeb(depotConf.getCompanyId(), OrderRespEnum.MSG_SUCCESS, "grain", notifyMsg);
|
log.info(depot.getName() + "粮情解析成功:" + grain.getBatchId());
|
} catch (Exception e) {
|
String notifyMsg = exeRequest.getDepotName() + "-保存失败,请勿2分钟内重复采集";
|
|
//完成
|
exeRequest.setErrorMsg(notifyMsg);
|
exeRequestService.completeCache(exeRequest, false);
|
|
notifyWeb(depotConf.getCompanyId(), OrderRespEnum.MSG_ERROR, "grain", notifyMsg);
|
|
log.error(depot.getName() + "粮情解析保存失败:" + e);
|
return notifyMsg;
|
}
|
return null;
|
}
|
|
|
// 从缓存中获取当前的外温度外部湿度
|
private Grain addWeatherInfo(Grain grain) {
|
if(grain.getHumidityOut() != null && grain.getTempOut() != null){
|
return grain;
|
}
|
WeatherInfo weatherInfo = weatherService.getCacheWeather(grain.getCompanyId());
|
Double tOut = -100.0, hOut = -100.0;
|
if (null != weatherInfo) {
|
if (weatherInfo.getTemp().indexOf("℃") > 0) {
|
weatherInfo.setTemp(weatherInfo.getTemp().replace("℃", ""));
|
}
|
if (weatherInfo.getHumidity().indexOf("%") > 0) {
|
weatherInfo.setHumidity(weatherInfo.getHumidity().replace("%",
|
""));
|
}
|
tOut = Double.valueOf(weatherInfo.getTemp());
|
hOut = Double.valueOf(weatherInfo.getHumidity());
|
grain.setWeather(weatherInfo.getWeather());
|
}
|
if(grain.getHumidityOut() == null || grain.getHumidityOut() == 0.0){
|
grain.setHumidityOut(hOut);
|
}
|
if(grain.getTempOut() == null || grain.getTempOut() == 0.0){
|
grain.setTempOut(tOut);
|
}
|
return grain;
|
}
|
|
}
|