|
@@ -360,8 +360,18 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
|
|
|
|
|
|
@Override
|
|
|
public List<ProjectAlarmRuleObjRelListItemVO> queryRuleObjRel(QueryRuleObjRelDTO queryRuleObjRelDTO) {
|
|
|
- List<ProjectAlarmRuleObjRelListItemVO> resultList = new ArrayList<>();
|
|
|
- //查询未绑定的报警对象 begin
|
|
|
+ List<ProjectAlarmRuleObjRel> resultList = new ArrayList<>();
|
|
|
+ if (StringUtils.isNotBlank(queryRuleObjRelDTO.getProjectAlarmRuleId())) {
|
|
|
+ //查询每条项目报警下的报警对象
|
|
|
+ QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_PROJECT_ALARM_RULE_ID, queryRuleObjRelDTO.getProjectAlarmRuleId());
|
|
|
+ queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_VALID, ValidEnum.TRUE.getType());
|
|
|
+ queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_OPEN, 1);
|
|
|
+ List<ProjectAlarmRuleObjRel> list = list(queryWrapper);
|
|
|
+ list.stream().map(ProjectAlarmRuleObjRel::getObjId).distinct().collect(Collectors.toList());
|
|
|
+ resultList.addAll(list);
|
|
|
+ }
|
|
|
+ //查询所有设备(报警对象)
|
|
|
String projectId = queryRuleObjRelDTO.getProjectId();
|
|
|
QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
|
|
|
queryEquipDTO.setProjectId(projectId);
|
|
@@ -369,42 +379,70 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
|
|
|
queryEquipDTO.setCondition(queryRuleObjRelDTO.getCondition());
|
|
|
List<EquipItem> records = groupManagementService.getEquipList(queryEquipDTO);
|
|
|
Map<String, EquipItem> partitionMap = records.stream().collect(Collectors.toMap(EquipItem::getId, equip -> equip, (k1, k2) -> k1));
|
|
|
- //根据项目报警ID查询已绑定的报警对象
|
|
|
- List<String> projectAlarmRuleIdList = projectAlarmRuleService.queryAlarmRule(queryRuleObjRelDTO);
|
|
|
- List<ProjectAlarmRuleObjRel> rels = this.queryObjRelList(projectAlarmRuleIdList);
|
|
|
- List<String> objIds = rels.stream().map(ProjectAlarmRuleObjRel::getObjId).distinct().collect(Collectors.toList());
|
|
|
- if (objIds.size() == 0) {
|
|
|
- for (EquipItem record : records) {
|
|
|
- ProjectAlarmRuleObjRelListItemVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelListItemVO();
|
|
|
- projectAlarmRuleObjRelVO.setObjId(record.getId());
|
|
|
- projectAlarmRuleObjRelVO.setObjName(record.getName());
|
|
|
+ //查询项目下所有已绑定的报警对象
|
|
|
+ QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_PROJECT_ID, projectId);
|
|
|
+ queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_VALID, ValidEnum.TRUE.getType());
|
|
|
+ queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_OPEN, 1);
|
|
|
+ List<ProjectAlarmRuleObjRel> list = list(queryWrapper);
|
|
|
+ //筛选未绑定的报警对象
|
|
|
+ for (ProjectAlarmRuleObjRel projectAlarmRuleObjRel : list) {
|
|
|
+ String objId = projectAlarmRuleObjRel.getObjId();
|
|
|
+ if (!partitionMap.containsKey(objId)) {
|
|
|
+ EquipItem equipItem = partitionMap.get(objId);
|
|
|
+ ProjectAlarmRuleObjRel projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRel();
|
|
|
+ projectAlarmRuleObjRelVO.setObjId(equipItem.getId());
|
|
|
+ projectAlarmRuleObjRelVO.setObjName(equipItem.getName());
|
|
|
resultList.add(projectAlarmRuleObjRelVO);
|
|
|
}
|
|
|
- } else {
|
|
|
- for (String objId : objIds) {
|
|
|
- if (!partitionMap.containsKey(objId)) {
|
|
|
- ProjectAlarmRuleObjRelListItemVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelListItemVO();
|
|
|
- EquipItem equipItem = partitionMap.get(objId);
|
|
|
- projectAlarmRuleObjRelVO.setObjId(equipItem.getId());
|
|
|
- projectAlarmRuleObjRelVO.setObjName(equipItem.getName());
|
|
|
- resultList.add(projectAlarmRuleObjRelVO);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //查询未绑定的报警对象 end
|
|
|
- if (StringUtils.isNotBlank(queryRuleObjRelDTO.getProjectAlarmRuleId())) {
|
|
|
- //修改
|
|
|
- QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_PROJECT_ALARM_RULE_ID, queryRuleObjRelDTO.getProjectAlarmRuleId());
|
|
|
- queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_VALID, ValidEnum.TRUE.getType());
|
|
|
- queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_OPEN, 1);
|
|
|
- List<ProjectAlarmRuleObjRel> relList = list(queryWrapper);
|
|
|
- resultList = ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2List(relList);
|
|
|
-
|
|
|
}
|
|
|
- resultList = resultList.stream().filter(item -> item.getObjName() != null).sorted(Comparator.comparing(ProjectAlarmRuleObjRelListItemVO::getObjName,
|
|
|
- Collator.getInstance(java.util.Locale.CHINA))).collect(Collectors.toList());
|
|
|
- return resultList;
|
|
|
+ return ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2List(resultList);
|
|
|
+//
|
|
|
+// List<ProjectAlarmRuleObjRelListItemVO> resultList = new ArrayList<>();
|
|
|
+// //查询未绑定的报警对象 begin
|
|
|
+// String projectId = queryRuleObjRelDTO.getProjectId();
|
|
|
+// QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
|
|
|
+// queryEquipDTO.setProjectId(projectId);
|
|
|
+// queryEquipDTO.setClassCode(queryRuleObjRelDTO.getClassCode());
|
|
|
+// queryEquipDTO.setCondition(queryRuleObjRelDTO.getCondition());
|
|
|
+// List<EquipItem> records = groupManagementService.getEquipList(queryEquipDTO);
|
|
|
+// Map<String, EquipItem> partitionMap = records.stream().collect(Collectors.toMap(EquipItem::getId, equip -> equip, (k1, k2) -> k1));
|
|
|
+// //根据项目报警ID查询已绑定的报警对象
|
|
|
+// List<String> projectAlarmRuleIdList = projectAlarmRuleService.queryAlarmRule(queryRuleObjRelDTO);
|
|
|
+// List<ProjectAlarmRuleObjRel> rels = this.queryObjRelList(projectAlarmRuleIdList);
|
|
|
+// List<String> objIds = rels.stream().map(ProjectAlarmRuleObjRel::getObjId).distinct().collect(Collectors.toList());
|
|
|
+// if (objIds.size() == 0) {
|
|
|
+// for (EquipItem record : records) {
|
|
|
+// ProjectAlarmRuleObjRelListItemVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelListItemVO();
|
|
|
+// projectAlarmRuleObjRelVO.setObjId(record.getId());
|
|
|
+// projectAlarmRuleObjRelVO.setObjName(record.getName());
|
|
|
+// resultList.add(projectAlarmRuleObjRelVO);
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// for (String objId : objIds) {
|
|
|
+// if (!partitionMap.containsKey(objId)) {
|
|
|
+// ProjectAlarmRuleObjRelListItemVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelListItemVO();
|
|
|
+// EquipItem equipItem = partitionMap.get(objId);
|
|
|
+// projectAlarmRuleObjRelVO.setObjId(equipItem.getId());
|
|
|
+// projectAlarmRuleObjRelVO.setObjName(equipItem.getName());
|
|
|
+// resultList.add(projectAlarmRuleObjRelVO);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //查询未绑定的报警对象 end
|
|
|
+// if (StringUtils.isNotBlank(queryRuleObjRelDTO.getProjectAlarmRuleId())) {
|
|
|
+// //修改
|
|
|
+// QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
|
|
|
+// queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_PROJECT_ALARM_RULE_ID, queryRuleObjRelDTO.getProjectAlarmRuleId());
|
|
|
+// queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_VALID, ValidEnum.TRUE.getType());
|
|
|
+// queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_OPEN, 1);
|
|
|
+// List<ProjectAlarmRuleObjRel> relList = list(queryWrapper);
|
|
|
+// resultList = ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2List(relList);
|
|
|
+//
|
|
|
+// }
|
|
|
+// resultList = resultList.stream().filter(item -> item.getObjName() != null).sorted(Comparator.comparing(ProjectAlarmRuleObjRelListItemVO::getObjName,
|
|
|
+// Collator.getInstance(java.util.Locale.CHINA))).collect(Collectors.toList());
|
|
|
+// return resultList;
|
|
|
}
|
|
|
|
|
|
private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
|