Kaynağa Gözat

调整告警规则编辑接口

liuyaowen 9 ay önce
ebeveyn
işleme
417e75fcdc

+ 13 - 5
src/main/java/com/yunfeiyun/agmp/iotm/web/service/impl/IotWarnconfigServiceImpl.java

@@ -202,14 +202,13 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
         List<IotWarnobject> oldWarnObjectList = iotWarnobjectMapper.selectIotWarnobjectList(iotWarnobjectQuery);
         // 对比两个集合,获取不同的内容
         Collection<IotWarnobject> differ = CollectionUtils.disjunction(oldWarnObjectList,iotWarnconfigEditReqVo.getIotWarnobjectList());
-        // 老数据中存在,新数据中不存在,代表被删除的数据
-        Collection<IotWarnobject> deleteData = CollectionUtils.subtract(oldWarnObjectList,differ);
-        String[] woBids = deleteData.stream().map(IotWarnobject::getWoBid).toArray(String[]::new);
-        if(woBids.length>0){
+        Collection<IotWarnobject> deleteData = getDifferObjects(oldWarnObjectList,differ);
+        if(!deleteData.isEmpty()){
+            String[] woBids = deleteData.stream().map(IotWarnobject::getWoBid).toArray(String[]::new);
             iotWarnobjectMapper.deleteIotWarnobjectByWoBids(woBids, SecurityUtils.getTid());
         }
         // 老数据中不存在,新数据中存在,代表新增的数据
-        Collection<IotWarnobject> addData = CollectionUtils.subtract(iotWarnconfigEditReqVo.getIotWarnobjectList(),differ);
+        Collection<IotWarnobject> addData = getDifferObjects(iotWarnconfigEditReqVo.getIotWarnobjectList(),differ);
         for(IotWarnobject addWarnObject : addData){
             addWarnObject.setTid(SecurityUtils.getTid());
             addWarnObject.setWcBid(iotWarnconfigEditReqVo.getWcBid());
@@ -334,4 +333,13 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
         }
         return result;
     }
+
+    private Collection<IotWarnobject> getDifferObjects(List<IotWarnobject> oldData,Collection<IotWarnobject> differData){
+        if(CollectionUtils.isEqualCollection(oldData,differData)){
+            // 如果旧数据与不同的数据相同,则说明数据被完全替换
+            return differData;
+        }
+        // 老数据中存在,新数据中不存在,代表被删除的数据
+        return CollectionUtils.subtract(oldData,differData);
+    }
 }