|
|
@@ -3,7 +3,9 @@ package com.yunfeiyun.agmp.iotm.web.service.impl;
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.yunfeiyun.agmp.common.constant.ErrorCode;
|
|
|
+import com.yunfeiyun.agmp.common.enums.RedisCacheKey;
|
|
|
import com.yunfeiyun.agmp.common.exception.BizException;
|
|
|
+import com.yunfeiyun.agmp.common.framework.manager.RedisCacheManager;
|
|
|
import com.yunfeiyun.agmp.common.utils.DateUtils;
|
|
|
import com.yunfeiyun.agmp.common.utils.SecurityUtils;
|
|
|
import com.yunfeiyun.agmp.common.utils.StringUtils;
|
|
|
@@ -47,6 +49,8 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
|
|
|
private IotDeviceMapper iotDeviceMapper;
|
|
|
@Resource
|
|
|
private IotDeviceconfigMapper iotDeviceconfigMapper;
|
|
|
+ @Resource
|
|
|
+ private RedisCacheManager redisCacheManager;
|
|
|
|
|
|
/**
|
|
|
* 查询告警配置
|
|
|
@@ -204,9 +208,10 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
|
|
|
Collection<IotWarnobject> differ = CollectionUtils.disjunction(oldWarnObjectList,iotWarnconfigEditReqVo.getIotWarnobjectList());
|
|
|
// 老数据中存在,新数据中不存在,代表被删除的数据,即旧数据与differ的交集
|
|
|
Collection<IotWarnobject> deleteData = CollectionUtils.intersection(oldWarnObjectList,differ);
|
|
|
- if(!deleteData.isEmpty()){
|
|
|
- String[] woBids = deleteData.stream().map(IotWarnobject::getWoBid).toArray(String[]::new);
|
|
|
- iotWarnobjectMapper.deleteIotWarnobjectByWoBids(woBids, SecurityUtils.getTid());
|
|
|
+ for(IotWarnobject iotWarnobject :deleteData){
|
|
|
+ iotWarnobjectMapper.deleteIotWarnobjectByWoBid(iotWarnobject.getWoBid(), SecurityUtils.getTid());
|
|
|
+ // 清除告警对象的缓存
|
|
|
+ redisCacheManager.deleteObject(RedisCacheKey.IOT_WARN_RE_COUNTS, iotWarnconfigEditReqVo.getWcBid() + ":" + iotWarnobject.getDevBid());
|
|
|
}
|
|
|
// 老数据中不存在,新数据中存在,代表新增的数据,即入参与differ的交集
|
|
|
Collection<IotWarnobject> addData = CollectionUtils.intersection(iotWarnconfigEditReqVo.getIotWarnobjectList(),differ);
|
|
|
@@ -216,8 +221,15 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
|
|
|
addWarnObject.setWoBid(addWarnObject.getUUId());
|
|
|
iotWarnobjectMapper.insertIotWarnobject(addWarnObject);
|
|
|
}
|
|
|
+ // 考虑编辑设备的情况下,对应的规则可能出现调整的情况,
|
|
|
+ iotWarnindicatorMapper.deleteIotWarnindicatorByWcBid(iotWarnconfigEditReqVo.getWcBid(),SecurityUtils.getTid());
|
|
|
for(IotWarnindicator iotWarnindicator : iotWarnconfigEditReqVo.getIotWarnindicatorList()){
|
|
|
- iotWarnindicatorMapper.updateIotWarnindicator(iotWarnindicator);
|
|
|
+ iotWarnindicator.setWiBid(iotWarnindicator.getUUId());
|
|
|
+ iotWarnindicator.setWcBid(iotWarnconfigEditReqVo.getWcBid());
|
|
|
+ iotWarnindicator.setTid(SecurityUtils.getTid());
|
|
|
+ iotWarnindicator.setWiCreator(SecurityUtils.getTid());
|
|
|
+ iotWarnindicator.setWiCreateddate(DateUtils.dateTimeNow());
|
|
|
+ iotWarnindicatorMapper.insertIotWarnindicator(iotWarnindicator);
|
|
|
}
|
|
|
return iotWarnconfigMapper.updateIotWarnconfig(iotWarnconfigEditReqVo);
|
|
|
}
|