|
|
@@ -36,28 +36,32 @@ public class WarnPestService {
|
|
|
//单个配置单个设备的处理逻辑,外层需要遍历
|
|
|
List<IotWarnconfigCbdInfoVo> iotWarnconfigCbdInfoVoList = iotWarnBussinessService.selectIotWarnconfigCbdInfoList();
|
|
|
for (IotWarnconfigCbdInfoVo iotWarnconfigCbdInfoVo : iotWarnconfigCbdInfoVoList) {
|
|
|
- IotDevice iotDevice = iotWarnconfigCbdInfoVo.getIotDevice();
|
|
|
- String devBid = iotDevice.getDevBid();
|
|
|
- List<IotWarnindicator> iotWarnindicatorList = iotWarnconfigCbdInfoVo.getIotWarnindicatorList();
|
|
|
- IotWarnconfig iotWarnconfig = new IotWarnconfig();
|
|
|
- BeanUtils.copyProperties(iotWarnconfigCbdInfoVo, iotWarnconfig);
|
|
|
-
|
|
|
- IotWarnindicator pestByTypeWarnindicator = new IotWarnindicator();
|
|
|
- IotWarnindicator pestByCountWarnindicator = new IotWarnindicator();
|
|
|
- IotWarnindicator designatePestWarnindicator = new IotWarnindicator();
|
|
|
- for(IotWarnindicator iotWarnindicator : iotWarnindicatorList){
|
|
|
- BeanUtils.copyProperties(iotDevice, iotWarnindicator);
|
|
|
-
|
|
|
- if("pestType".equals(iotWarnindicator.getWiCode())){
|
|
|
- BeanUtils.copyProperties(iotWarnindicator, pestByTypeWarnindicator);
|
|
|
- }else if("pestNum".equals(iotWarnindicator.getWiCode())){
|
|
|
- BeanUtils.copyProperties(iotWarnindicator, pestByCountWarnindicator);
|
|
|
- }else if("pestDetail".equals(iotWarnindicator.getWiCode())){
|
|
|
- BeanUtils.copyProperties(iotWarnindicator, designatePestWarnindicator);
|
|
|
+ try {
|
|
|
+ IotDevice iotDevice = iotWarnconfigCbdInfoVo.getIotDevice();
|
|
|
+ String devBid = iotDevice.getDevBid();
|
|
|
+ List<IotWarnindicator> iotWarnindicatorList = iotWarnconfigCbdInfoVo.getIotWarnindicatorList();
|
|
|
+ IotWarnconfig iotWarnconfig = new IotWarnconfig();
|
|
|
+ BeanUtils.copyProperties(iotWarnconfigCbdInfoVo, iotWarnconfig);
|
|
|
+
|
|
|
+ IotWarnindicator pestByTypeWarnindicator = new IotWarnindicator();
|
|
|
+ IotWarnindicator pestByCountWarnindicator = new IotWarnindicator();
|
|
|
+ IotWarnindicator designatePestWarnindicator = new IotWarnindicator();
|
|
|
+ for (IotWarnindicator iotWarnindicator : iotWarnindicatorList) {
|
|
|
+ BeanUtils.copyProperties(iotDevice, iotWarnindicator);
|
|
|
+
|
|
|
+ if ("pestType".equals(iotWarnindicator.getWiCode())) {
|
|
|
+ BeanUtils.copyProperties(iotWarnindicator, pestByTypeWarnindicator);
|
|
|
+ } else if ("pestNum".equals(iotWarnindicator.getWiCode())) {
|
|
|
+ BeanUtils.copyProperties(iotWarnindicator, pestByCountWarnindicator);
|
|
|
+ } else if ("pestDetail".equals(iotWarnindicator.getWiCode())) {
|
|
|
+ BeanUtils.copyProperties(iotWarnindicator, designatePestWarnindicator);
|
|
|
+ }
|
|
|
}
|
|
|
+ //底层调用:统一处理一个虫情设备的三个要素
|
|
|
+ processPestIotWarnindicators(devBid, iotWarnconfig, pestByTypeWarnindicator, pestByCountWarnindicator, designatePestWarnindicator);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("{}", e);
|
|
|
}
|
|
|
- //底层调用:统一处理一个虫情设备的三个要素
|
|
|
- processPestIotWarnindicators(devBid, iotWarnconfig, pestByTypeWarnindicator, pestByCountWarnindicator, designatePestWarnindicator);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -155,14 +159,20 @@ public class WarnPestService {
|
|
|
*/
|
|
|
private void handlerAllWarnLog(String devBid, IotWarnconfig iotWarnconfig, WarnStatusDto pestByType, WarnStatusDto pestByCount, WarnStatusDto designatePest) {
|
|
|
if (StringUtils.isEmpty(devBid)) {
|
|
|
- log.error("【设备预警】病虫害:设备id 不可为空");
|
|
|
+ log.error("【设备预警】病虫害:设备id 不可为空. 设备ID: {}, 配置ID: {}", devBid, iotWarnconfig.getWcBid());
|
|
|
throw new BizException(ErrorCode.FAILURE.getCode(), "病虫害:设备id 不可为空");
|
|
|
}
|
|
|
+ log.info("开始处理设备ID为 {}, 配置ID为 {} 的预警信息", devBid, iotWarnconfig.getWcBid());
|
|
|
+ log.info("开始处理设备ID为 {}, 配置ID为 {} 的预警信息:pestByType: {}", iotWarnconfig.getWcBid(), devBid, pestByType);
|
|
|
+ log.info("开始处理设备ID为 {}, 配置ID为 {} 的预警信息:pestByCount: {}", iotWarnconfig.getWcBid(), devBid, pestByCount);
|
|
|
+ log.info("开始处理设备ID为 {}, 配置ID为 {} 的预警信息:designatePest: {}", devBid, iotWarnconfig.getWcBid(), designatePest);
|
|
|
+
|
|
|
String pestByTypeMessage = null;
|
|
|
String pestByCountMessage = null;
|
|
|
String designatePestMessage = null;
|
|
|
boolean isWarn = false;
|
|
|
- //构建消息
|
|
|
+
|
|
|
+ // 构建消息
|
|
|
if (pestByType != null && pestByType.isWarn()) {
|
|
|
pestByTypeMessage = WarnMessageBuilderUtil.buildWarningMessage(
|
|
|
pestByType.getDevType(),
|
|
|
@@ -173,9 +183,10 @@ public class WarnPestService {
|
|
|
pestByType.getOpt(),
|
|
|
pestByType.getIndicatorValue()
|
|
|
);
|
|
|
+ log.info("根据类型生成警告消息: {}. 设备ID: {}, 配置ID: {}", pestByTypeMessage, devBid, iotWarnconfig.getWcBid());
|
|
|
isWarn = true;
|
|
|
}
|
|
|
- //构建消息
|
|
|
+
|
|
|
if (pestByCount != null && pestByCount.isWarn()) {
|
|
|
pestByCountMessage = WarnMessageBuilderUtil.buildWarningMessage(
|
|
|
pestByCount.getDevType(),
|
|
|
@@ -186,25 +197,27 @@ public class WarnPestService {
|
|
|
pestByCount.getOpt(),
|
|
|
pestByCount.getIndicatorValue()
|
|
|
);
|
|
|
+ log.info("根据数量生成警告消息: {}. 设备ID: {}, 配置ID: {}", pestByCountMessage, devBid, iotWarnconfig.getWcBid());
|
|
|
isWarn = true;
|
|
|
}
|
|
|
- //构建消息
|
|
|
+
|
|
|
if (designatePest != null && designatePest.isWarn()) {
|
|
|
designatePestMessage = WarnMessageBuilderUtil.buildWarningMessage(
|
|
|
- pestByType.getDevType(),
|
|
|
- pestByType.getDevCode(),
|
|
|
- pestByType.getName(),
|
|
|
- pestByType.getValue(),
|
|
|
- pestByType.getUnit(),
|
|
|
- pestByType.getOpt(),
|
|
|
- pestByType.getIndicatorValue()
|
|
|
+ designatePest.getDevType(),
|
|
|
+ designatePest.getDevCode(),
|
|
|
+ designatePest.getName(),
|
|
|
+ designatePest.getValue(),
|
|
|
+ designatePest.getUnit(),
|
|
|
+ designatePest.getOpt(),
|
|
|
+ designatePest.getIndicatorValue()
|
|
|
);
|
|
|
+ log.info("针对指定病虫害生成警告消息: {}. 设备ID: {}, 配置ID: {}", designatePestMessage, devBid, iotWarnconfig.getWcBid());
|
|
|
isWarn = true;
|
|
|
}
|
|
|
|
|
|
StringBuffer buffer = new StringBuffer();
|
|
|
if (pestByTypeMessage != null) {
|
|
|
- buffer.append(buffer);
|
|
|
+ buffer.append(pestByTypeMessage);
|
|
|
}
|
|
|
if (pestByCountMessage != null) {
|
|
|
buffer.append(pestByCountMessage);
|
|
|
@@ -212,20 +225,24 @@ public class WarnPestService {
|
|
|
if (designatePestMessage != null) {
|
|
|
buffer.append(designatePestMessage);
|
|
|
}
|
|
|
- //构建发送消息的参数
|
|
|
+
|
|
|
+ // 构建发送消息的参数
|
|
|
WarnResult warnResult = new WarnResult();
|
|
|
- warnResult.setMessageId(warnResult.getUUId());
|
|
|
+ warnResult.setMessageId(warnResult.getUUId()); // 确保WarnResult中有getUUId方法
|
|
|
warnResult.setDevId(devBid);
|
|
|
warnResult.setTid(iotWarnconfig.getTid());
|
|
|
warnResult.setConfigId(iotWarnconfig.getWcBid());
|
|
|
warnResult.setReportData("-");
|
|
|
- warnResult.setTargetReCount(iotWarnconfig.getWcRepeatnum());
|
|
|
+ warnResult.setTargetReCount(iotWarnconfig.getWcRepeatnum() == null ? 0 : iotWarnconfig.getWcRepeatnum());
|
|
|
warnResult.setDevtypeBid(iotWarnconfig.getDevtypeBid());
|
|
|
warnResult.setConfig(iotWarnconfig);
|
|
|
warnResult.setTriggered(isWarn);
|
|
|
warnResult.setMessage(buffer.toString());
|
|
|
- //发送告警
|
|
|
+
|
|
|
+ log.info("准备发送告警信息: {}. 设备ID: {}, 配置ID: {}", warnResult.getMessage(), devBid, iotWarnconfig.getWcBid());
|
|
|
+ // 发送告警
|
|
|
reCountService.handlerMessage(warnResult);
|
|
|
+ log.info("告警信息已发送完成. 设备ID: {}, 配置ID: {}", devBid, iotWarnconfig.getWcBid());
|
|
|
}
|
|
|
|
|
|
|