|
@@ -8,6 +8,7 @@ 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.common.util.DataUtils;
|
|
|
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;
|
|
@@ -33,11 +34,14 @@ import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.AlarmEffectTime;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.*;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmConfigItem;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
+import org.apache.poi.ss.usermodel.DataFormatter;
|
|
|
import org.apache.poi.ss.usermodel.Row;
|
|
|
import org.apache.poi.ss.usermodel.Sheet;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
import org.assertj.core.util.Lists;
|
|
|
+import org.slf4j.Logger;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -56,6 +60,7 @@ import java.util.stream.Collectors;
|
|
|
* @author lixing
|
|
|
* @version V1.0 2021-09-08 22:35:45
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper, GroupAlarmRule>
|
|
|
implements IGroupAlarmRuleService {
|
|
@@ -84,13 +89,16 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
GroupAlarmRule groupAlarmRule = ConvertGroupAlarmRuleTool.INSTANCE.convertAddDto2Entity(addGroupAlarmRuleDTO);
|
|
|
AddAlarmConditionDTO alarmCondition = addGroupAlarmRuleDTO.getAlarmCondition();
|
|
|
Map<String, Object> conditionMap = alarmConditionService.createAlarmCondition(alarmCondition);
|
|
|
- // 设置默认值
|
|
|
+ //创建集团报警
|
|
|
groupAlarmRule.setAlarmConditionId((String) conditionMap.get("id"));
|
|
|
setDefaultValue(groupAlarmRule);
|
|
|
save(groupAlarmRule);
|
|
|
//2、同步创建项目报警
|
|
|
projectAlarmRuleService.addProjectAlarmRules(addGroupAlarmRuleDTO);
|
|
|
List<ProjectVO> projects = projectAlarmRuleService.getProject();
|
|
|
+ if (projects.size() == 0) {
|
|
|
+ throw new Exception("获取项目为空");
|
|
|
+ }
|
|
|
//3、同步创建设备报警条件
|
|
|
BatchAddAlarmConfigDTO batchAddAlarmConfigDTO = new BatchAddAlarmConfigDTO();
|
|
|
List<AddAlarmConfigDTO> alarmConfigs = new ArrayList<>();
|
|
@@ -98,10 +106,14 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
String classCode = addGroupAlarmRuleDTO.getClassCode();
|
|
|
for (ProjectVO project : projects) {
|
|
|
QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
|
|
|
- queryEquipDTO.setProjectId(project.getProjectId());
|
|
|
+ String projectId = "Pj" + project.getProjectId();
|
|
|
+ queryEquipDTO.setProjectId(projectId);
|
|
|
queryEquipDTO.setClassCode(classCode);
|
|
|
queryEquipDTO.setCondition(condition);
|
|
|
List<EquipItem> record = groupManagementService.getEquipList(queryEquipDTO);
|
|
|
+ if (record.size() == 0) {
|
|
|
+ throw new Exception("获取设备详细信息为空");
|
|
|
+ }
|
|
|
for (EquipItem rec : record) {
|
|
|
AddAlarmConfigDTO addAlarmConfigDTO = new AddAlarmConfigDTO();
|
|
|
String equipId = rec.getId();
|
|
@@ -129,7 +141,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
cond.setTrigger(backend);
|
|
|
cond.setTriggerUphold(alarmCondition.getTriggerUphold() * 60);
|
|
|
cond.setRules((List<String>) conditionMap.get("displayFormula"));
|
|
|
- JSONArray configs= JSONArray.parseArray(JSON.toJSONString(alarmCondition.getFrontend()));
|
|
|
+ JSONArray configs = JSONArray.parseArray(JSON.toJSONString(alarmCondition.getFrontend()));
|
|
|
cond.setConfigs(configs);
|
|
|
AlarmEffectTime effectTime = new AlarmEffectTime();
|
|
|
effectTime.setType("always");
|
|
@@ -138,7 +150,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
alarmConfigs.add(addAlarmConfigDTO);
|
|
|
}
|
|
|
batchAddAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
|
|
|
- batchAddAlarmConfigDTO.setProjectId(project.getProjectId());
|
|
|
+ batchAddAlarmConfigDTO.setProjectId(projectId);
|
|
|
alarmConfigService.batchCreate(batchAddAlarmConfigDTO);
|
|
|
}
|
|
|
return groupAlarmRule.getId();
|
|
@@ -189,12 +201,12 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
//获得报警规则
|
|
|
UpdateAlarmConditionDTO alarmCondition = updateGroupAlarmRuleDTO.getAlarmCondition();
|
|
|
Map<String, Object> conditionMap = alarmConditionService.frontend2Backend(alarmCondition.getFrontend());
|
|
|
- alarmConditionService.updateById(conditionMap,alarmCondition);
|
|
|
+ alarmConditionService.updateById(conditionMap, alarmCondition);
|
|
|
//删除中台设备的报警条件
|
|
|
String condition = updateGroupAlarmRuleDTO.getCondition();
|
|
|
String classCode = updateGroupAlarmRuleDTO.getClassCode();
|
|
|
String alarmItemCode = updateGroupAlarmRuleDTO.getAlarmItemCode();
|
|
|
- deleteEquipCondition(condition,classCode, alarmItemCode);
|
|
|
+ deleteEquipCondition(condition, classCode, alarmItemCode);
|
|
|
List<AddAlarmConfigDTO> alarmConfigs = new ArrayList<>();
|
|
|
BatchAddAlarmConfigDTO batchAddAlarmConfigDTO = new BatchAddAlarmConfigDTO();
|
|
|
//新增中台设备的报警条件
|
|
@@ -233,7 +245,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
equipCondition.setTrigger(backend);
|
|
|
equipCondition.setTriggerUphold(alarmCondition.getTriggerUphold() * 60);
|
|
|
equipCondition.setRules((List<String>) conditionMap.get("displayFormula"));
|
|
|
- JSONArray configs= JSONArray.parseArray(JSON.toJSONString(alarmCondition.getFrontend()));
|
|
|
+ JSONArray configs = JSONArray.parseArray(JSON.toJSONString(alarmCondition.getFrontend()));
|
|
|
equipCondition.setConfigs(configs);
|
|
|
AlarmEffectTime effectTime = new AlarmEffectTime();
|
|
|
effectTime.setType("always");
|
|
@@ -369,10 +381,10 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
projectAlarmRuleObjRelService.deleteBatch();
|
|
|
String condition = deleteGroupAlarmRuleDTO.getCondition();
|
|
|
String classCode = deleteGroupAlarmRuleDTO.getClassCode();
|
|
|
- deleteEquipCondition(condition,classCode, groupAlarmRule.getAlarmItemCode());
|
|
|
+ deleteEquipCondition(condition, classCode, groupAlarmRule.getAlarmItemCode());
|
|
|
}
|
|
|
|
|
|
- public void deleteEquipCondition(String condition,String classCode, String alarmItemCode) throws Exception {
|
|
|
+ public void deleteEquipCondition(String condition, String classCode, String alarmItemCode) throws Exception {
|
|
|
//删除设备报警条件 begin
|
|
|
BatchDeleteAlarmConfigDTO batchDeleteAlarmConfigDTO = new BatchDeleteAlarmConfigDTO();
|
|
|
List<DeleteAlarmConfigDTO> alarmConfigs = new ArrayList<>();
|
|
@@ -386,7 +398,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
//所有设备条件
|
|
|
List<AlarmConfigItem> data = query.getData();
|
|
|
//组织删除参数
|
|
|
- if(data.size()>0){
|
|
|
+ if (data.size() > 0) {
|
|
|
data.forEach(alarmConfigItem -> {
|
|
|
DeleteAlarmConfigDTO deleteAlarmConfigDTO = new DeleteAlarmConfigDTO();
|
|
|
deleteAlarmConfigDTO.setId(alarmConfigItem.getId());
|
|
@@ -403,20 +415,21 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
InputStream in = GroupAlarmRuleServiceImpl.class.getResourceAsStream(File.separator + "json" + File.separator + "Project.xlsx");
|
|
|
XSSFWorkbook sheets = new XSSFWorkbook(in);
|
|
|
Sheet sheet = sheets.getSheet("慧云3.0及3.1版本清单");
|
|
|
-// String path = this.getClass().getClassLoader().getResource("Project.json").getPath();
|
|
|
- OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("/Users/xjh/develop/persagy/energy-alarm-service/src/main/resources/json/Project.json"), "UTF-8");
|
|
|
- List<JSONObject> list = new ArrayList();
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
for (int i = 1; i < sheet.getPhysicalNumberOfRows() - 1; i++) {
|
|
|
Row row = sheet.getRow(i);
|
|
|
- JSONObject subObj = new JSONObject();
|
|
|
- subObj.put("projectId", row.getCell(1).toString());
|
|
|
- subObj.put("projectName", row.getCell(3).toString());
|
|
|
- subObj.put("groupCode", "wd");
|
|
|
- list.add(subObj);
|
|
|
+ DataFormatter dataFormatter = new DataFormatter();
|
|
|
+ String s = dataFormatter.formatCellValue(row.getCell(1));
|
|
|
+ String id = dataFormatter.formatCellValue(row.getCell(0));
|
|
|
+ sb.append("(");
|
|
|
+ sb.append("'"+id+"',");
|
|
|
+ sb.append("'"+s+"',");
|
|
|
+ sb.append("'"+row.getCell(3)+"',");
|
|
|
+ sb.append("'WD'");
|
|
|
+ sb.append("),");
|
|
|
}
|
|
|
- osw.write(JSON.toJSONString(list));
|
|
|
- osw.flush();
|
|
|
- osw.close();
|
|
|
+ String substring = sb.substring(0, sb.length() - 1);
|
|
|
+ projectAlarmRuleService.insertProject(substring);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -446,7 +459,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- public List<EquipItem> getAllEquip(String classCode,String condition){
|
|
|
+ public List<EquipItem> getAllEquip(String classCode, String condition) {
|
|
|
//查询所有项目
|
|
|
List<ProjectVO> projects = projectAlarmRuleService.getProject();
|
|
|
List<EquipItem> records = new ArrayList<>();
|