|
@@ -54,7 +54,7 @@ public class EbaSystemServiceImpl implements EbaSystemService {
|
|
|
@Value("${comm.getProjectList}")
|
|
|
private String getProjectList;
|
|
|
|
|
|
- private final long SECOND_TIME = 5L;
|
|
|
+ private final long SECOND_TIME = 3L;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -69,9 +69,7 @@ public class EbaSystemServiceImpl implements EbaSystemService {
|
|
|
initDeviceParamList();
|
|
|
initDeviceAlarmTypeList();
|
|
|
initFireDeviceTypeList();
|
|
|
- initRealDataDeviceList();
|
|
|
- initMobjectList();
|
|
|
- initIotList();
|
|
|
+ initThreeBrothers();
|
|
|
log.info("EBA数据全部初始化完毕");
|
|
|
}
|
|
|
|
|
@@ -225,97 +223,105 @@ public class EbaSystemServiceImpl implements EbaSystemService {
|
|
|
* 初始化所有项目实时device信息到mongo
|
|
|
*/
|
|
|
@Override
|
|
|
- public void initRealDataDeviceList() {
|
|
|
- Set<String> keys = EbaUtils.project.keySet();
|
|
|
+ public String initRealDataDeviceList(String key) {
|
|
|
JSONObject data2 = new JSONObject();
|
|
|
- keys.forEach(key -> ScheduledUtils.start(() -> {
|
|
|
- String param = JSON.toJSONString(Levi.by("projectId", Integer.parseInt(key)));
|
|
|
- String str = HttpRequest.post(EbaSystemConstants.getMobjectRealDataByProjectIdList)
|
|
|
- .header("token", EbaUtils.token)
|
|
|
- .body(param)
|
|
|
- .execute().body();
|
|
|
- if (EbaUtils.isSuccess(str)) {
|
|
|
- // 存入原始数据用于统计
|
|
|
- Query query1 = new Query();
|
|
|
- query1.addCriteria(Criteria.where("_id").is(key + "_" + LocalDateTime.now().getYear() + "_" + LocalDateTime.now().getMonthValue()));
|
|
|
- Update update1 = new Update();
|
|
|
- List<Map> map = LeviUtils.getJsonFieldMany(str, "data.realtimeDataList", Map.class);
|
|
|
- map.removeAll(Collections.singleton(null));
|
|
|
- update1.set("data", EbaUtils.setDataField(map, key, "realDataDeviceList", false));
|
|
|
- mongoTemplate.upsert(query1, update1, "realDataDeviceList");
|
|
|
- // 存入当前最新数据方便查询
|
|
|
- JSONObject data1 = new JSONObject();
|
|
|
- map.forEach(x -> data1.put(x.get("deviceId").toString() + "_" + x.get("paramId").toString(), x.get("paramValue").toString()));
|
|
|
- data2.put(key, data1);
|
|
|
- }
|
|
|
- return str;
|
|
|
- }, SECOND_TIME));
|
|
|
+ String param = JSON.toJSONString(Levi.by("projectId", Integer.parseInt(key)));
|
|
|
+ String str = HttpRequest.post(EbaSystemConstants.getMobjectRealDataByProjectIdList)
|
|
|
+ .header("token", EbaUtils.token)
|
|
|
+ .body(param)
|
|
|
+ .execute().body();
|
|
|
+ if (EbaUtils.isSuccess(str)) {
|
|
|
+ // 存入原始数据用于统计
|
|
|
+ Query query1 = new Query();
|
|
|
+ query1.addCriteria(Criteria.where("_id").is(key + "_" + LocalDateTime.now().getYear() + "_" + LocalDateTime.now().getMonthValue()));
|
|
|
+ Update update1 = new Update();
|
|
|
+ List<Map> map = LeviUtils.getJsonFieldMany(str, "data.realtimeDataList", Map.class);
|
|
|
+ map.removeAll(Collections.singleton(null));
|
|
|
+ update1.set("data", EbaUtils.setDataField(map, key, "realDataDeviceList", false));
|
|
|
+ mongoTemplate.upsert(query1, update1, "realDataDeviceList");
|
|
|
+ // 存入当前最新数据方便查询
|
|
|
+ JSONObject data1 = new JSONObject();
|
|
|
+ map.forEach(x -> data1.put(x.get("deviceId").toString() + "_" + x.get("paramId").toString(), x.get("paramValue").toString()));
|
|
|
+ data2.put(key, data1);
|
|
|
+ }
|
|
|
Query query2 = new Query();
|
|
|
query2.addCriteria(Criteria.where("_id").is("realDataDeviceList"));
|
|
|
Update update2 = new Update();
|
|
|
update2.set("data", data2);
|
|
|
mongoTemplate.upsert(query2, update2, "ebaAuth");
|
|
|
EbaUtils.realDataDevice = data2;
|
|
|
+ return str;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 初始化所有项目device信息到mongo
|
|
|
*/
|
|
|
@Override
|
|
|
- public void initMobjectList() {
|
|
|
- Set<String> keys = EbaUtils.project.keySet();
|
|
|
- keys.forEach(key -> ScheduledUtils.start(() -> {
|
|
|
- String param = JSON.toJSONString(Levi.by("projectId", Integer.parseInt(key)));
|
|
|
- String str = HttpRequest.post(EbaSystemConstants.getMobjectList)
|
|
|
- .header("token", EbaUtils.token)
|
|
|
- .body(param)
|
|
|
- .execute().body();
|
|
|
- if (EbaUtils.isSuccess(str)) {
|
|
|
- Query query = new Query();
|
|
|
- query.addCriteria(Criteria.where("_id").is("mobjectList"));
|
|
|
- Update update = new Update();
|
|
|
- List<Map> map = LeviUtils.getJsonFieldMany(str, "data.mObjectList", Map.class);
|
|
|
- JSONObject obj = mongoTemplate.findById("mobjectList", JSONObject.class, "ebaAuth");
|
|
|
- JSONObject data = obj != null ? obj.getJSONObject("data") : new JSONObject();
|
|
|
- map.forEach(x -> {
|
|
|
- List<Map> list = (List<Map>) x.get("params");
|
|
|
- Integer deviceId = (Integer) x.get("deviceId");
|
|
|
- if (CollUtil.isNotEmpty(list)) {
|
|
|
- list.forEach(y -> y.put("paramValue", EbaUtils.realDataDevice.getJSONObject(key).getString(deviceId.toString() + "_" + y.get("paramId").toString())));
|
|
|
- }
|
|
|
- });
|
|
|
- data.put(key, map);
|
|
|
- update.set("data", data);
|
|
|
- mongoTemplate.upsert(query, update, "ebaAuth");
|
|
|
- }
|
|
|
- return str;
|
|
|
- }, SECOND_TIME));
|
|
|
+ public String initMobjectList(String key) {
|
|
|
+ String param = JSON.toJSONString(Levi.by("projectId", Integer.parseInt(key)));
|
|
|
+ String str = HttpRequest.post(EbaSystemConstants.getMobjectList)
|
|
|
+ .header("token", EbaUtils.token)
|
|
|
+ .body(param)
|
|
|
+ .execute().body();
|
|
|
+ if (EbaUtils.isSuccess(str)) {
|
|
|
+ Query query = new Query();
|
|
|
+ query.addCriteria(Criteria.where("_id").is("mobjectList"));
|
|
|
+ Update update = new Update();
|
|
|
+ List<Map> map = LeviUtils.getJsonFieldMany(str, "data.mObjectList", Map.class);
|
|
|
+ map.removeAll(Collections.singleton(null));
|
|
|
+ JSONObject obj = mongoTemplate.findById("mobjectList", JSONObject.class, "ebaAuth");
|
|
|
+ JSONObject data = obj != null ? obj.getJSONObject("data") : new JSONObject();
|
|
|
+ map.forEach(x -> {
|
|
|
+ List<Map> list = (List<Map>) x.get("params");
|
|
|
+ Integer deviceId = (Integer) x.get("deviceId");
|
|
|
+ if (CollUtil.isNotEmpty(list)) {
|
|
|
+ list.forEach(y -> y.put("paramValue", EbaUtils.realDataDevice.getJSONObject(key).getString(deviceId.toString() + "_" + y.get("paramId").toString())));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ data.put(key, map);
|
|
|
+ update.set("data", data);
|
|
|
+ mongoTemplate.upsert(query, update, "ebaAuth");
|
|
|
+ }
|
|
|
+ return str;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 初始化所有项目iot信息到mongo
|
|
|
*/
|
|
|
@Override
|
|
|
- public void initIotList() {
|
|
|
- Set<String> keys = EbaUtils.project.keySet();
|
|
|
+ public String initIotList(String key) {
|
|
|
+ String param = JSON.toJSONString(Levi.by("projectId", Integer.parseInt(key)));
|
|
|
+ String str = HttpRequest.post(EbaSystemConstants.getIotList)
|
|
|
+ .header("token", EbaUtils.token)
|
|
|
+ .body(param)
|
|
|
+ .execute().body();
|
|
|
+ if (EbaUtils.isSuccess(str)) {
|
|
|
+ Query query = new Query();
|
|
|
+ query.addCriteria(Criteria.where("_id").is("iotList"));
|
|
|
+ JSONObject obj = mongoTemplate.findById("iotList", JSONObject.class, "ebaAuth");
|
|
|
+ JSONObject data = obj != null ? obj.getJSONObject("data") : new JSONObject();
|
|
|
+ Update update = new Update();
|
|
|
+ List<Map> map = LeviUtils.getJsonFieldMany(str, "data.datas", Map.class);
|
|
|
+ map.removeAll(Collections.singleton(null));
|
|
|
+ data.put(key, map);
|
|
|
+ update.set("data", data);
|
|
|
+ mongoTemplate.upsert(query, update, "ebaAuth");
|
|
|
+ }
|
|
|
+ return str;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化楼上三个哥们
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void initThreeBrothers() {
|
|
|
+ Set<String> keys = EbaUtils.getProjectIds();
|
|
|
keys.forEach(key -> ScheduledUtils.start(() -> {
|
|
|
- String param = JSON.toJSONString(Levi.by("projectId", Integer.parseInt(key)));
|
|
|
- String str = HttpRequest.post(EbaSystemConstants.getIotList)
|
|
|
- .header("token", EbaUtils.token)
|
|
|
- .body(param)
|
|
|
- .execute().body();
|
|
|
- if (EbaUtils.isSuccess(str)) {
|
|
|
- Query query = new Query();
|
|
|
- query.addCriteria(Criteria.where("_id").is("iotList"));
|
|
|
- JSONObject obj = mongoTemplate.findById("iotList", JSONObject.class, "ebaAuth");
|
|
|
- JSONObject data = obj != null ? obj.getJSONObject("data") : new JSONObject();
|
|
|
- Update update = new Update();
|
|
|
- List<Map> map = LeviUtils.getJsonFieldMany(str, "data.datas", Map.class);
|
|
|
- data.put(key, map);
|
|
|
- update.set("data", data);
|
|
|
- mongoTemplate.upsert(query, update, "ebaAuth");
|
|
|
- }
|
|
|
- return str;
|
|
|
+ log.info("当前执行的项目id:{}", key);
|
|
|
+ String s1 = initRealDataDeviceList(key);
|
|
|
+ String s2 = initMobjectList(key);
|
|
|
+ String s3 = initIotList(key);
|
|
|
+ return Arrays.asList(s1, s2, s3);
|
|
|
}, SECOND_TIME));
|
|
|
}
|
|
|
|