|
@@ -1,31 +1,40 @@
|
|
|
package com.persagy.apm.alarmservice.group.alarmrule.service.impl;
|
|
|
|
|
|
-import com.persagy.apm.alarmservice.alarmcondition.model.dto.AddAlarmConditionDTO;
|
|
|
-import com.persagy.apm.alarmservice.alarmcondition.model.dto.UpdateAlarmConditionDTO;
|
|
|
-import com.persagy.apm.alarmservice.alarmcondition.service.IAlarmConditionService;
|
|
|
-import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
|
|
|
-import com.persagy.apm.common.configuration.DataUtils;
|
|
|
-import com.persagy.apm.common.configuration.PoemsWebConfigurer;
|
|
|
-import com.persagy.apm.common.context.AppContext;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.google.common.base.CaseFormat;
|
|
|
import com.persagy.apm.alarmservice.group.alarmrule.dao.GroupAlarmRuleMapper;
|
|
|
+import com.persagy.apm.alarmservice.group.alarmrule.model.ConvertGroupAlarmRuleTool;
|
|
|
+import com.persagy.apm.alarmservice.group.alarmrule.model.GroupAlarmRule;
|
|
|
+import com.persagy.apm.alarmservice.group.alarmrule.model.dto.AddGroupAlarmRuleDTO;
|
|
|
+import com.persagy.apm.alarmservice.group.alarmrule.model.dto.PageQueryGroupAlarmRuleDTO;
|
|
|
+import com.persagy.apm.alarmservice.group.alarmrule.model.dto.QueryGroupAlarmRuleDTO;
|
|
|
+import com.persagy.apm.alarmservice.group.alarmrule.model.dto.UpdateGroupAlarmRuleDTO;
|
|
|
import com.persagy.apm.alarmservice.group.alarmrule.service.IGroupAlarmRuleService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.AddAlarmConditionDTO;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.UpdateAlarmConditionDTO;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmcondition.service.IAlarmConditionService;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
|
|
|
+import com.persagy.apm.common.constant.enums.ValidEnum;
|
|
|
+import com.persagy.apm.common.context.AppContext;
|
|
|
import com.persagy.apm.common.context.poems.PoemsContext;
|
|
|
+import com.persagy.apm.common.model.dto.Sort;
|
|
|
+import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.AlarmCondition;
|
|
|
+import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.AddAlarmConfigDTO;
|
|
|
+import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.BatchAddAlarmConfigDTO;
|
|
|
+import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.apache.commons.lang.StringUtils;
|
|
|
-import com.persagy.apm.common.constant.enums.ValidEnum;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import com.persagy.apm.alarmservice.group.alarmrule.model.*;
|
|
|
-import com.persagy.apm.alarmservice.group.alarmrule.model.dto.*;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
-import java.util.Date;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.google.common.base.CaseFormat;
|
|
|
-import com.persagy.apm.common.model.dto.Sort;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* 集团报警规则(GroupAlarmRule) service层
|
|
@@ -34,34 +43,62 @@ import org.springframework.util.CollectionUtils;
|
|
|
* @version V1.0 2021-09-08 22:35:45
|
|
|
*/
|
|
|
@Service
|
|
|
-public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper, GroupAlarmRule>
|
|
|
- implements IGroupAlarmRuleService {
|
|
|
+public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper, GroupAlarmRule>
|
|
|
+ implements IGroupAlarmRuleService {
|
|
|
@Autowired
|
|
|
private IAlarmConditionService alarmConditionService;
|
|
|
@Autowired
|
|
|
private IProjectAlarmRuleService projectAlarmRuleService;
|
|
|
+ @Autowired
|
|
|
+ private AlarmConfigServiceImpl alarmConfigService;
|
|
|
+
|
|
|
/**
|
|
|
- * 创建集团报警规则
|
|
|
- * @return 集团报警规则主键
|
|
|
- * @author lixing
|
|
|
- * @version V1.0 2021-09-08 22:35:45
|
|
|
- */
|
|
|
+ * 创建集团报警规则
|
|
|
+ *
|
|
|
+ * @return 集团报警规则主键
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-09-08 22:35:45
|
|
|
+ */
|
|
|
@Override
|
|
|
public String createGroupAlarmRule(AddGroupAlarmRuleDTO addGroupAlarmRuleDTO) {
|
|
|
//1、给某个设备分组创建集团报警
|
|
|
GroupAlarmRule groupAlarmRule = ConvertGroupAlarmRuleTool.INSTANCE.convertAddDto2Entity(addGroupAlarmRuleDTO);
|
|
|
AddAlarmConditionDTO alarmCondition = addGroupAlarmRuleDTO.getAlarmCondition();
|
|
|
- String alarmConditionId = alarmConditionService.createAlarmCondition(alarmCondition);
|
|
|
+ Map<String, Object> conditionMap = alarmConditionService.createAlarmCondition(alarmCondition);
|
|
|
// 设置默认值
|
|
|
- groupAlarmRule.setAlarmConditionId(alarmConditionId);
|
|
|
+ groupAlarmRule.setAlarmConditionId((String) conditionMap.get("id"));
|
|
|
setDefaultValue(groupAlarmRule);
|
|
|
save(groupAlarmRule);
|
|
|
//2、同步创建项目报警
|
|
|
- projectAlarmRuleService.addProjectAlarmRules(addGroupAlarmRuleDTO);
|
|
|
+ List<AddProjectAlarmRuleObjRelDTO> addProjectAlarmRuleObjRelDTOS = projectAlarmRuleService.addProjectAlarmRules(addGroupAlarmRuleDTO);
|
|
|
//3、同步创建设备报警条件
|
|
|
+ BatchAddAlarmConfigDTO batchAddAlarmConfigDTO = new BatchAddAlarmConfigDTO();
|
|
|
+ List<AddAlarmConfigDTO> alarmConfigs = new ArrayList<>();
|
|
|
+ for (AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO : addProjectAlarmRuleObjRelDTOS) {
|
|
|
+ AddAlarmConfigDTO addAlarmConfigDTO = new AddAlarmConfigDTO();
|
|
|
+ addAlarmConfigDTO.setObjId(addProjectAlarmRuleObjRelDTO.getEquipId());
|
|
|
+ addAlarmConfigDTO.setItemCode(addGroupAlarmRuleDTO.getAlarmItemCode());
|
|
|
+ addAlarmConfigDTO.setClassCode(addGroupAlarmRuleDTO.getClassCode());
|
|
|
+ addAlarmConfigDTO.setLevel(alarmCondition.getAlarmLevel());
|
|
|
+ AlarmCondition condition = new AlarmCondition();
|
|
|
+ condition.setTrigger((String) conditionMap.get("backend"));
|
|
|
+ String infoCode = (String) conditionMap.get("infoCode");
|
|
|
+ List<String> infoCodeList = (List<String>) JSONArray.parse(infoCode);
|
|
|
+ condition.setInfoCode(infoCodeList);
|
|
|
+ condition.setTriggerUphold(alarmCondition.getTriggerUphold());
|
|
|
+ condition.setRules((List<String>) conditionMap.get("conditionMap"));
|
|
|
+ addAlarmConfigDTO.setCondition(condition);
|
|
|
+ alarmConfigs.add(addAlarmConfigDTO);
|
|
|
+ }
|
|
|
+ batchAddAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
|
|
|
+ try {
|
|
|
+ alarmConfigService.batchCreate(batchAddAlarmConfigDTO);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
return groupAlarmRule.getId();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 如果某些字段没有赋值,使用默认的值
|
|
|
*
|
|
@@ -70,19 +107,17 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
* @version V1.0 2021/3/12 12:29 下午
|
|
|
*/
|
|
|
private void setDefaultValue(GroupAlarmRule groupAlarmRule) {
|
|
|
- groupAlarmRule.setCreator(AppContext.getContext().getAccountId());
|
|
|
- groupAlarmRule.setId(DataUtils.getUUID());
|
|
|
- groupAlarmRule.setModifier(PoemsContext.getContext().getUserId());
|
|
|
- groupAlarmRule.setModifiedTime(new Date());
|
|
|
+ groupAlarmRule.setCreator(PoemsContext.getContext().getUserId());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
- * 集团报警规则详情
|
|
|
- * @param id 主键
|
|
|
- * @return 部门do类
|
|
|
- * @author lixing
|
|
|
- * @version V1.0 2021-09-08 22:35:45
|
|
|
- */
|
|
|
+ * 集团报警规则详情
|
|
|
+ *
|
|
|
+ * @param id 主键
|
|
|
+ * @return 部门do类
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-09-08 22:35:45
|
|
|
+ */
|
|
|
@Override
|
|
|
public GroupAlarmRule queryGroupAlarmRuleDetail(String id) {
|
|
|
GroupAlarmRule groupAlarmRule = getById(id);
|
|
@@ -91,12 +126,13 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
}
|
|
|
return groupAlarmRule;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
- * 更新集团报警规则
|
|
|
- * @author lixing
|
|
|
- * @version V1.0 2021-09-08 22:35:45
|
|
|
- */
|
|
|
+ * 更新集团报警规则
|
|
|
+ *
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-09-08 22:35:45
|
|
|
+ */
|
|
|
@Override
|
|
|
public void updateGroupAlarmRule(UpdateGroupAlarmRuleDTO updateGroupAlarmRuleDTO) {
|
|
|
GroupAlarmRule groupAlarmRule = getById(updateGroupAlarmRuleDTO.getId());
|
|
@@ -106,7 +142,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
UpdateAlarmConditionDTO alarmCondition = updateGroupAlarmRuleDTO.getAlarmCondition();
|
|
|
alarmConditionService.updateAlarmCondition(alarmCondition);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 校验集团报警规则是否可删除
|
|
|
*
|
|
@@ -128,13 +164,14 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
|
|
|
return groupAlarmRule;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
- * 删除集团报警规则
|
|
|
- * @param id 主键
|
|
|
- * @author lixing
|
|
|
- * @version V1.0 2021-09-08 22:35:45
|
|
|
- */
|
|
|
+ * 删除集团报警规则
|
|
|
+ *
|
|
|
+ * @param id 主键
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-09-08 22:35:45
|
|
|
+ */
|
|
|
@Override
|
|
|
public void deleteGroupAlarmRule(String id) {
|
|
|
// 校验是否可删除
|
|
@@ -142,27 +179,28 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
groupAlarmRule.setValid(ValidEnum.FALSE.getType());
|
|
|
updateById(groupAlarmRule);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
- * 查询集团报警规则
|
|
|
- * @return List<GroupAlarmRule>
|
|
|
- * @author lixing
|
|
|
- * @version V1.0 2021-09-08 22:35:45
|
|
|
- */
|
|
|
+ * 查询集团报警规则
|
|
|
+ *
|
|
|
+ * @return List<GroupAlarmRule>
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-09-08 22:35:45
|
|
|
+ */
|
|
|
@Override
|
|
|
public List<GroupAlarmRule> queryGroupAlarmRuleList(QueryGroupAlarmRuleDTO queryGroupAlarmRuleDTO) {
|
|
|
QueryWrapper<GroupAlarmRule> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq(GroupAlarmRule.PROP_VALID, ValidEnum.TRUE.getType());
|
|
|
// 默认按创建时间倒序排序
|
|
|
queryWrapper.orderBy(true, false, GroupAlarmRule.PROP_CREATIONTIME);
|
|
|
-
|
|
|
+
|
|
|
if (queryGroupAlarmRuleDTO != null) {
|
|
|
-
|
|
|
+
|
|
|
// todo 需判断使用like还是eq
|
|
|
if (StringUtils.isNotEmpty(queryGroupAlarmRuleDTO.getGroupId())) {
|
|
|
queryWrapper.like(GroupAlarmRule.PROP_GROUP_ID, queryGroupAlarmRuleDTO.getGroupId());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// todo 需判断使用like还是eq
|
|
|
if (StringUtils.isNotEmpty(queryGroupAlarmRuleDTO.getAlarmItemCode())) {
|
|
|
queryWrapper.like(GroupAlarmRule.PROP_ALARM_ITEM_CODE, queryGroupAlarmRuleDTO.getAlarmItemCode());
|
|
@@ -170,47 +208,48 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
}
|
|
|
return list(queryWrapper);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
- * 分页查询集团报警规则
|
|
|
- * @return IPage<GroupAlarmRule>
|
|
|
- * @author lixing
|
|
|
- * @version V1.0 2021-09-08 22:35:45
|
|
|
- */
|
|
|
+ * 分页查询集团报警规则
|
|
|
+ *
|
|
|
+ * @return IPage<GroupAlarmRule>
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021-09-08 22:35:45
|
|
|
+ */
|
|
|
@Override
|
|
|
public IPage<GroupAlarmRule> pageQueryGroupAlarmRule(PageQueryGroupAlarmRuleDTO pageQueryGroupAlarmRuleDTO) {
|
|
|
QueryWrapper<GroupAlarmRule> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq(GroupAlarmRule.PROP_VALID, ValidEnum.TRUE.getType());
|
|
|
// 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
|
|
|
- IPage<GroupAlarmRule> pageParam = new Page<>(pageQueryGroupAlarmRuleDTO.getPage(), pageQueryGroupAlarmRuleDTO.getSize(),true);
|
|
|
+ IPage<GroupAlarmRule> pageParam = new Page<>(pageQueryGroupAlarmRuleDTO.getPage(), pageQueryGroupAlarmRuleDTO.getSize(), true);
|
|
|
// 排序信息
|
|
|
- if(CollectionUtils.isEmpty(pageQueryGroupAlarmRuleDTO.getOrders())){
|
|
|
+ if (CollectionUtils.isEmpty(pageQueryGroupAlarmRuleDTO.getOrders())) {
|
|
|
// 默认按创建时间倒序排序
|
|
|
queryWrapper.orderBy(true, false, GroupAlarmRule.PROP_CREATIONTIME);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
List<Sort> orders = pageQueryGroupAlarmRuleDTO.getOrders();
|
|
|
- for(Sort sort: orders) {
|
|
|
+ for (Sort sort : orders) {
|
|
|
// 将驼峰转换为下划线格式
|
|
|
- sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,sort.getColumn()));
|
|
|
+ sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sort.getColumn()));
|
|
|
queryWrapper.orderBy(true, sort.isAsc(), sort.getColumn());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// todo 需判断使用like还是eq
|
|
|
if (StringUtils.isNotEmpty(pageQueryGroupAlarmRuleDTO.getGroupId())) {
|
|
|
queryWrapper.like(GroupAlarmRule.PROP_GROUP_ID, pageQueryGroupAlarmRuleDTO.getGroupId());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// todo 需判断使用like还是eq
|
|
|
if (StringUtils.isNotEmpty(pageQueryGroupAlarmRuleDTO.getAlarmItemCode())) {
|
|
|
queryWrapper.like(GroupAlarmRule.PROP_ALARM_ITEM_CODE, pageQueryGroupAlarmRuleDTO.getAlarmItemCode());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// todo 需判断使用like还是eq
|
|
|
if (StringUtils.isNotEmpty(pageQueryGroupAlarmRuleDTO.getAlarmConditionId())) {
|
|
|
queryWrapper.like(GroupAlarmRule.PROP_ALARM_CONDITION_ID, pageQueryGroupAlarmRuleDTO.getAlarmConditionId());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return getBaseMapper().selectPage(pageParam, queryWrapper);
|
|
|
}
|
|
|
}
|