gaoyu 3 лет назад
Родитель
Сommit
e98c43f0ad
1 измененных файлов с 309 добавлено и 297 удалено
  1. 309 297
      dmp-alarm/src/main/java/com/persagy/dmp/alarm/service/AlarmRecordService.java

+ 309 - 297
dmp-alarm/src/main/java/com/persagy/dmp/alarm/service/AlarmRecordService.java

@@ -22,6 +22,9 @@ 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 lombok.extern.slf4j.Slf4j;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -30,324 +33,322 @@ import org.springframework.util.StringUtils;
 import javax.persistence.*;
 import javax.transaction.Transactional;
 import java.util.*;
-
+@Slf4j
 @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.EXPIRE.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.EXPIRE.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();
-        if (CollectionUtils.isEmpty(dataList)) {
-            return result;
-        }
+	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();
+		if (CollectionUtils.isEmpty(dataList)) {
+			return result;
+		}
 
-        // 如果需要查询日志相关的信息,需使用withColumns参数
-        Set<String> withColumns = criteria.getWithColumns();
-        boolean withLogInfo = !CollectionUtils.isEmpty(withColumns);
+		// 如果需要查询日志相关的信息,需使用withColumns参数
+		Set<String> withColumns = criteria.getWithColumns();
+		boolean withLogInfo = !CollectionUtils.isEmpty(withColumns);
 
-        Map<String, List<AlarmLog>> alarmLogListMap = new HashMap<>();
-        // 获取报警日志
-        if (withLogInfo &&
-                (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())
-                        || withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())
-                )) {
-            List<String> recordIdList = new ArrayList<>();
-            dataList.forEach(alarmRecord -> recordIdList.add(alarmRecord.getId()));
-            alarmLogListMap = alarmLogService.getAlarmLogMap(recordIdList);
-        }
+		Map<String, List<AlarmLog>> alarmLogListMap = new HashMap<>();
+		// 获取报警日志
+		if (withLogInfo && (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())
+				|| withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name()))) {
+			List<String> recordIdList = new ArrayList<>();
+			dataList.forEach(alarmRecord -> recordIdList.add(alarmRecord.getId()));
+			alarmLogListMap = alarmLogService.getAlarmLogMap(recordIdList);
+		}
 
-        List<AlarmRecordModel> alarmRecordModels = new ArrayList<>(dataList.size());
-        for (AlarmRecord entity : dataList) {
-            AlarmRecordModel model = entity.toModel();
-            alarmRecordModels.add(model);
+		List<AlarmRecordModel> alarmRecordModels = new ArrayList<>(dataList.size());
+		for (AlarmRecord entity : dataList) {
+			AlarmRecordModel model = entity.toModel();
+			alarmRecordModels.add(model);
 
-            if (!withLogInfo) {
-                continue;
-            }
-            // 如果需要日志信息
-            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);
-            }
-        }
+			if (!withLogInfo) {
+				continue;
+			}
+			// 如果需要日志信息
+			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);
+			}
+		}
 
-        result.setData(alarmRecordModels);
-        return result;
-    }
+		result.setData(alarmRecordModels);
+		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;
+	}
 
 	@PersistenceUnit
 	private EntityManagerFactory emf;
@@ -366,7 +367,8 @@ public class AlarmRecordService extends AlarmBaseService {
 
 				Query query = em.createNativeQuery(sb.toString(), AlarmRecord.class);
 				List<AlarmRecord> list = query.getResultList();
-				if(null== list || list.isEmpty()) {
+				if (null == list || list.isEmpty()) {
+					log.info("deleteData 执行完成");
 					break;
 				}
 				Map<String, AlarmRecord> map = new HashMap<>();
@@ -377,7 +379,6 @@ public class AlarmRecordService extends AlarmBaseService {
 					map.put(key, alarmRecord);
 					idDeleteList.add(alarmRecord.getId());
 				}
-				sb.setLength(0);
 				tx = em.getTransaction();
 				tx.begin();
 				for (AlarmRecord alarmRecord : map.values()) {
@@ -385,7 +386,18 @@ public class AlarmRecordService extends AlarmBaseService {
 					em.persist(alarmRecord);
 					idDeleteList.remove(alarmRecord.getId());
 				}
+				sb.setLength(0);
 				sb.append("DELETE FROM alarm_record WHERE id IN (:ids)");
+				int pageSize = 1000;
+				if (idDeleteList.size() > pageSize) {
+					while (idDeleteList.size() > pageSize) {
+						List<String> ids = idDeleteList.subList(0, pageSize);
+						query = em.createNativeQuery(sb.toString(), AlarmRecord.class);
+						query.setParameter("ids", ids);
+						query.executeUpdate();
+						idDeleteList.removeAll(ids);
+					}
+				}
 				query = em.createNativeQuery(sb.toString(), AlarmRecord.class);
 				query.setParameter("ids", idDeleteList);
 				query.executeUpdate();