|
@@ -487,9 +487,6 @@ public class RWDAlarmUtil {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- if (existIndex != -1) {
|
|
|
- alarmList.value_array.set.remove(existIndex);
|
|
|
- }
|
|
|
// 从报警列表下删除
|
|
|
List<Integer> removeIndexList = new ArrayList<Integer>();
|
|
|
for (int index_alarm = 0; index_alarm < RepositoryContainer.RepositoryBase.alarmArray.set.size(); index_alarm++) {
|
|
@@ -498,15 +495,38 @@ public class RWDAlarmUtil {
|
|
|
removeIndexList.add(0, index_alarm);
|
|
|
}
|
|
|
}
|
|
|
- for (int removeIndex : removeIndexList) {
|
|
|
- RepositoryContainer.RepositoryBase.alarmArray.set.remove(removeIndex);
|
|
|
- }
|
|
|
|
|
|
- if (!treatState.equals("3")) {
|
|
|
- SceneDataObject sodInner = RWDUtil.object2sod(alarm);
|
|
|
- chixushijian(sdf, currentTime, sodInner);
|
|
|
- alarmList.value_array.set.add(sodInner);
|
|
|
- RepositoryContainer.RepositoryBase.alarmArray.set.add(sodInner);
|
|
|
+ if (treatState.equals("3")) {
|
|
|
+ if (existIndex != -1) {
|
|
|
+ alarmList.value_array.set.remove(existIndex);
|
|
|
+ }
|
|
|
+ for (int removeIndex : removeIndexList) {
|
|
|
+ RepositoryContainer.RepositoryBase.alarmArray.set.remove(removeIndex);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //只替换非空字段
|
|
|
+ SceneDataObject sdoAlarm = RWDUtil.object2sod(alarm);
|
|
|
+ chixushijian(sdf, currentTime, sdoAlarm);
|
|
|
+ if (existIndex != -1) {
|
|
|
+ SceneDataObject sdoInner = alarmList.value_array.set.get(existIndex);
|
|
|
+ for (String key : sdoAlarm.keySet()) {
|
|
|
+ SceneDataValue sdvInner = sdoAlarm.get(key);
|
|
|
+ if (sdvInner == null || sdvInner.value_prim == null || sdvInner.value_prim.value == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ sdoInner.put(key, sdoAlarm.get(key));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (int removeIndex : removeIndexList) {
|
|
|
+ SceneDataObject sdoInner = RepositoryContainer.RepositoryBase.alarmArray.set.get(removeIndex);
|
|
|
+ for (String key : sdoAlarm.keySet()) {
|
|
|
+ SceneDataValue sdvInner = sdoAlarm.get(key);
|
|
|
+ if (sdvInner == null || sdvInner.value_prim == null || sdvInner.value_prim.value == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ sdoInner.put(key, sdoAlarm.get(key));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
alarmCount.value_prim.value = alarmList.value_array.set.size();
|
|
|
}
|