|
@@ -1,6 +1,5 @@
|
|
|
package com.persagy.ibms.data.sdk.util;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
@@ -16,7 +15,7 @@ import com.persagy.ibms.core.util.RepositoryBase;
|
|
|
|
|
|
public class RepositoryImpl extends RepositoryBase {
|
|
|
public Map<String, JSONObject> general_queryMap;
|
|
|
- public RepositoryProject RepositoryBase;
|
|
|
+ public RepositoryProject RepositoryProject;
|
|
|
|
|
|
// to do lirong
|
|
|
// 报警配置数据
|
|
@@ -68,12 +67,18 @@ public class RepositoryImpl extends RepositoryBase {
|
|
|
public SceneDataSet InfoPointListArray = new SceneDataSet(false);
|
|
|
public SceneDataSet InfoPointRelationArray = new SceneDataSet(false);
|
|
|
|
|
|
+ public RepositoryImpl(RepositoryProject RepositoryProject, boolean use_thread, boolean enable_factor, int thread_count,
|
|
|
+ long interval_between_compute) {
|
|
|
+ super(use_thread, enable_factor, thread_count, interval_between_compute);
|
|
|
+ this.RepositoryProject = RepositoryProject;
|
|
|
+ }
|
|
|
+
|
|
|
public ConcurrentHashMap<SceneDataValue, String> sdv2point() {
|
|
|
- return RepositoryBase.sdv2point;
|
|
|
+ return RepositoryProject.sdv2point;
|
|
|
}
|
|
|
|
|
|
public ConcurrentHashMap<SceneDataValue, String> sdv2set() {
|
|
|
- return RepositoryBase.sdv2set;
|
|
|
+ return RepositoryProject.sdv2set;
|
|
|
}
|
|
|
|
|
|
public SceneDataSet ParseSource(JSONObject descSet, String Source) {
|
|
@@ -168,7 +173,7 @@ public class RepositoryImpl extends RepositoryBase {
|
|
|
} else if (Source.equals("ibms-alarm-type")) {
|
|
|
result = this.ZKTAlarmTypeArray;
|
|
|
} else if (Source.equals("alarm")) {
|
|
|
- result = this.RepositoryBase.alarmArray;
|
|
|
+ result = this.RepositoryProject.alarmArray;
|
|
|
} else if (Source.equals("info-point-list")) {
|
|
|
result = this.InfoPointListArray;
|
|
|
} else if (Source.equals("info-point-relation")) {
|
|
@@ -236,23 +241,31 @@ public class RepositoryImpl extends RepositoryBase {
|
|
|
this.sdv2Children.clear();
|
|
|
}
|
|
|
|
|
|
- public void addWaitCompute(String point) {
|
|
|
- List<ObjectInfo> ObjectInfoList = this.point2ObjectInfoList.get(point);
|
|
|
- for (ObjectInfo ObjectInfo : ObjectInfoList) {
|
|
|
- SceneDataValue sdv = ObjectInfo.obj.get(ObjectInfo.infoCode);
|
|
|
- this.addWaitCompute(sdv);
|
|
|
+ public void recomputeIOT() {
|
|
|
+ // 加入计算队列
|
|
|
+ if (this.enable_factor) {
|
|
|
+ for (String point : RepositoryContainer.RepositoryBase.point2sdv.keySet()) {
|
|
|
+ SceneDataValue sdv = RepositoryContainer.RepositoryBase.point2sdv.get(point);
|
|
|
+ if (sdv.value_prim.value != null) {
|
|
|
+ this.addWaitCompute(point);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (String point : RepositoryContainer.RepositoryBase.set2sdv.keySet()) {
|
|
|
+ SceneDataValue sdv = RepositoryContainer.RepositoryBase.set2sdv.get(point);
|
|
|
+ if (sdv.value_prim.value != null) {
|
|
|
+ this.addWaitCompute(point);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void addWaitCompute(SceneDataValue sdv) {
|
|
|
- try {
|
|
|
- List<SceneDataValue> sdvAffectList = new ArrayList<SceneDataValue>();
|
|
|
- this.dependency.get_after(this, sdv, sdvAffectList);
|
|
|
- for (SceneDataValue sdvAffect : sdvAffectList) {
|
|
|
- this.WaitCompute.offer(sdvAffect);
|
|
|
+ public void addWaitCompute(String point) {
|
|
|
+ if (this.point2ObjectInfoList.containsKey(point)) {
|
|
|
+ List<ObjectInfo> ObjectInfoList = this.point2ObjectInfoList.get(point);
|
|
|
+ for (ObjectInfo ObjectInfo : ObjectInfoList) {
|
|
|
+ SceneDataValue sdv = ObjectInfo.obj.get(ObjectInfo.infoCode);
|
|
|
+ this.addWaitCompute(sdv);
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
}
|