Преглед на файлове

优化alarmRecord查询接口

lixing преди 3 години
родител
ревизия
efc1df8968
променени са 1 файла, в които са добавени 301 реда и са изтрити 312 реда
  1. 301 312
      dmp-alarm/src/main/java/com/persagy/dmp/alarm/service/AlarmRecordService.java

+ 301 - 312
dmp-alarm/src/main/java/com/persagy/dmp/alarm/service/AlarmRecordService.java

@@ -1,21 +1,5 @@
 package com.persagy.dmp.alarm.service;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-import javax.transaction.Transactional;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.collect.Lists;
@@ -28,12 +12,7 @@ import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.alarm.entity.AlarmLog;
 import com.persagy.dmp.alarm.entity.AlarmRecord;
 import com.persagy.dmp.alarm.entity.QAlarmRecord;
-import com.persagy.dmp.alarm.enumeration.EnumAlarmListType;
-import com.persagy.dmp.alarm.enumeration.EnumAlarmLogType;
-import com.persagy.dmp.alarm.enumeration.EnumAlarmMessageType;
-import com.persagy.dmp.alarm.enumeration.EnumAlarmRecordWithColumns;
-import com.persagy.dmp.alarm.enumeration.EnumAlarmState;
-import com.persagy.dmp.alarm.enumeration.EnumAlarmTreatState;
+import com.persagy.dmp.alarm.enumeration.*;
 import com.persagy.dmp.alarm.model.AlarmLogModel;
 import com.persagy.dmp.alarm.model.AlarmRecordModel;
 import com.persagy.dmp.alarm.model.AlarmRecordModels;
@@ -42,316 +21,326 @@ import com.persagy.dmp.alarm.util.CheckRequiredParam;
 import com.persagy.dmp.config.DmpParameterStorage;
 import com.persagy.dmp.rwd.model.DmpMessage;
 import com.querydsl.core.types.dsl.BooleanExpression;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import javax.transaction.Transactional;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class AlarmRecordService extends AlarmBaseService {
 
-	@Autowired
-	private AlarmRecordRepository alarmRecordRepository;
-	@Autowired
-	private AlarmLogService alarmLogService;
-	@Autowired
-	private CriteriaUtils criteriaUtils;
+    @Autowired
+    private AlarmRecordRepository alarmRecordRepository;
+    @Autowired
+    private AlarmLogService alarmLogService;
+    @Autowired
+    private CriteriaUtils criteriaUtils;
 
-	private List<BooleanExpression> parse(ObjectNode criteria) {
-		List<BooleanExpression> expressions = Lists.newLinkedList();
-		QAlarmRecord qAlarmRecord = QAlarmRecord.alarmRecord;
-		// 获取报警列表的类型
-		JsonNode listTypeNode = criteria.get("listType");
-		// 如果查询条件中不包含列表类型走默认的查询方法
-		if (listTypeNode == null) {
-			return null;
-		}
-		String listType = listTypeNode.textValue();
-		// 如果查询当前报警,查询报警状态为“未恢复”且“报警处理状态”为“未处理“或”处理中”中的报警;
-		if (EnumAlarmListType.CURRENT.name().equals(listType)) {
-			BooleanExpression currentAlarmExpression = qAlarmRecord.state.eq(EnumAlarmState.UN_HANDLE.getType())
-					.and(qAlarmRecord.treatState.eq(EnumAlarmTreatState.UN_HANDLE.getType())
-							.or(qAlarmRecord.treatState.eq(EnumAlarmTreatState.HANDLING.getType())));
-			expressions.add(currentAlarmExpression);
-		}
+    private List<BooleanExpression> parse(ObjectNode criteria) {
+        List<BooleanExpression> expressions = Lists.newLinkedList();
+        QAlarmRecord qAlarmRecord = QAlarmRecord.alarmRecord;
+        // 获取报警列表的类型
+        JsonNode listTypeNode = criteria.get("listType");
+        // 如果查询条件中不包含列表类型走默认的查询方法
+        if (listTypeNode == null) {
+            return null;
+        }
+        String listType = listTypeNode.textValue();
+        // 如果查询当前报警,查询报警状态为“未恢复”且“报警处理状态”为“未处理“或”处理中”中的报警;
+        if (EnumAlarmListType.CURRENT.name().equals(listType)) {
+            BooleanExpression currentAlarmExpression = qAlarmRecord.state.eq(EnumAlarmState.UN_HANDLE.getType())
+                    .and(qAlarmRecord.treatState.eq(EnumAlarmTreatState.UN_HANDLE.getType())
+                            .or(qAlarmRecord.treatState.eq(EnumAlarmTreatState.HANDLING.getType())));
+            expressions.add(currentAlarmExpression);
+        }
 
-		// 如果查询历史报警,查询报警状态为“已恢复”和”已过期”的报警,或者【报警状态等于“未恢复”且报警处理状态等于“处理完成”】的报警
-		if (EnumAlarmListType.HISTORY.name().equals(listType)) {
-			BooleanExpression historyAlarmExpression = qAlarmRecord.state.eq(EnumAlarmState.END.getType())
-					.or(qAlarmRecord.state.eq(EnumAlarmState.END.getType()))
-					.or(qAlarmRecord.treatState.eq(EnumAlarmTreatState.DONE.getType()));
-			expressions.add(historyAlarmExpression);
-		}
+        // 如果查询历史报警,查询报警状态为“已恢复”和”已过期”的报警,或者【报警状态等于“未恢复”且报警处理状态等于“处理完成”】的报警
+        if (EnumAlarmListType.HISTORY.name().equals(listType)) {
+            BooleanExpression historyAlarmExpression = qAlarmRecord.state.eq(EnumAlarmState.END.getType())
+                    .or(qAlarmRecord.state.eq(EnumAlarmState.END.getType()))
+                    .or(qAlarmRecord.treatState.eq(EnumAlarmTreatState.DONE.getType()));
+            expressions.add(historyAlarmExpression);
+        }
 
-		return expressions;
-	}
+        return expressions;
+    }
 
-	public PagedResponse<AlarmRecordModel> query(JacksonCriteria criteria) {
-		PagedResponse<AlarmRecord> resp = criteriaUtils.query(QAlarmRecord.alarmRecord, this::parse, criteria);
-		PagedResponse<AlarmRecordModel> result = new PagedResponse<>();
-		result.setCount(resp.getCount());
-		List<AlarmRecord> dataList = resp.getData();
-		// 如果需要查询日志相关的信息,需使用withColumns参数
-		Set<String> withColumns = criteria.getWithColumns();
-		if (dataList != null && dataList.size() > 0) {
-			// 获取报警记录id列表
-			List<String> recordIdList = new ArrayList<>();
-			dataList.forEach(alarmRecord -> recordIdList.add(alarmRecord.getId()));
-			if (null != withColumns && (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())
-					|| withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name()))) {
+    public PagedResponse<AlarmRecordModel> query(JacksonCriteria criteria) {
+        PagedResponse<AlarmRecord> resp = criteriaUtils.query(QAlarmRecord.alarmRecord, this::parse, criteria);
+        PagedResponse<AlarmRecordModel> result = new PagedResponse<>();
+        result.setCount(resp.getCount());
+        List<AlarmRecord> dataList = resp.getData();
+        // 如果需要查询日志相关的信息,需使用withColumns参数
+        Set<String> withColumns = criteria.getWithColumns();
+        if (dataList != null && dataList.size() > 0) {
+            // 获取报警记录id列表
+            if (null != withColumns &&
+                    (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())
+                            || withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())
+                    )) {
+				List<String> recordIdList = new ArrayList<>();
+				dataList.forEach(alarmRecord -> recordIdList.add(alarmRecord.getId()));
 				Map<String, List<AlarmLog>> alarmLogListMap = alarmLogService.getAlarmLogMap(recordIdList);
-				List<AlarmRecordModel> collect = dataList.stream().map(entity -> {
-					AlarmRecordModel model = entity.toModel();
-					List<AlarmLog> alarmLogList = new ArrayList<>();
-					if (alarmLogListMap.containsKey(model.getId())) {
-						alarmLogList = alarmLogListMap.get(model.getId());
-					}
-					if (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())) {
-						Date ignoreAlarmTime = getCreateTime(alarmLogList, EnumAlarmLogType.TREATMODE, 1);
-						model.setIgnoreTime(ignoreAlarmTime);
-					}
-					if (withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())) {
-						Date treatEndTime = getCreateTime(alarmLogList, EnumAlarmLogType.TREATSTATE, 3);
-						model.setTreatEndTime(treatEndTime);
-					}
-					return model;
-				}).collect(Collectors.toList());
-				result.setData(collect);
+                List<AlarmRecordModel> collect = dataList.stream().map(entity -> {
+                    AlarmRecordModel model = entity.toModel();
+                    List<AlarmLog> alarmLogList = new ArrayList<>();
+                    if (alarmLogListMap.containsKey(model.getId())) {
+                        alarmLogList = alarmLogListMap.get(model.getId());
+                    }
+                    if (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())) {
+                        Date ignoreAlarmTime = getCreateTime(alarmLogList, EnumAlarmLogType.TREATMODE, 1);
+                        model.setIgnoreTime(ignoreAlarmTime);
+                    }
+                    if (withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())) {
+                        Date treatEndTime = getCreateTime(alarmLogList, EnumAlarmLogType.TREATSTATE, 3);
+                        model.setTreatEndTime(treatEndTime);
+                    }
+                    return model;
+                }).collect(Collectors.toList());
+                result.setData(collect);
 
-			}
-		}
-		return result;
-	}
+            }
+        }
+        return result;
+    }
 
-	public Date getCreateTime(List<AlarmLog> alarmLogList, EnumAlarmLogType type, int after) {
-		Date createTime = null;
-		if (!CollectionUtils.isEmpty(alarmLogList)) {
-			for (AlarmLog alarmLog : alarmLogList) {
-				if (type.equals(alarmLog.getType()) && alarmLog.getAfter() == after) {
-					createTime = alarmLog.getCreateTime();
-				}
-			}
-		}
-		return createTime;
-	}
+    public Date getCreateTime(List<AlarmLog> alarmLogList, EnumAlarmLogType type, int after) {
+        Date createTime = null;
+        if (!CollectionUtils.isEmpty(alarmLogList)) {
+            for (AlarmLog alarmLog : alarmLogList) {
+                if (type.equals(alarmLog.getType()) && alarmLog.getAfter() == after) {
+                    createTime = alarmLog.getCreateTime();
+                }
+            }
+        }
+        return createTime;
+    }
 
-	@Transactional
-	public MapResponse create(AlarmRecordModel param) {
-		MapResponse response = new MapResponse();
-		AlarmParam alarmParam = prepareParam(response);
-		if (alarmParam == null) {
-			return response;
-		}
-		// 必填项校验
-		String checkResult = CheckRequiredParam.check(param, "itemCode", "objId", "level");
-		;
-		if (!StringUtils.isEmpty(checkResult)) {
-			response.setFail(checkResult);
-			return response;
-		}
+    @Transactional
+    public MapResponse create(AlarmRecordModel param) {
+        MapResponse response = new MapResponse();
+        AlarmParam alarmParam = prepareParam(response);
+        if (alarmParam == null) {
+            return response;
+        }
+        // 必填项校验
+        String checkResult = CheckRequiredParam.check(param, "itemCode", "objId", "level");
+        ;
+        if (!StringUtils.isEmpty(checkResult)) {
+            response.setFail(checkResult);
+            return response;
+        }
 
-		String id = UUID.randomUUID().toString();
-		// 如果创建时,入参包含id,则使用入参中的id。但需要先校验id是否已存在
-		if (!StringUtils.isEmpty(param.getId())) {
-			Optional<AlarmRecord> byIdResult = alarmRecordRepository.findById(param.getId());
-			if (byIdResult.isPresent()) {
-				response.setFail("已存在相同id的报警记录!创建失败!");
-				return response;
-			} else {
-				id = param.getId();
-			}
-		}
-		AlarmRecord entity = AlarmRecord.fromModel(param);
-		entity.setId(id);
-		entity.setCreateUser(alarmParam.userId);
-		if (param.getCreateTime() != null) {
-			entity.setCreateTime(param.getCreateTime());
-		} else {
-			entity.setCreateTime(new Date());
-		}
-		// 默认处理状态为未处理
-		if (entity.getTreatState() == null) {
-			entity.setTreatState(1);
-		}
-		entity.setValid(1);
-		entity.setProjectId(alarmParam.projectId);
-		entity.setGroupCode(alarmParam.groupCode);
-		alarmRecordRepository.save(entity);
-		response.add("id", entity.getId());
-		// 推送消息至mq
-		DmpMessage msg = new DmpMessage();
-		msg.setMid(UUID.randomUUID().toString());
-		msg.setType(EnumAlarmMessageType.ALARM_RECORD_CREATE.getValue());
-		msg.setGroupCode(DmpParameterStorage.getGroupCode());
-		msg.setProjectId(DmpParameterStorage.getProjectId());
-		msg.setTargetId(entity.getId());
-		msg.add("obj", JacksonMapper.toSimpleJson(entity));
-		msg.setAppId(DmpParameterStorage.getAppId());
-		msg.setSendTime(DateUtils.format(new Date()));
-		response.add(msg);
-		return response;
-	}
+        String id = UUID.randomUUID().toString();
+        // 如果创建时,入参包含id,则使用入参中的id。但需要先校验id是否已存在
+        if (!StringUtils.isEmpty(param.getId())) {
+            Optional<AlarmRecord> byIdResult = alarmRecordRepository.findById(param.getId());
+            if (byIdResult.isPresent()) {
+                response.setFail("已存在相同id的报警记录!创建失败!");
+                return response;
+            } else {
+                id = param.getId();
+            }
+        }
+        AlarmRecord entity = AlarmRecord.fromModel(param);
+        entity.setId(id);
+        entity.setCreateUser(alarmParam.userId);
+        if (param.getCreateTime() != null) {
+            entity.setCreateTime(param.getCreateTime());
+        } else {
+            entity.setCreateTime(new Date());
+        }
+        // 默认处理状态为未处理
+        if (entity.getTreatState() == null) {
+            entity.setTreatState(1);
+        }
+        entity.setValid(1);
+        entity.setProjectId(alarmParam.projectId);
+        entity.setGroupCode(alarmParam.groupCode);
+        alarmRecordRepository.save(entity);
+        response.add("id", entity.getId());
+        // 推送消息至mq
+        DmpMessage msg = new DmpMessage();
+        msg.setMid(UUID.randomUUID().toString());
+        msg.setType(EnumAlarmMessageType.ALARM_RECORD_CREATE.getValue());
+        msg.setGroupCode(DmpParameterStorage.getGroupCode());
+        msg.setProjectId(DmpParameterStorage.getProjectId());
+        msg.setTargetId(entity.getId());
+        msg.add("obj", JacksonMapper.toSimpleJson(entity));
+        msg.setAppId(DmpParameterStorage.getAppId());
+        msg.setSendTime(DateUtils.format(new Date()));
+        response.add(msg);
+        return response;
+    }
 
-	public AlarmRecord get(String id) {
-		Optional<AlarmRecord> result = alarmRecordRepository.findById(id);
-		return result.orElse(null);
-	}
+    public AlarmRecord get(String id) {
+        Optional<AlarmRecord> result = alarmRecordRepository.findById(id);
+        return result.orElse(null);
+    }
 
-	/**
-	 * @description: 初始化日志对象
-	 * @param: param 报警记录参数
-	 * @return: com.persagy.dmp.alarm.model.AlarmLogModel
-	 * @exception:
-	 * @author: lixing
-	 * @company: Persagy Technology Co.,Ltd
-	 * @since: 2020/12/8 3:07 下午
-	 * @version: V1.0
-	 */
-	private AlarmLogModel initAlarmLogModel(AlarmRecordModel param) {
-		AlarmLogModel alarmLogModel = new AlarmLogModel();
-		alarmLogModel.setRecordId(param.getId());
-		alarmLogModel.setCreateTime(new Date());
-		alarmLogModel.setCreateUser(DmpParameterStorage.getUserId());
-		alarmLogModel.setProjectId(DmpParameterStorage.getProjectId());
-		alarmLogModel.setGroupCode(DmpParameterStorage.getGroupCode());
-		return alarmLogModel;
-	}
+    /**
+     * @description: 初始化日志对象
+     * @param: param 报警记录参数
+     * @return: com.persagy.dmp.alarm.model.AlarmLogModel
+     * @exception:
+     * @author: lixing
+     * @company: Persagy Technology Co.,Ltd
+     * @since: 2020/12/8 3:07 下午
+     * @version: V1.0
+     */
+    private AlarmLogModel initAlarmLogModel(AlarmRecordModel param) {
+        AlarmLogModel alarmLogModel = new AlarmLogModel();
+        alarmLogModel.setRecordId(param.getId());
+        alarmLogModel.setCreateTime(new Date());
+        alarmLogModel.setCreateUser(DmpParameterStorage.getUserId());
+        alarmLogModel.setProjectId(DmpParameterStorage.getProjectId());
+        alarmLogModel.setGroupCode(DmpParameterStorage.getGroupCode());
+        return alarmLogModel;
+    }
 
-	@Transactional
-	public MapResponse update(AlarmRecordModel param) {
-		MapResponse response = new MapResponse();
-		AlarmRecord alarmRecord = get(param.getId());
-		if (alarmRecord == null) {
-			response.setFail("无法获取到要更新的数据!");
-			return response;
-		}
-		AlarmParam alarmParam = prepareParam(response);
-		if (alarmParam == null) {
-			return response;
-		}
-		if (param.getName() != null && !param.getName().isEmpty()) {
-			alarmRecord.setName(param.getName());
-		}
-		if (param.getRemark() != null && !param.getRemark().isEmpty()) {
-			alarmRecord.setRemark(param.getRemark());
-		}
-		// 状态修改记录日志
-		if (param.getState() != null) {
-			if (!param.getState().equals(alarmRecord.getState())) {
-				AlarmLogModel alarmLogModel = initAlarmLogModel(param);
-				alarmLogModel.setType(EnumAlarmLogType.ALARMSTATE);
-				alarmLogModel.setNature(alarmRecord.getNature());
-				alarmLogModel.setBefore(alarmRecord.getState());
-				alarmLogModel.setAfter(param.getState());
-				alarmLogService.create(alarmLogModel);
-			}
-			alarmRecord.setState(param.getState());
-		}
-		if (param.getNature() != null) {
-			alarmRecord.setNature(param.getNature());
-		}
-		// 处理方式修改记录日志
-		if (param.getTreatMode() != null) {
-			if (!param.getTreatMode().equals(alarmRecord.getTreatMode())) {
-				AlarmLogModel alarmLogModel = initAlarmLogModel(param);
-				alarmLogModel.setType(EnumAlarmLogType.TREATMODE);
-				alarmLogModel.setNature(alarmRecord.getNature());
-				alarmLogModel.setBefore(alarmRecord.getTreatMode());
-				alarmLogModel.setAfter(param.getTreatMode());
-				alarmLogService.create(alarmLogModel);
-			}
-			alarmRecord.setTreatMode(param.getTreatMode());
-		}
-		// 处理状态更改记录日志
-		if (param.getTreatState() != null) {
-			if (!param.getTreatState().equals(alarmRecord.getTreatState())) {
-				AlarmLogModel alarmLogModel = initAlarmLogModel(param);
-				alarmLogModel.setType(EnumAlarmLogType.TREATSTATE);
-				alarmLogModel.setNature(alarmRecord.getNature());
-				alarmLogModel.setBefore(alarmRecord.getTreatState());
-				alarmLogModel.setAfter(param.getTreatState());
-				alarmLogService.create(alarmLogModel);
-			}
-			alarmRecord.setTreatState(param.getTreatState());
-		}
+    @Transactional
+    public MapResponse update(AlarmRecordModel param) {
+        MapResponse response = new MapResponse();
+        AlarmRecord alarmRecord = get(param.getId());
+        if (alarmRecord == null) {
+            response.setFail("无法获取到要更新的数据!");
+            return response;
+        }
+        AlarmParam alarmParam = prepareParam(response);
+        if (alarmParam == null) {
+            return response;
+        }
+        if (param.getName() != null && !param.getName().isEmpty()) {
+            alarmRecord.setName(param.getName());
+        }
+        if (param.getRemark() != null && !param.getRemark().isEmpty()) {
+            alarmRecord.setRemark(param.getRemark());
+        }
+        // 状态修改记录日志
+        if (param.getState() != null) {
+            if (!param.getState().equals(alarmRecord.getState())) {
+                AlarmLogModel alarmLogModel = initAlarmLogModel(param);
+                alarmLogModel.setType(EnumAlarmLogType.ALARMSTATE);
+                alarmLogModel.setNature(alarmRecord.getNature());
+                alarmLogModel.setBefore(alarmRecord.getState());
+                alarmLogModel.setAfter(param.getState());
+                alarmLogService.create(alarmLogModel);
+            }
+            alarmRecord.setState(param.getState());
+        }
+        if (param.getNature() != null) {
+            alarmRecord.setNature(param.getNature());
+        }
+        // 处理方式修改记录日志
+        if (param.getTreatMode() != null) {
+            if (!param.getTreatMode().equals(alarmRecord.getTreatMode())) {
+                AlarmLogModel alarmLogModel = initAlarmLogModel(param);
+                alarmLogModel.setType(EnumAlarmLogType.TREATMODE);
+                alarmLogModel.setNature(alarmRecord.getNature());
+                alarmLogModel.setBefore(alarmRecord.getTreatMode());
+                alarmLogModel.setAfter(param.getTreatMode());
+                alarmLogService.create(alarmLogModel);
+            }
+            alarmRecord.setTreatMode(param.getTreatMode());
+        }
+        // 处理状态更改记录日志
+        if (param.getTreatState() != null) {
+            if (!param.getTreatState().equals(alarmRecord.getTreatState())) {
+                AlarmLogModel alarmLogModel = initAlarmLogModel(param);
+                alarmLogModel.setType(EnumAlarmLogType.TREATSTATE);
+                alarmLogModel.setNature(alarmRecord.getNature());
+                alarmLogModel.setBefore(alarmRecord.getTreatState());
+                alarmLogModel.setAfter(param.getTreatState());
+                alarmLogService.create(alarmLogModel);
+            }
+            alarmRecord.setTreatState(param.getTreatState());
+        }
 
-		// 恢复值
-		if (param.getEndInfo() != null) {
-			alarmRecord.setEndInfo(param.getEndInfo());
-		}
-		// 恢复时间
-		if (param.getEndTime() != null) {
-			alarmRecord.setEndTime(param.getEndTime());
-		}
-		// 工单id
-		if (param.getOrderId() != null) {
-			alarmRecord.setOrderId(param.getOrderId());
-		}
-		// 工单状态
-		if (param.getOrderState() != null) {
-			alarmRecord.setOrderState(param.getOrderState());
-		}
-		// 补充说明
-		if (param.getSupplement() != null) {
-			alarmRecord.setSupplement(param.getSupplement());
-		}
-		// 报警等级
-		if (!StringUtils.isEmpty(param.getLevel())) {
-			alarmRecord.setLevel(param.getLevel());
-		}
-		alarmRecord.setUpdateUser(alarmParam.userId);
-		alarmRecord.setUpdateTime(new Date());
-		alarmRecordRepository.save(alarmRecord);
-		response.add("id", alarmRecord.getId());
-		// 推送消息至mq
-		DmpMessage msg = new DmpMessage();
-		msg.setMid(UUID.randomUUID().toString());
-		msg.setType(EnumAlarmMessageType.ALARM_RECORD_UPDATE.getValue());
-		msg.setGroupCode(DmpParameterStorage.getGroupCode());
-		msg.setProjectId(DmpParameterStorage.getProjectId());
-		msg.setTargetId(alarmRecord.getId());
-		msg.add("obj", JacksonMapper.toSimpleJson(alarmRecord));
-		// msg.add("obj", alarmRecord);
-		msg.setAppId(DmpParameterStorage.getAppId());
-		msg.setSendTime(DateUtils.format(new Date()));
-		response.add(msg);
-		return response;
-	}
+        // 恢复值
+        if (param.getEndInfo() != null) {
+            alarmRecord.setEndInfo(param.getEndInfo());
+        }
+        // 恢复时间
+        if (param.getEndTime() != null) {
+            alarmRecord.setEndTime(param.getEndTime());
+        }
+        // 工单id
+        if (param.getOrderId() != null) {
+            alarmRecord.setOrderId(param.getOrderId());
+        }
+        // 工单状态
+        if (param.getOrderState() != null) {
+            alarmRecord.setOrderState(param.getOrderState());
+        }
+        // 补充说明
+        if (param.getSupplement() != null) {
+            alarmRecord.setSupplement(param.getSupplement());
+        }
+        // 报警等级
+        if (!StringUtils.isEmpty(param.getLevel())) {
+            alarmRecord.setLevel(param.getLevel());
+        }
+        alarmRecord.setUpdateUser(alarmParam.userId);
+        alarmRecord.setUpdateTime(new Date());
+        alarmRecordRepository.save(alarmRecord);
+        response.add("id", alarmRecord.getId());
+        // 推送消息至mq
+        DmpMessage msg = new DmpMessage();
+        msg.setMid(UUID.randomUUID().toString());
+        msg.setType(EnumAlarmMessageType.ALARM_RECORD_UPDATE.getValue());
+        msg.setGroupCode(DmpParameterStorage.getGroupCode());
+        msg.setProjectId(DmpParameterStorage.getProjectId());
+        msg.setTargetId(alarmRecord.getId());
+        msg.add("obj", JacksonMapper.toSimpleJson(alarmRecord));
+        // msg.add("obj", alarmRecord);
+        msg.setAppId(DmpParameterStorage.getAppId());
+        msg.setSendTime(DateUtils.format(new Date()));
+        response.add(msg);
+        return response;
+    }
 
-	/**
-	 * 批量更新报警记录
-	 *
-	 * @param param 批量更新参数AlarmRecordModels
-	 * @return 是否更新成功
-	 * @author lixing
-	 * @version V1.0 2021/3/20 11:09 上午
-	 */
-	@Transactional
-	public MapResponse batchUpdate(AlarmRecordModels param) {
-		MapResponse response = new MapResponse();
+    /**
+     * 批量更新报警记录
+     *
+     * @param param 批量更新参数AlarmRecordModels
+     * @return 是否更新成功
+     * @author lixing
+     * @version V1.0 2021/3/20 11:09 上午
+     */
+    @Transactional
+    public MapResponse batchUpdate(AlarmRecordModels param) {
+        MapResponse response = new MapResponse();
 
-		List<AlarmRecordModel> alarmRecordModelList = param.getAlarmRecordModels();
-		if (CollectionUtils.isEmpty(alarmRecordModelList)) {
-			response.setFail("批量更新报警记录,没有传入需要更新的对象");
-			return response;
-		}
+        List<AlarmRecordModel> alarmRecordModelList = param.getAlarmRecordModels();
+        if (CollectionUtils.isEmpty(alarmRecordModelList)) {
+            response.setFail("批量更新报警记录,没有传入需要更新的对象");
+            return response;
+        }
 
-		// 一次最多更新200条数据
-		if (alarmRecordModelList.size() > 200) {
-			response.setFail("一次最多更新200条数据");
-			return response;
-		}
+        // 一次最多更新200条数据
+        if (alarmRecordModelList.size() > 200) {
+            response.setFail("一次最多更新200条数据");
+            return response;
+        }
 
-		List<DmpMessage> msgList = new ArrayList<>();
-		alarmRecordModelList.forEach(alarmRecordModel -> {
-			MapResponse updateResponse = update(alarmRecordModel);
-			msgList.addAll(updateResponse.getMessageList());
-		});
-		response.add(msgList);
-		return response;
-	}
+        List<DmpMessage> msgList = new ArrayList<>();
+        alarmRecordModelList.forEach(alarmRecordModel -> {
+            MapResponse updateResponse = update(alarmRecordModel);
+            msgList.addAll(updateResponse.getMessageList());
+        });
+        response.add(msgList);
+        return response;
+    }
 
-	// @Transactional
-	// public MapResponse delete(AlarmRecordModel param) {
-	// MapResponse response = new MapResponse();
-	// // TODO
-	// alarmRecordRepository.deleteById(param.getId());
-	// return response;
-	// }
+    // @Transactional
+    // public MapResponse delete(AlarmRecordModel param) {
+    // MapResponse response = new MapResponse();
+    // // TODO
+    // alarmRecordRepository.deleteById(param.getId());
+    // return response;
+    // }
 }