Browse Source

修改集团报警相关

xujiaheng 3 years ago
parent
commit
17227d6af5

+ 0 - 1
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/controller/GroupAlarmRuleController.java

@@ -158,7 +158,6 @@ public class GroupAlarmRuleController {
 
     @ApiOperation(value = "读取表格")
     @PostMapping("/readExcel")
-    @ApiIgnore
     public void readExcel() throws Exception {
         groupAlarmRuleService.readExcel();
 

+ 35 - 22
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/service/impl/GroupAlarmRuleServiceImpl.java

@@ -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<>();

+ 5 - 0
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/dao/ProjectAlarmRuleMapper.java

@@ -4,6 +4,7 @@ import com.persagy.apm.alarmservice.project.alarmrule.model.ProjectAlarmRule;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.persagy.apm.alarmservice.project.alarmrule.model.dto.PageQueryProjectAlarmRuleDTO;
 import com.persagy.apm.alarmservice.project.alarmrule.model.vo.ProjectAlarmRuleListItemVO;
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -19,4 +20,8 @@ public interface ProjectAlarmRuleMapper extends BaseMapper<ProjectAlarmRule>{
     int queryCount(PageQueryProjectAlarmRuleDTO pageQueryProjectAlarmRuleDTO);
 
     List<ProjectAlarmRuleListItemVO> queryList(PageQueryProjectAlarmRuleDTO pageQueryProjectAlarmRuleDTO);
+
+    List<ProjectVO> getProject();
+
+    void insertProject(String substring);
 }

+ 1 - 1
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/model/dto/UpdateProjectAlarmRuleDTO.java

@@ -45,7 +45,7 @@ public class UpdateProjectAlarmRuleDTO {
 
     @ApiModelProperty(value = "报警对象ids", required = true)
     @NotNull(message = "报警对象不能为空") // todo 更新校验规则
-    private List<UpdateAlarmItemDTO> addRelationList;
+    private List<UpdateAlarmItemDTO> addEquipList;
 
     @ApiModelProperty(value = "报警规则", required = true)
     @NotNull(message = "报警规则不能为空") // todo 更新校验规则

+ 2 - 0
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/service/IProjectAlarmRuleService.java

@@ -83,4 +83,6 @@ public interface IProjectAlarmRuleService  {
     List<ProjectVO> getProject();
 
     List<String> queryAlarmRule(QueryRuleObjRelDTO queryRuleObjRelDTO);
+
+    void insertProject(String substring);
 }

+ 13 - 17
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/service/impl/ProjectAlarmRuleServiceImpl.java

@@ -81,6 +81,8 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
     private GroupManagementServiceImpl groupManagementService;
     @Autowired
     private AlarmConfigServiceImpl alarmConfigService;
+    @Autowired
+    private ProjectAlarmRuleMapper mapper;
 
     /**
      * 创建项目报警规则
@@ -235,7 +237,7 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
         //删除报警对象关联关系
         projectAlarmRuleObjRelService.deleteRelation(updateProjectAlarmRuleDTO.getId());
         //新增关联关系
-        List<UpdateAlarmItemDTO> addRelationList = updateProjectAlarmRuleDTO.getAddRelationList();
+        List<UpdateAlarmItemDTO> addRelationList = updateProjectAlarmRuleDTO.getAddEquipList();
         String projectId = updateProjectAlarmRuleDTO.getProjectId();
         String id = updateProjectAlarmRuleDTO.getId();
         List<AddProjectAlarmRuleObjRelDTO> addRelations = convert2AddProjectAlarmRuleObjRelDTO(addRelationList, id, projectId);
@@ -536,22 +538,6 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
         return addRelationList;
     }
 
-
-    @Override
-    public List<ProjectVO> getProject() {
-        InputStream inputStream = ProjectAlarmRuleServiceImpl.class
-                .getResourceAsStream(File.separator + "json" + File.separator + "Project.json");
-        if (inputStream == null) {
-            return null;
-        }
-        try {
-            String str = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
-            return JSONArray.parseArray(str, ProjectVO.class);
-        } catch (IOException ioe) {
-            throw new RuntimeException("json文件有误", ioe);
-        }
-    }
-
     @Override
     public List<String> queryAlarmRule(QueryRuleObjRelDTO queryRuleObjRelDTO) {
         QueryWrapper<ProjectAlarmRule> queryWrapper = new QueryWrapper<>();
@@ -562,4 +548,14 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
         List<String> idList = list.stream().map(ProjectAlarmRule::getId).collect(Collectors.toList());
         return idList;
     }
+
+    @Override
+    public List<ProjectVO> getProject() {
+        return mapper.getProject();
+    }
+
+    @Override
+    public void insertProject(String substring) {
+        mapper.insertProject(substring);
+    }
 }

File diff suppressed because it is too large
+ 1 - 1
src/main/resources/db/init/data.sql


File diff suppressed because it is too large
+ 1 - 1
src/main/resources/db/init/table.sql


+ 0 - 1
src/main/resources/json/Project.json

@@ -1 +0,0 @@
-[{"projectName":"衡阳蒸湘万达广场","projectId":"Pj1101060001","groupCode":"WD"}]

BIN
src/main/resources/json/Project.xlsx


+ 7 - 0
src/main/resources/mapper/ProjectAlarmRuleMapper.xml

@@ -27,6 +27,9 @@
         </collection>
 
     </resultMap>
+    <insert id="insertProject">
+        INSERT INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code) VALUES ${substring}
+    </insert>
 
     <select id="queryCount" resultType="java.lang.Integer">
         select count(*)
@@ -66,5 +69,9 @@
         order by a.creation_time
         limit #{startIndex},#{size}
     </select>
+    <select id="getProject"
+            resultType="com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO">
+        select project_id as projectId,project_name as projectName,group_code as groupCode from alarm_project
+    </select>
 </mapper>