|
@@ -8,6 +8,7 @@ import com.persagy.apm.energyalarmstarter.alarmdata.feign.AlarmUrlParam;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmitem.QueryAlarmItemDTO;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.feign.DmpResult;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.feign.client.AlarmClient;
|
|
|
+import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmConfigItem;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmItem;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.mq.model.DmpMessage;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmItemServiceImpl;
|
|
@@ -18,6 +19,7 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -181,14 +183,14 @@ public abstract class AlarmRecordMsgHandler extends BaseService {
|
|
|
*/
|
|
|
public String createAlarm(JSONObject data) throws Exception {
|
|
|
//报警分类(设备、空间、系统 Eq,Sp,Sy)
|
|
|
- String category = data.getString("category");
|
|
|
String objId = data.getString("objId");
|
|
|
String projectId = data.getString("projectId");
|
|
|
String itemCode = data.getString("itemCode");
|
|
|
+ String alarmCategory = getAlarmCategory(getAlarmUrlParam(data), itemCode);
|
|
|
|
|
|
data.put("classCode", getObjClassCode(getAlarmUrlParam(data), objId));
|
|
|
- data.put("category", getAlarmCategory(getAlarmUrlParam(data), itemCode));
|
|
|
- data.put("name", getAlarmName(projectId,objId,category));
|
|
|
+ data.put("category", alarmCategory);
|
|
|
+ data.put("name", getAlarmName(projectId,objId,alarmCategory));
|
|
|
data.put("remark", getAlarmRemark(getAlarmUrlParam(data), objId, itemCode));
|
|
|
data.put("supplement", getAlarmSupplement(getAlarmUrlParam(data), data));
|
|
|
data.put("level", getAlarmLevel(data));
|
|
@@ -257,7 +259,7 @@ public abstract class AlarmRecordMsgHandler extends BaseService {
|
|
|
* @since: 2020/12/1 12:06 下午
|
|
|
* @version: V1.0
|
|
|
*/
|
|
|
- public Map<String, JSONArray> queryChangedAlarmConfigs(DmpMessage dmpMessage) throws Exception {
|
|
|
+ public Map<String, List<AlarmConfigItem>> queryChangedAlarmConfigs(DmpMessage dmpMessage) throws Exception {
|
|
|
String projectId = dmpMessage.getProjectId();
|
|
|
JSONObject exts = dmpMessage.getExts();
|
|
|
//删除报警定义
|
|
@@ -269,7 +271,11 @@ public abstract class AlarmRecordMsgHandler extends BaseService {
|
|
|
createdConfigUniques = CollectionUtils.isEmpty(createdConfigUniques) ? new JSONArray() : createdConfigUniques;
|
|
|
deletedConfigUniques = CollectionUtils.isEmpty(deletedConfigUniques) ? new JSONArray() : deletedConfigUniques;
|
|
|
updatedConfigUniques = CollectionUtils.isEmpty(updatedConfigUniques) ? new JSONArray() : updatedConfigUniques;
|
|
|
- createdConfigUniques.addAll(updatedConfigUniques);
|
|
|
+
|
|
|
+ log.debug("新增了{}条报警定义", createdConfigUniques.size());
|
|
|
+ log.debug("删除了{}条报警定义", deletedConfigUniques.size());
|
|
|
+ log.debug("更新了{}条报警定义", updatedConfigUniques.size());
|
|
|
+
|
|
|
List<String> defineList = createdConfigUniques.stream().map(
|
|
|
p -> JSONObject.parseObject(JSONObject.toJSONString(p))
|
|
|
).map(this::getAlarmConfigDefineId).collect(Collectors.toList());
|
|
@@ -279,30 +285,61 @@ public abstract class AlarmRecordMsgHandler extends BaseService {
|
|
|
t -> !defineList.contains(getAlarmConfigDefineId(t))
|
|
|
).collect(Collectors.toCollection(JSONArray::new));
|
|
|
|
|
|
- JSONArray alarmConfigArr = new JSONArray();
|
|
|
+ List<AlarmConfigItem> createdAlarmConfigs = new ArrayList<>();
|
|
|
+ List<AlarmConfigItem> deletedAlarmConfigs = deletedConfigUniques.toJavaList(AlarmConfigItem.class);
|
|
|
+
|
|
|
for (Object p : createdConfigUniques) {
|
|
|
JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(p));
|
|
|
- JSONObject data = new JSONObject();
|
|
|
- data.put("projectId", projectId);
|
|
|
- data.put("groupCode", dmpMessage.getGroupCode());
|
|
|
- data.put("itemCode", jsonObject.getString("itemCode"));
|
|
|
- data.put("objId", jsonObject.getString("objId"));
|
|
|
- data.put("userId", "system");
|
|
|
- DmpResult<JSONArray> alarmConfigQueryResult = alarmClient.queryAlarmConfig(getAlarmUrlParam(data), getRequestBody(data));
|
|
|
- JSONArray tmpAlarmConfigArr = alarmConfigQueryResult.getData();
|
|
|
- if (!CollectionUtils.isEmpty(tmpAlarmConfigArr)) {
|
|
|
- // 报警定义中的信息点转换为表号、功能号
|
|
|
- initAlarmConfigInfoCodes(tmpAlarmConfigArr);
|
|
|
- alarmConfigArr.addAll(tmpAlarmConfigArr);
|
|
|
+ String itemCode = jsonObject.getString("itemCode");
|
|
|
+ String objId = jsonObject.getString("objId");
|
|
|
+ List<AlarmConfigItem> alarmConfigItems = queryAlarmConfig(dmpMessage.getGroupCode(), projectId, itemCode, objId);
|
|
|
+ if (!CollectionUtils.isEmpty(alarmConfigItems)) {
|
|
|
+ createdAlarmConfigs.addAll(alarmConfigItems);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (Object p : updatedConfigUniques) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(p));
|
|
|
+ String itemCode = jsonObject.getString("itemCode");
|
|
|
+ String objId = jsonObject.getString("objId");
|
|
|
+ List<AlarmConfigItem> alarmConfigItems = queryAlarmConfig(dmpMessage.getGroupCode(), projectId, itemCode, objId);
|
|
|
+ if (!CollectionUtils.isEmpty(alarmConfigItems)) {
|
|
|
+ // 根据open状态判断报警定义应该删除还是新增
|
|
|
+ for (AlarmConfigItem alarmConfigItem : alarmConfigItems) {
|
|
|
+ if (alarmConfigItem.getOpen() == 1) {
|
|
|
+ createdAlarmConfigs.add(alarmConfigItem);
|
|
|
+ }
|
|
|
+ if (alarmConfigItem.getOpen() == 0) {
|
|
|
+ deletedAlarmConfigs.add(alarmConfigItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- log.info("新增和更新的报警定义-------------------:{}", tmpAlarmConfigArr);
|
|
|
}
|
|
|
- Map<String, JSONArray> resultMap = new HashMap<>();
|
|
|
- resultMap.put("createdConfigUniques", alarmConfigArr);
|
|
|
- resultMap.put("deletedConfigUniques", deletedConfigUniques);
|
|
|
+
|
|
|
+ Map<String, List<AlarmConfigItem>> resultMap = new HashMap<>();
|
|
|
+ resultMap.put("createdConfigUniques", createdAlarmConfigs);
|
|
|
+ resultMap.put("deletedConfigUniques", deletedAlarmConfigs);
|
|
|
+ log.debug("报警定义的更改转换,更新操作被转换为新增和删除操作");
|
|
|
+ log.debug("实际新增了{}条报警定义", createdAlarmConfigs.size());
|
|
|
+ log.debug("实际删除了{}条报警定义", deletedAlarmConfigs.size());
|
|
|
return resultMap;
|
|
|
}
|
|
|
|
|
|
+ private List<AlarmConfigItem> queryAlarmConfig(String groupCode, String projectId, String itemCode, String objId) throws Exception {
|
|
|
+ JSONObject data = new JSONObject();
|
|
|
+ data.put("projectId", projectId);
|
|
|
+ data.put("groupCode", groupCode);
|
|
|
+ data.put("itemCode", itemCode);
|
|
|
+ data.put("objId", objId);
|
|
|
+ data.put("userId", "system");
|
|
|
+ DmpResult<JSONArray> alarmConfigQueryResult = alarmClient.queryAlarmConfig(getAlarmUrlParam(data), getRequestBody(data));
|
|
|
+ JSONArray tmpAlarmConfigArr = alarmConfigQueryResult.getData();
|
|
|
+ if (CollectionUtils.isEmpty(tmpAlarmConfigArr)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return tmpAlarmConfigArr.toJavaList(AlarmConfigItem.class);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @description: 获取报警定义唯一标识
|
|
|
* @param: obj
|