Переглянути джерело

baseService增加baseMapper参数,解决批量操作异常

lixing 3 роки тому
батько
коміт
d580e9d744

+ 2 - 1
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmCommentServiceImpl.java

@@ -5,6 +5,7 @@ import java.util.UUID;
 
 import javax.annotation.Resource;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
@@ -28,7 +29,7 @@ import lombok.extern.slf4j.Slf4j;
  */
 @Service("dmpAlarmCommentService")
 @Slf4j
-public class AlarmCommentServiceImpl extends BaseServiceImpl<AlarmComment> implements IAlarmCommentService {
+public class AlarmCommentServiceImpl extends BaseServiceImpl<BaseMapper<AlarmComment>, AlarmComment> implements IAlarmCommentService {
     @Resource
     private CriteriaUtils criteriaUtils;
 

+ 13 - 22
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmConfigServiceImpl.java

@@ -1,24 +1,9 @@
 package com.persagy.apm.dmpalarm.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.google.common.collect.Lists;
 import com.persagy.apm.dmpalarm.config.DmpParameterStorage;
 import com.persagy.apm.dmpalarm.criteria.CriteriaUtils;
@@ -38,9 +23,15 @@ import com.persagy.apm.dmpalarm.utils.DatePatternStyle;
 import com.persagy.apm.dmpalarm.web.BaseResponse;
 import com.persagy.apm.dmpalarm.web.MapResponse;
 import com.persagy.apm.dmpalarm.web.PagedResponse;
-
-import cn.hutool.core.date.DateUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 报警定义(AlarmConfig) service层
@@ -50,10 +41,10 @@ import lombok.extern.slf4j.Slf4j;
  */
 @Service("dmpAlarmConfigService")
 @Slf4j
-public class AlarmConfigServiceImpl extends BaseServiceImpl<AlarmConfig> implements IAlarmConfigService {
+public class AlarmConfigServiceImpl extends BaseServiceImpl<BaseMapper<AlarmConfig>, AlarmConfig> implements IAlarmConfigService {
     @Resource
     private MessageProcesser messageProcesser;
-    @Resource(name="dmpAlarmItemService")
+    @Resource(name = "dmpAlarmItemService")
     private IAlarmItemService alarmItemService;
     @Resource
     private IAlarmTargetService alarmTargetService;
@@ -80,7 +71,7 @@ public class AlarmConfigServiceImpl extends BaseServiceImpl<AlarmConfig> impleme
      * @version: V1.0
      */
     @SuppressWarnings("rawtypes")
-	@Transactional
+    @Transactional
     public BaseResponse createOnAddObj(String objId, String classCode, String projectId) {
         BaseResponse response = new BaseResponse();
         /* 查询根据对象类型查询对应的报警匹配条件 */

+ 2 - 1
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmItemServiceImpl.java

@@ -10,6 +10,7 @@ import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -39,7 +40,7 @@ import lombok.extern.slf4j.Slf4j;
  */
 @Service("dmpAlarmItemService")
 @Slf4j
-public class AlarmItemServiceImpl extends BaseServiceImpl<AlarmItem>
+public class AlarmItemServiceImpl extends BaseServiceImpl<BaseMapper<AlarmItem>, AlarmItem>
         implements IAlarmItemService {
     @Resource
     private CriteriaUtils criteriaUtils;

+ 3 - 1
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmLogServiceImpl.java

@@ -7,6 +7,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.persagy.apm.dmpalarm.model.AlarmItem;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -29,7 +31,7 @@ import lombok.extern.slf4j.Slf4j;
  */
 @Slf4j
 @Service
-public class AlarmLogServiceImpl extends BaseServiceImpl<AlarmLog> implements IAlarmLogService {
+public class AlarmLogServiceImpl extends BaseServiceImpl<BaseMapper<AlarmLog>, AlarmLog> implements IAlarmLogService {
 
     @Override
     @Transactional

+ 317 - 330
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmRecordServiceImpl.java

@@ -1,31 +1,12 @@
 package com.persagy.apm.dmpalarm.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.UUID;
-
-import javax.annotation.Resource;
-
-import org.apache.commons.lang.StringUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.persagy.apm.dmpalarm.config.DmpParameterStorage;
 import com.persagy.apm.dmpalarm.criteria.JsonCriteria;
-import com.persagy.apm.dmpalarm.enumeration.AlarmLogType;
-import com.persagy.apm.dmpalarm.enumeration.EnumAlarmListType;
-import com.persagy.apm.dmpalarm.enumeration.EnumAlarmMessageType;
-import com.persagy.apm.dmpalarm.enumeration.EnumAlarmRecordWithColumns;
-import com.persagy.apm.dmpalarm.enumeration.EnumAlarmState;
-import com.persagy.apm.dmpalarm.enumeration.EnumAlarmTreatState;
+import com.persagy.apm.dmpalarm.enumeration.*;
 import com.persagy.apm.dmpalarm.json.JacksonMapper;
 import com.persagy.apm.dmpalarm.model.AlarmLog;
 import com.persagy.apm.dmpalarm.model.AlarmRecord;
@@ -37,9 +18,15 @@ import com.persagy.apm.dmpalarm.utils.CheckRequiredParam;
 import com.persagy.apm.dmpalarm.utils.DatePatternStyle;
 import com.persagy.apm.dmpalarm.web.MapResponse;
 import com.persagy.apm.dmpalarm.web.PagedResponse;
-
-import cn.hutool.core.date.DateUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.Map.Entry;
 
 /**
  * 报警记录(AlarmRecord) service层
@@ -49,328 +36,328 @@ import lombok.extern.slf4j.Slf4j;
  */
 @Service("dmpAlarmRecordService")
 @Slf4j
-public class AlarmRecordServiceImpl extends BaseServiceImpl<AlarmRecord> implements IAlarmRecordService {
+public class AlarmRecordServiceImpl extends BaseServiceImpl<BaseMapper<AlarmRecord>, AlarmRecord> implements IAlarmRecordService {
 
-	@Resource
-	private IAlarmLogService alarmLogService;
-	@Resource
-	private IShardingService shardingService;
+    @Resource
+    private IAlarmLogService alarmLogService;
+    @Resource
+    private IShardingService shardingService;
 
-	@Override
-	public PagedResponse<AlarmRecord> query(JsonCriteria jsonCriteria) {
-		try {
-			QueryWrapper<AlarmRecord> queryWrapper = criteriaUtils.handleAlarmConditions(jsonCriteria,
-					AlarmRecord.class);
-			this.addAlarmQueryCondition(jsonCriteria.getCriteria(), queryWrapper);
-			JSONObject criteria = jsonCriteria.getCriteria();
-			JSONObject triggerTimeJson = criteria.getJSONObject("triggerTime");
-			Date startTime = null;
-			Date endTime = null;
-			if (null != triggerTimeJson && !triggerTimeJson.isEmpty()) {
-				String gt = triggerTimeJson.getString("$gt");
-				gt = StringUtils.isNotBlank(gt) ? gt : triggerTimeJson.getString("$gte");
-				if (StringUtils.isNotBlank(gt)) {
-					startTime = DateUtil.parse(gt);
-				}
-				String lt = triggerTimeJson.getString("$lt");
-				lt = StringUtils.isNotBlank(lt) ? lt : triggerTimeJson.getString("$lte");
-				if (StringUtils.isNotBlank(lt)) {
-					endTime = DateUtil.parse(lt);
-				}
-			}
-			JSONObject supplementJsonObject = jsonCriteria.getCriteria().getJSONObject("supplement");
-			if(null!=supplementJsonObject && !supplementJsonObject.isEmpty()) {
-				 for (Entry<String, Object> entry : supplementJsonObject.entrySet()) {
-					 queryWrapper.eq("supplement ->'$."+entry.getKey()+"'", entry.getValue());
-				}
-			}
-			PagedResponse<AlarmRecord> resp = shardingService.selectShardingPageList(AlarmRecord.class, queryWrapper,
-					jsonCriteria.getPage(), jsonCriteria.getSize(), startTime, endTime);
-			PagedResponse<AlarmRecord> resultAlarmRecordList = new PagedResponse<>();
-			resultAlarmRecordList.setCount(resp.getCount());
-			List<AlarmRecord> dataList = resp.getData();
-			if (CollectionUtils.isEmpty(dataList)) {
-				return resultAlarmRecordList;
-			}
+    @Override
+    public PagedResponse<AlarmRecord> query(JsonCriteria jsonCriteria) {
+        try {
+            QueryWrapper<AlarmRecord> queryWrapper = criteriaUtils.handleAlarmConditions(jsonCriteria,
+                    AlarmRecord.class);
+            this.addAlarmQueryCondition(jsonCriteria.getCriteria(), queryWrapper);
+            JSONObject criteria = jsonCriteria.getCriteria();
+            JSONObject triggerTimeJson = criteria.getJSONObject("triggerTime");
+            Date startTime = null;
+            Date endTime = null;
+            if (null != triggerTimeJson && !triggerTimeJson.isEmpty()) {
+                String gt = triggerTimeJson.getString("$gt");
+                gt = StringUtils.isNotBlank(gt) ? gt : triggerTimeJson.getString("$gte");
+                if (StringUtils.isNotBlank(gt)) {
+                    startTime = DateUtil.parse(gt);
+                }
+                String lt = triggerTimeJson.getString("$lt");
+                lt = StringUtils.isNotBlank(lt) ? lt : triggerTimeJson.getString("$lte");
+                if (StringUtils.isNotBlank(lt)) {
+                    endTime = DateUtil.parse(lt);
+                }
+            }
+            JSONObject supplementJsonObject = jsonCriteria.getCriteria().getJSONObject("supplement");
+            if (null != supplementJsonObject && !supplementJsonObject.isEmpty()) {
+                for (Entry<String, Object> entry : supplementJsonObject.entrySet()) {
+                    queryWrapper.eq("supplement ->'$." + entry.getKey() + "'", entry.getValue());
+                }
+            }
+            PagedResponse<AlarmRecord> resp = shardingService.selectShardingPageList(AlarmRecord.class, queryWrapper,
+                    jsonCriteria.getPage(), jsonCriteria.getSize(), startTime, endTime);
+            PagedResponse<AlarmRecord> resultAlarmRecordList = new PagedResponse<>();
+            resultAlarmRecordList.setCount(resp.getCount());
+            List<AlarmRecord> dataList = resp.getData();
+            if (CollectionUtils.isEmpty(dataList)) {
+                return resultAlarmRecordList;
+            }
 
-			// 如果需要查询日志相关的信息,需使用withColumns参数
-			Set<String> withColumns = jsonCriteria.getWithColumns();
-			boolean withLogInfo = !CollectionUtils.isEmpty(withColumns);
+            // 如果需要查询日志相关的信息,需使用withColumns参数
+            Set<String> withColumns = jsonCriteria.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<AlarmRecord> alarmRecordModels = new ArrayList<>(dataList.size());
-			for (AlarmRecord entity : dataList) {
-				alarmRecordModels.add(entity);
+            List<AlarmRecord> alarmRecordModels = new ArrayList<>(dataList.size());
+            for (AlarmRecord entity : dataList) {
+                alarmRecordModels.add(entity);
 
-				if (!withLogInfo) {
-					continue;
-				}
-				// 如果需要日志信息
-				List<AlarmLog> alarmLogList = new ArrayList<>();
-				if (alarmLogListMap.containsKey(entity.getId())) {
-					alarmLogList = alarmLogListMap.get(entity.getId());
-				}
-				if (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())) {
-					Date ignoreAlarmTime = getCreateTime(alarmLogList, AlarmLogType.TREATMODE, 1);
-					entity.setIgnoreTime(ignoreAlarmTime);
-				}
-				if (withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())) {
-					Date treatEndTime = getCreateTime(alarmLogList, AlarmLogType.TREATSTATE, 3);
-					entity.setTreatEndTime(treatEndTime);
-				}
-			}
-			resultAlarmRecordList.setData(alarmRecordModels);
-			return resultAlarmRecordList;
-		} catch (Exception e) {
-			log.error("alarmRecord query page error JsonCriteria is {}", jsonCriteria.toString(), e);
-		}
-		return new PagedResponse<>();
-	}
+                if (!withLogInfo) {
+                    continue;
+                }
+                // 如果需要日志信息
+                List<AlarmLog> alarmLogList = new ArrayList<>();
+                if (alarmLogListMap.containsKey(entity.getId())) {
+                    alarmLogList = alarmLogListMap.get(entity.getId());
+                }
+                if (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())) {
+                    Date ignoreAlarmTime = getCreateTime(alarmLogList, AlarmLogType.TREATMODE, 1);
+                    entity.setIgnoreTime(ignoreAlarmTime);
+                }
+                if (withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())) {
+                    Date treatEndTime = getCreateTime(alarmLogList, AlarmLogType.TREATSTATE, 3);
+                    entity.setTreatEndTime(treatEndTime);
+                }
+            }
+            resultAlarmRecordList.setData(alarmRecordModels);
+            return resultAlarmRecordList;
+        } catch (Exception e) {
+            log.error("alarmRecord query page error JsonCriteria is {}", jsonCriteria.toString(), e);
+        }
+        return new PagedResponse<>();
+    }
 
-	public Date getCreateTime(List<AlarmLog> alarmLogList, String 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, String 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;
+    }
 
-	/**
-	 * 添加查询报警条件 CURRENT 当前报警 HISTORY 历史报警
-	 *
-	 * @param <T>           entity object
-	 * @param criteria      JSONObject
-	 * @param queryWrappers query alarm criteria
-	 */
-	private <T> void addAlarmQueryCondition(JSONObject criteria, QueryWrapper<T> queryWrappers) {
-		String listType = criteria.getString("listType");
-		if (EnumAlarmListType.CURRENT.name().equals(listType)) {
-			queryWrappers.eq(AlarmRecord.PROP_ALARM_STATE, 0);
-		}
-		if (EnumAlarmListType.HISTORY.name().equals(listType)) {
-			queryWrappers.eq(AlarmRecord.PROP_ALARM_STATE, 1);
-		}
-	}
+    /**
+     * 添加查询报警条件 CURRENT 当前报警 HISTORY 历史报警
+     *
+     * @param <T>           entity object
+     * @param criteria      JSONObject
+     * @param queryWrappers query alarm criteria
+     */
+    private <T> void addAlarmQueryCondition(JSONObject criteria, QueryWrapper<T> queryWrappers) {
+        String listType = criteria.getString("listType");
+        if (EnumAlarmListType.CURRENT.name().equals(listType)) {
+            queryWrappers.eq(AlarmRecord.PROP_ALARM_STATE, 0);
+        }
+        if (EnumAlarmListType.HISTORY.name().equals(listType)) {
+            queryWrappers.eq(AlarmRecord.PROP_ALARM_STATE, 1);
+        }
+    }
 
-	@Override
-	@Transactional
-	public MapResponse create(AlarmRecord entity) {
-		MapResponse response = new MapResponse();
-		AlarmParam alarmParam = prepareParam(response);
-		if (alarmParam == null) {
-			return response;
-		}
-		// 必填项校验
-		String checkResult = CheckRequiredParam.check(entity, "itemCode", "objId", "level");
-		if (!StringUtils.isEmpty(checkResult)) {
-			response.setFail(checkResult);
-			return response;
-		}
-		String id = UUID.randomUUID().toString();
-		// 如果创建时,入参包含id,则使用入参中的id。但需要先校验id是否已存在
-		if (!StringUtils.isEmpty(entity.getId())) {
-			AlarmRecord alarmRecord = shardingService.getById(entity.getClass(), id);
-			if (null != alarmRecord) {
-				response.setFail("已存在相同id的报警记录!创建失败!");
-				return response;
-			} else {
-				id = entity.getId();
-			}
-		}
-		entity.setId(id);
-		entity.setCreateUser(alarmParam.userId);
-		if (entity.getCreateTime() != null) {
-			entity.setCreateTime(entity.getCreateTime());
-		} else {
-			entity.setCreateTime(new Date());
-		}
-		// 默认处理状态为未处理
-		if (entity.getTreatState() == null) {
-			entity.setTreatState(1);
-		}
-		entity.setValid(1);
-		entity.setProjectId(alarmParam.projectId);
-		entity.setGroupCode(alarmParam.groupCode);
-		if (EnumAlarmState.UN_HANDLE.getType().equals(entity.getState())
-				&& (EnumAlarmTreatState.UN_HANDLE.getType().equals(entity.getTreatState())
-						|| EnumAlarmTreatState.HANDLING.getType().equals(entity.getTreatState()))) {
-			entity.setAlarmState(0);
-		}
-		if (EnumAlarmState.END.getType().equals(entity.getState())
-				|| EnumAlarmState.EXPIRE.getType().equals(entity.getState())
-				|| EnumAlarmTreatState.DONE.getType().equals(entity.getTreatState())) {
-			entity.setAlarmState(1);
-		}
-		shardingService.save(entity, entity.getTriggerTime());
-		response.add("id", entity.getId());
-		// 推送消息至mq
-		DmpMessage msg = new DmpMessage();
-		msg.setMid(UUID.randomUUID().toString());
-		msg.setType(EnumAlarmMessageType.ALARM_RECORD_CREATE.getValue());
-		return getMapResponse(entity, response, msg);
-	}
+    @Override
+    @Transactional
+    public MapResponse create(AlarmRecord entity) {
+        MapResponse response = new MapResponse();
+        AlarmParam alarmParam = prepareParam(response);
+        if (alarmParam == null) {
+            return response;
+        }
+        // 必填项校验
+        String checkResult = CheckRequiredParam.check(entity, "itemCode", "objId", "level");
+        if (!StringUtils.isEmpty(checkResult)) {
+            response.setFail(checkResult);
+            return response;
+        }
+        String id = UUID.randomUUID().toString();
+        // 如果创建时,入参包含id,则使用入参中的id。但需要先校验id是否已存在
+        if (!StringUtils.isEmpty(entity.getId())) {
+            AlarmRecord alarmRecord = shardingService.getById(entity.getClass(), id);
+            if (null != alarmRecord) {
+                response.setFail("已存在相同id的报警记录!创建失败!");
+                return response;
+            } else {
+                id = entity.getId();
+            }
+        }
+        entity.setId(id);
+        entity.setCreateUser(alarmParam.userId);
+        if (entity.getCreateTime() != null) {
+            entity.setCreateTime(entity.getCreateTime());
+        } else {
+            entity.setCreateTime(new Date());
+        }
+        // 默认处理状态为未处理
+        if (entity.getTreatState() == null) {
+            entity.setTreatState(1);
+        }
+        entity.setValid(1);
+        entity.setProjectId(alarmParam.projectId);
+        entity.setGroupCode(alarmParam.groupCode);
+        if (EnumAlarmState.UN_HANDLE.getType().equals(entity.getState())
+                && (EnumAlarmTreatState.UN_HANDLE.getType().equals(entity.getTreatState())
+                || EnumAlarmTreatState.HANDLING.getType().equals(entity.getTreatState()))) {
+            entity.setAlarmState(0);
+        }
+        if (EnumAlarmState.END.getType().equals(entity.getState())
+                || EnumAlarmState.EXPIRE.getType().equals(entity.getState())
+                || EnumAlarmTreatState.DONE.getType().equals(entity.getTreatState())) {
+            entity.setAlarmState(1);
+        }
+        shardingService.save(entity, entity.getTriggerTime());
+        response.add("id", entity.getId());
+        // 推送消息至mq
+        DmpMessage msg = new DmpMessage();
+        msg.setMid(UUID.randomUUID().toString());
+        msg.setType(EnumAlarmMessageType.ALARM_RECORD_CREATE.getValue());
+        return getMapResponse(entity, response, msg);
+    }
 
-	private MapResponse getMapResponse(AlarmRecord entity, MapResponse response, DmpMessage msg) {
-		msg.setGroupCode(DmpParameterStorage.getGroupCode());
-		msg.setProjectId(DmpParameterStorage.getProjectId());
-		msg.setTargetId(entity.getId());
-		msg.add("obj", JacksonMapper.toSimpleJson(entity));
-		msg.setAppId(DmpParameterStorage.getAppId());
-		msg.setSendTime(DateUtil.format(new Date(), DatePatternStyle.PATTERN_YYYYMMDDHHMMSS));
-		response.add(msg);
-		return response;
-	}
+    private MapResponse getMapResponse(AlarmRecord entity, MapResponse response, DmpMessage msg) {
+        msg.setGroupCode(DmpParameterStorage.getGroupCode());
+        msg.setProjectId(DmpParameterStorage.getProjectId());
+        msg.setTargetId(entity.getId());
+        msg.add("obj", JacksonMapper.toSimpleJson(entity));
+        msg.setAppId(DmpParameterStorage.getAppId());
+        msg.setSendTime(DateUtil.format(new Date(), DatePatternStyle.PATTERN_YYYYMMDDHHMMSS));
+        response.add(msg);
+        return response;
+    }
 
-	private AlarmLog initAlarmLogModel(AlarmRecord param) {
-		AlarmLog alarmLog = new AlarmLog();
-		alarmLog.setRecordId(param.getId());
-		alarmLog.setCreateTime(new Date());
-		alarmLog.setCreateUser(DmpParameterStorage.getUserId());
-		alarmLog.setProjectId(DmpParameterStorage.getProjectId());
-		alarmLog.setGroupCode(DmpParameterStorage.getGroupCode());
-		return alarmLog;
-	}
+    private AlarmLog initAlarmLogModel(AlarmRecord param) {
+        AlarmLog alarmLog = new AlarmLog();
+        alarmLog.setRecordId(param.getId());
+        alarmLog.setCreateTime(new Date());
+        alarmLog.setCreateUser(DmpParameterStorage.getUserId());
+        alarmLog.setProjectId(DmpParameterStorage.getProjectId());
+        alarmLog.setGroupCode(DmpParameterStorage.getGroupCode());
+        return alarmLog;
+    }
 
-	@Override
-	@Transactional
-	public MapResponse update(AlarmRecord param) {
-		MapResponse response = new MapResponse();
-		AlarmRecord alarmRecord = shardingService.getById(AlarmRecord.class, 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())) {
-				AlarmLog alarmLog = initAlarmLogModel(param);
-				alarmLog.setType(AlarmLogType.ALARMSTATE);
-				alarmLog.setNature(alarmRecord.getNature());
-				alarmLog.setBefore(alarmRecord.getState());
-				alarmLog.setAfter(param.getState());
-				alarmLogService.create(alarmLog);
-			}
-			alarmRecord.setState(param.getState());
-		}
-		if (param.getNature() != null) {
-			alarmRecord.setNature(param.getNature());
-		}
-		// 处理方式修改记录日志
-		if (param.getTreatMode() != null) {
-			if (!param.getTreatMode().equals(alarmRecord.getTreatMode())) {
-				AlarmLog alarmLogModel = initAlarmLogModel(param);
-				alarmLogModel.setType(AlarmLogType.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())) {
-				AlarmLog alarmLogModel = initAlarmLogModel(param);
-				alarmLogModel.setType(AlarmLogType.TREATSTATE);
-				alarmLogModel.setNature(alarmRecord.getNature());
-				alarmLogModel.setBefore(alarmRecord.getTreatState());
-				alarmLogModel.setAfter(param.getTreatState());
-				alarmLogService.create(alarmLogModel);
-			}
-			alarmRecord.setTreatState(param.getTreatState());
-		}
+    @Override
+    @Transactional
+    public MapResponse update(AlarmRecord param) {
+        MapResponse response = new MapResponse();
+        AlarmRecord alarmRecord = shardingService.getById(AlarmRecord.class, 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())) {
+                AlarmLog alarmLog = initAlarmLogModel(param);
+                alarmLog.setType(AlarmLogType.ALARMSTATE);
+                alarmLog.setNature(alarmRecord.getNature());
+                alarmLog.setBefore(alarmRecord.getState());
+                alarmLog.setAfter(param.getState());
+                alarmLogService.create(alarmLog);
+            }
+            alarmRecord.setState(param.getState());
+        }
+        if (param.getNature() != null) {
+            alarmRecord.setNature(param.getNature());
+        }
+        // 处理方式修改记录日志
+        if (param.getTreatMode() != null) {
+            if (!param.getTreatMode().equals(alarmRecord.getTreatMode())) {
+                AlarmLog alarmLogModel = initAlarmLogModel(param);
+                alarmLogModel.setType(AlarmLogType.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())) {
+                AlarmLog alarmLogModel = initAlarmLogModel(param);
+                alarmLogModel.setType(AlarmLogType.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());
-		if (EnumAlarmState.UN_HANDLE.getType().equals(alarmRecord.getState())
-				&& (EnumAlarmTreatState.UN_HANDLE.getType().equals(alarmRecord.getTreatState())
-						|| EnumAlarmTreatState.HANDLING.getType().equals(alarmRecord.getTreatState()))) {
-			alarmRecord.setAlarmState(0);
-		}
-		if (EnumAlarmState.END.getType().equals(alarmRecord.getState())
-				|| EnumAlarmState.EXPIRE.getType().equals(alarmRecord.getState())
-				|| EnumAlarmTreatState.DONE.getType().equals(alarmRecord.getTreatState())) {
-			alarmRecord.setAlarmState(1);
-		}
-		shardingService.saveOrUpdate(alarmRecord, alarmRecord.getTriggerTime());
-		response.add("id", alarmRecord.getId());
-		// 推送消息至mq
-		DmpMessage msg = new DmpMessage();
-		msg.setMid(UUID.randomUUID().toString());
-		msg.setType(EnumAlarmMessageType.ALARM_RECORD_UPDATE.getValue());
-		return getMapResponse(alarmRecord, response, msg);
+        // 恢复值
+        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());
+        if (EnumAlarmState.UN_HANDLE.getType().equals(alarmRecord.getState())
+                && (EnumAlarmTreatState.UN_HANDLE.getType().equals(alarmRecord.getTreatState())
+                || EnumAlarmTreatState.HANDLING.getType().equals(alarmRecord.getTreatState()))) {
+            alarmRecord.setAlarmState(0);
+        }
+        if (EnumAlarmState.END.getType().equals(alarmRecord.getState())
+                || EnumAlarmState.EXPIRE.getType().equals(alarmRecord.getState())
+                || EnumAlarmTreatState.DONE.getType().equals(alarmRecord.getTreatState())) {
+            alarmRecord.setAlarmState(1);
+        }
+        shardingService.saveOrUpdate(alarmRecord, alarmRecord.getTriggerTime());
+        response.add("id", alarmRecord.getId());
+        // 推送消息至mq
+        DmpMessage msg = new DmpMessage();
+        msg.setMid(UUID.randomUUID().toString());
+        msg.setType(EnumAlarmMessageType.ALARM_RECORD_UPDATE.getValue());
+        return getMapResponse(alarmRecord, response, msg);
 
-	}
+    }
 
-	@Override
-	@Transactional
-	public MapResponse batchUpdate(AlarmRecord param) {
-		MapResponse response = new MapResponse();
+    @Override
+    @Transactional
+    public MapResponse batchUpdate(AlarmRecord param) {
+        MapResponse response = new MapResponse();
 
-		List<AlarmRecord> alarmRecordModelList = param.getAlarmRecordModels();
-		if (CollectionUtils.isEmpty(alarmRecordModelList)) {
-			response.setFail("批量更新报警记录,没有传入需要更新的对象");
-			return response;
-		}
+        List<AlarmRecord> 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;
+    }
 }

+ 2 - 1
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmTargetServiceImpl.java

@@ -2,6 +2,7 @@ package com.persagy.apm.dmpalarm.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.persagy.apm.dmpalarm.config.DmpParameterStorage;
 import com.persagy.apm.dmpalarm.criteria.JsonCriteria;
 import com.persagy.apm.dmpalarm.enumeration.EnumAlarmMessageType;
@@ -35,7 +36,7 @@ import java.util.stream.Collectors;
  */
 @Service
 @Slf4j
-public class AlarmTargetServiceImpl extends BaseServiceImpl<AlarmTarget>
+public class AlarmTargetServiceImpl extends BaseServiceImpl<BaseMapper<AlarmTarget>, AlarmTarget>
         implements IAlarmTargetService {
     @Resource(name="dmpAlarmItemService")
     private IAlarmItemService alarmItemService;

+ 2 - 1
src/main/java/com/persagy/apm/dmpalarm/service/impl/BaseServiceImpl.java

@@ -1,5 +1,6 @@
 package com.persagy.apm.dmpalarm.service.impl;
 
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -8,7 +9,7 @@ import com.persagy.apm.dmpalarm.config.DmpParameterStorage;
 import com.persagy.apm.dmpalarm.criteria.CriteriaUtils;
 import com.persagy.apm.dmpalarm.web.BaseResponse;
 
-public class BaseServiceImpl<T> extends ServiceImpl<BaseMapper<T>, T> {
+public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<BaseMapper<T>, T> {
     @Autowired
     protected CriteriaUtils criteriaUtils;