VVT789
2025-04-18 e8401b85ea303e7cb87062dfa918cb59071befb3
报警代码优化
已添加1个文件
已重命名1个文件
已删除1个文件
已修改10个文件
420 ■■■■ 文件已修改
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalyisisController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalysisController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/HistoryAlarmController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/domain/dto/AlarmAnalysisDTO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/mapper/HistoryAlarmMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalysisService.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/IHistoryAlarmService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/impl/HistoryAlarmServiceImpl.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/mapper/ModelNodeMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/alarm/HistoryAlarmMapper.xml 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalyisisController.java
ÎļþÒÑɾ³ý
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalysisController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.zhitan.web.controller.alarm;
import com.zhitan.alarm.domain.dto.AlarmAnalysisDTO;
import com.zhitan.alarm.domain.vo.AlarmAnalysisVO;
import com.zhitan.alarm.services.IAlarmAnalysisService;
import com.zhitan.common.core.controller.BaseController;
import com.zhitan.common.core.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* description æŠ¥è­¦åˆ†æžç›¸å…³åŠŸèƒ½
 *
 * @author zhitan
 * @date
 */
@RestController
@RequestMapping("/alarmAnalysis")
public class AlarmAnalysisController extends BaseController {
    @Autowired
    private IAlarmAnalysisService alarmAnalysisService;
    @GetMapping("/getByNodeId")
    public AjaxResult getByNodeId(@Validated AlarmAnalysisDTO alarmAnalysisDTO){
        AlarmAnalysisVO alarmAnalysisVO  = alarmAnalysisService.getByNodeId(alarmAnalysisDTO);
        return AjaxResult.success(alarmAnalysisVO);
    }
    @GetMapping("/getCountInfo")
    public AjaxResult getCountInfo(@Validated AlarmAnalysisDTO alarmAnalysisDTO){
        if(ObjectUtils.isEmpty(alarmAnalysisDTO.getNodeId())){
            return AjaxResult.error("节点id不能为空");
        }
        if(ObjectUtils.isEmpty(alarmAnalysisDTO.getModelCode())){
            return AjaxResult.error("模型编码不能为空");
        }
        AlarmAnalysisVO alarmAnalysisVO  = alarmAnalysisService.getCountInfo(alarmAnalysisDTO);
        return AjaxResult.success(alarmAnalysisVO);
    }
}
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/HistoryAlarmController.java
@@ -12,6 +12,7 @@
import com.zhitan.common.enums.BusinessType;
import com.zhitan.common.utils.poi.ExcelUtil;
import com.zhitan.framework.web.service.TokenService;
import com.zhitan.model.domain.ModelNode;
import com.zhitan.realtimedata.domain.TagValue;
import com.zhitan.realtimedata.service.RealtimeDatabaseService;
import io.swagger.annotations.Api;
@@ -43,10 +44,7 @@
public class HistoryAlarmController extends BaseController
{
    @Autowired
    private IHistoryAlarmService iHistoryAlarmService;
    @Autowired
    private TokenService tokenService;
    private IHistoryAlarmService historyAlarmService;
    @Autowired
    private RealtimeDatabaseService realtimeDatabaseService;
@@ -55,11 +53,13 @@
     * åŽ†å²æŠ¥è­¦ é¡µé¢ æ ¹æ® èŠ‚ç‚¹ç›®å½•å’Œ æ¡ä»¶æŸ¥è¯¢
     */
    @ApiOperation("历史报警查询")
//    @PreAuthorize("@ss.hasPermi('energyAlarm:historicalAlarm:list')")
    @PreAuthorize("@ss.hasPermi('energyAlarm:historicalAlarm:list')")
    @GetMapping("/list")
    public TableDataInfo list(JkHistoryAlarm jkHistoryAlarm,Long pageNum,Long pageSize)
    public TableDataInfo list(JkHistoryAlarm jkHistoryAlarm)
    {
        Page<JkHistoryAlarm> list = iHistoryAlarmService.selectJkHistoryAlarmPage(jkHistoryAlarm,pageNum,pageSize);
        startPage();
        List<JkHistoryAlarm> list = historyAlarmService.selectHistoryAlarmPageList(jkHistoryAlarm);
//        Page<JkHistoryAlarm> list = historyAlarmService.selectJkHistoryAlarmPage(jkHistoryAlarm);
        return getDataTable(list);
    }
    /**
@@ -70,7 +70,7 @@
    @GetMapping("/export")
    public AjaxResult export(JkHistoryAlarm jkHistoryAlarm)
    {
        List<JkHistoryAlarm> list = iHistoryAlarmService.selectJkHistoryAlarmListExcel(jkHistoryAlarm);
        List<JkHistoryAlarm> list = historyAlarmService.selectJkHistoryAlarmListExcel(jkHistoryAlarm);
        ExcelUtil<JkHistoryAlarm> util = new ExcelUtil<JkHistoryAlarm>(JkHistoryAlarm.class);
        return util.exportExcel(list, "alarm");
    }
@@ -165,7 +165,7 @@
    public TableDataInfo listNote(JkHistoryAlarm jkHistoryAlarm)
    {
        startPage();
        List<JkHistoryAlarm> list = iHistoryAlarmService.selectHistoryAlarmNoteList(jkHistoryAlarm);
        List<JkHistoryAlarm> list = historyAlarmService.selectHistoryAlarmNoteList(jkHistoryAlarm);
        return getDataTable(list);
    }
}
zhitan-system/src/main/java/com/zhitan/alarm/domain/dto/AlarmAnalysisDTO.java
@@ -3,6 +3,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhitan.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@@ -13,8 +14,7 @@
 * @author hmj
 * @date 2024-10-16 17:55
 */
@Getter
@Setter
@Data
public class AlarmAnalysisDTO {
    @ApiModelProperty(value = "节点id")
    private String nodeId;
@@ -28,18 +28,23 @@
    /**
     * ç»Ÿè®¡å¼€å§‹æ—¶é—´
     */
    @ApiModelProperty(value = "统计开始时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报警开始时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date beginTime;
    /**
     * ç»Ÿè®¡å¼€å§‹æ—¶é—´
     * ç»Ÿè®¡ç»“束时间
     */
    @ApiModelProperty(value = "统计结束时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报警开始时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报警结束时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /** æ¨¡åž‹ç¼–码 */
    /**
     * æ¨¡åž‹ç¼–码
     */
    @ApiModelProperty(value = "模型编码")
    @Excel(name = "模型编码")
    private String modelCode;
}
zhitan-system/src/main/java/com/zhitan/alarm/mapper/HistoryAlarmMapper.java
@@ -7,6 +7,7 @@
import com.zhitan.alarm.domain.JkHistoryAlarm;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
@@ -35,10 +36,15 @@
   */
  List<JkHistoryAlarm> selectHistoryAlarmNoteList(JkHistoryAlarm jkHistoryAlarm);
  void updateHistoryAlarm(@Param("alarmCode") String alarmCode,
      @Param("historyAlarm") HistoryAlarm historyAlarm);
  void updateHistoryAlarm(@Param("alarmCode") String alarmCode, @Param("historyAlarm") HistoryAlarm historyAlarm);
  Page<JkHistoryAlarm> selectJkHistoryAlarmPage(@Param("jkHistoryAlarm") JkHistoryAlarm jkHistoryAlarm,@Param("page")Page<?> page);
  Integer selectCountByTime(@Param("beginTime") DateTime beginTime, @Param("endTime") DateTime endTime);
  Integer selectCountByTime(@Param("beginTime") DateTime beginTime,
                            @Param("endTime") DateTime endTime,
                            @Param("nodeIdList") List<String> nodeIdList);
    List<JkHistoryAlarm> getHistoryAlarmList(@Param("indexIdList") List<String> indexIdList,
                                             @Param("beginTime") Date beginTime,
                                             @Param("endTime")Date endTime);
}
zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalysisService.java
ÎļþÃû´Ó zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalyisisService.java ÐÞ¸Ä
@@ -4,13 +4,20 @@
import com.zhitan.alarm.domain.vo.AlarmAnalysisVO;
/**
 * description todu
 * æŠ¥è­¦åˆ†æžæŽ¥å£
 *
 * @author hmj
 * @date 2024-10-26 17:33
 * @author zhitan
 * @date
 */
public interface IAlarmAnalyisisService {
public interface IAlarmAnalysisService {
    AlarmAnalysisVO getByNodeId(AlarmAnalysisDTO alarmAnalysisDTO);
    /**
     * æŠ¥è­¦åˆ†æžç»Ÿè®¡
     *
     * @param alarmAnalysisDTO
     * @return
     */
    AlarmAnalysisVO getCountInfo(AlarmAnalysisDTO alarmAnalysisDTO);
}
zhitan-system/src/main/java/com/zhitan/alarm/services/IHistoryAlarmService.java
@@ -33,4 +33,11 @@
  void updateHistoryAlarm(String alarmCode, HistoryAlarm historyAlarm);
  Page<JkHistoryAlarm> selectJkHistoryAlarmPage(JkHistoryAlarm jkHistoryAlarm, Long pageNum, Long pageSize);
  /**
   * åŽ†å²æŠ¥è­¦åˆ†é¡µæŸ¥è¯¢
   * @param jkHistoryAlarm
   * @return
   */
  List<JkHistoryAlarm> selectHistoryAlarmPageList(JkHistoryAlarm jkHistoryAlarm);
}
zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java
@@ -6,7 +6,7 @@
import com.zhitan.alarm.domain.dto.AlarmAnalysisDTO;
import com.zhitan.alarm.domain.vo.AlarmAnalysisVO;
import com.zhitan.alarm.mapper.HistoryAlarmMapper;
import com.zhitan.alarm.services.IAlarmAnalyisisService;
import com.zhitan.alarm.services.IAlarmAnalysisService;
import com.zhitan.basicdata.domain.MeterImplement;
import com.zhitan.basicdata.domain.SysEnergy;
import com.zhitan.basicdata.mapper.MeterImplementMapper;
@@ -17,6 +17,7 @@
import com.zhitan.consumptionanalysis.domain.vo.ChartData;
import com.zhitan.consumptionanalysis.domain.vo.EnergyProportion;
import com.zhitan.model.domain.EnergyIndex;
import com.zhitan.model.domain.ModelNode;
import com.zhitan.model.domain.vo.ModelNodeIndexInfo;
import com.zhitan.model.mapper.EnergyIndexMapper;
import com.zhitan.model.mapper.ModelNodeMapper;
@@ -32,14 +33,14 @@
import java.util.stream.Collectors;
/**
 * description todu
 * æŠ¥è­¦åˆ†æžå®žçް
 *
 * @author hmj
 * @date 2024-10-26 17:34
 * @author
 * @date
 */
@Service
@AllArgsConstructor
public class AlarmAnalyisisServiceImpl implements IAlarmAnalyisisService {
public class AlarmAnalyisisServiceImpl implements IAlarmAnalysisService {
    private final ModelNodeMapper modelNodeMapper;
    
@@ -50,6 +51,13 @@
    private final EnergyIndexMapper energyIndexMapper;
    
    private final SysEnergyMapper sysEnergyMapper;
    /**
     * æ ¹æ®èŠ‚ç‚¹id获取报警分析信息(废弃)
     *
     * @param alarmAnalysisDTO
     * @return
     */
    @Override
    public AlarmAnalysisVO getByNodeId(AlarmAnalysisDTO alarmAnalysisDTO) {
        AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO();
@@ -171,31 +179,6 @@
        return alarmAnalysisVO;
    }
    @Override
    public AlarmAnalysisVO getCountInfo(AlarmAnalysisDTO alarmAnalysisDTO) {
        AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO();
        final String nodeId = alarmAnalysisDTO.getNodeId();
        final DateTime beginOfMonth = DateUtil.beginOfMonth(new Date());
        final DateTime endOfMonth = DateUtil.endOfMonth(new Date());
        final DateTime beginOfYear = DateUtil.beginOfYear(new Date());
        final DateTime endOfYear = DateUtil.endOfYear(new Date());
        /**
         * æŸ¥è¯¢ç‚¹ä½ä¸Žç”¨èƒ½å•元信息
         */
        List<ModelNodeIndexInfo> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId,null);
        List<String> indexIds = nodeIndexInforList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toList());
        Integer monthCount = historyAlarmMapper.selectCountByTime(beginOfMonth,endOfMonth);
        Integer yearCount = historyAlarmMapper.selectCountByTime(beginOfYear,endOfYear);
        alarmAnalysisVO.setIndexCount(indexIds.size());
        alarmAnalysisVO.setMonthCount(monthCount);
        alarmAnalysisVO.setYearCount(yearCount);
        return alarmAnalysisVO;
    }
    private double format2Double(double averageEnergy) {
        // åˆ›å»ºDecimalFormat对象,设置保留两位小数
        DecimalFormat df = new DecimalFormat("#.00");
@@ -204,4 +187,37 @@
        String formattedResult = df.format(averageEnergy);
        return Double.valueOf(formattedResult);
    }
    /**
     * èŽ·å–æŠ¥è­¦åˆ†æžç»Ÿè®¡ä¿¡æ¯
     * @param alarmAnalysisDTO
     * @return
     */
    @Override
    public AlarmAnalysisVO getCountInfo(AlarmAnalysisDTO alarmAnalysisDTO) {
        AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO();
        // æŸ¥è¯¢æ¨¡åž‹ä¸‹çš„点位数据
        ModelNode modelNode = modelNodeMapper.selectModelNodeById(alarmAnalysisDTO.getNodeId());
        List<ModelNodeIndexInfo> nodeIndexInfoList = modelNodeMapper.getAllModelNodeIndexByAddress(modelNode.getModelCode(), modelNode.getAddress());
        alarmAnalysisVO.setIndexCount(nodeIndexInfoList.size());
        if (CollectionUtils.isEmpty(nodeIndexInfoList)) {
            return alarmAnalysisVO;
        }
        // èŽ·å–æœˆæŠ¥è­¦æ•°ã€å¹´æŠ¥è­¦æ•°
        List<String> nodeIdList = nodeIndexInfoList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toList());
        DateTime beginOfMonth = DateUtil.beginOfMonth(new Date());
        DateTime endOfMonth = DateUtil.endOfMonth(new Date());
        DateTime beginOfYear = DateUtil.beginOfYear(new Date());
        DateTime endOfYear = DateUtil.endOfYear(new Date());
        Integer monthCount = historyAlarmMapper.selectCountByTime(beginOfMonth,endOfMonth, nodeIdList);
        Integer yearCount = historyAlarmMapper.selectCountByTime(beginOfYear,endOfYear, nodeIdList);
        alarmAnalysisVO.setMonthCount(monthCount);
        alarmAnalysisVO.setYearCount(yearCount);
        return alarmAnalysisVO;
    }
}
zhitan-system/src/main/java/com/zhitan/alarm/services/impl/HistoryAlarmServiceImpl.java
@@ -1,5 +1,9 @@
package com.zhitan.alarm.services.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhitan.alarm.domain.HistoryAlarm;
import com.zhitan.alarm.domain.JkHistoryAlarm;
@@ -8,25 +12,41 @@
import com.zhitan.basicdata.domain.MeterImplement;
import com.zhitan.basicdata.mapper.MeterImplementMapper;
import com.zhitan.common.enums.TimeType;
import com.zhitan.common.utils.DateUtils;
import com.zhitan.common.utils.StringUtils;
import com.zhitan.model.domain.EnergyIndex;
import com.zhitan.model.domain.ModelNode;
import com.zhitan.model.domain.NodeIndex;
import com.zhitan.model.domain.vo.ModelNodeIndexInfo;
import com.zhitan.model.mapper.EnergyIndexMapper;
import com.zhitan.model.mapper.ModelNodeMapper;
import com.zhitan.model.mapper.NodeIndexMapper;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@AllArgsConstructor
@Service
public class HistoryAlarmServiceImpl implements IHistoryAlarmService {
  @Autowired
    @Resource
  private HistoryAlarmMapper historyAlarmMapper;
  @Autowired
    @Resource
  private MeterImplementMapper meterImplementMapper;
  @Autowired
    @Resource
    private ModelNodeMapper modelNodeMapper;
    @Resource
    private NodeIndexMapper nodeIndexMapper;
    @Resource
  private EnergyIndexMapper energyIndexMapper;
@@ -71,6 +91,7 @@
    historyAlarmMapper.updateHistoryAlarm(alarmCode, historyAlarm);
  }
    // åºŸå¼ƒ
  @Override
  public Page<JkHistoryAlarm> selectJkHistoryAlarmPage(JkHistoryAlarm jkHistoryAlarm, Long pageNum, Long pageSize) {
    final Page<JkHistoryAlarm> jkHistoryAlarmPage = historyAlarmMapper.selectJkHistoryAlarmPage(jkHistoryAlarm, new Page<>(pageNum, pageSize));
@@ -87,4 +108,67 @@
    return jkHistoryAlarmPage;
  }
  
    /**
     * èŽ·å–åŽ†å²æŠ¥è­¦åˆ†é¡µæ•°æ®
     *
     * @param historyAlarm
     * @return
     */
    @Override
    public List<JkHistoryAlarm> selectHistoryAlarmPageList(JkHistoryAlarm historyAlarm) {
        List<String> indexIdList = new ArrayList<>();
        if ("ALL".equals(historyAlarm.getEierarchyFlag())) {
            ModelNode modelNode = modelNodeMapper.selectModelNodeById(historyAlarm.getNodeId());
            List<ModelNodeIndexInfo> modelNodeIndexInfoList =
                    modelNodeMapper.getAllModelNodeIndexByAddress(modelNode.getModelCode(), modelNode.getAddress());
            if (StringUtils.isNotEmpty(historyAlarm.getIndexName())) {
                modelNodeIndexInfoList = modelNodeIndexInfoList.stream()
                        .filter(modelNodeIndexInfo -> modelNodeIndexInfo.getIndexName().contains(historyAlarm.getIndexName()))
                        .collect(Collectors.toList());
            }
            if (ObjectUtils.isNotEmpty(historyAlarm.getIndexType())) {
                modelNodeIndexInfoList = modelNodeIndexInfoList.stream()
                        .filter(modelNodeIndexInfo -> historyAlarm.getIndexType().equals(modelNodeIndexInfo.getIndexType()))
                        .collect(Collectors.toList());
            }
            indexIdList = modelNodeIndexInfoList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toList());
        } else {
            LambdaQueryWrapper<NodeIndex> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(NodeIndex::getNodeId, historyAlarm.getNodeId());
            List<NodeIndex> nodeIndexList = nodeIndexMapper.selectList(queryWrapper);
            List<String> allIndexIdList = nodeIndexList.stream().map(NodeIndex::getIndexId).collect(Collectors.toList());
            if (ObjectUtils.isNotEmpty(allIndexIdList)) {
                List<EnergyIndex> indexList = energyIndexMapper.selectEnergyIndexByIds(allIndexIdList);
                if (ObjectUtils.isNotEmpty(historyAlarm.getIndexName())) {
                    indexList = indexList.stream().filter(energyIndex -> energyIndex.getName().contains(historyAlarm.getIndexName())).collect(Collectors.toList());
                }
                if (ObjectUtils.isNotEmpty(historyAlarm.getIndexType())) {
                    indexList = indexList.stream().filter(energyIndex -> historyAlarm.getIndexType().equals(energyIndex.getIndexTypeCode())).collect(Collectors.toList());
                }
                indexIdList = indexList.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList());
            }
        }
        if (ObjectUtils.isEmpty(indexIdList)) {
            return new ArrayList<>();
        }
        //时间处理 å¦‚果不传时间默认查询当天的数据
        Date endTime = DateUtils.parseDate(historyAlarm.getEndTime());
        if (ObjectUtils.isEmpty(endTime)) {
            endTime = DateUtil.endOfDay(DateUtils.getNowDate());
        }
        Date beginTime = DateUtils.parseDate(historyAlarm.getEndTime());
        if (ObjectUtils.isEmpty(beginTime)) {
            beginTime = DateUtil.beginOfDay(DateUtils.getNowDate());
        }
        List<JkHistoryAlarm> historyAlarmList = historyAlarmMapper.getHistoryAlarmList(indexIdList, beginTime, endTime);
        return historyAlarmList;
    }
}
zhitan-system/src/main/java/com/zhitan/model/mapper/ModelNodeMapper.java
@@ -215,4 +215,9 @@
                                                     @Param("energyType") String energyType,
                                                     @Param("timeType") TimeType timeType,
                                                     @Param("dateTimeMap") Map<String, LocalDateTime> dateTimeMap);
    /**
     * é€šè¿‡èŠ‚ç‚¹åœ°å€æŸ¥è¯¢èŠ‚ç‚¹ä¸‹åŠå­èŠ‚ç‚¹ä¸‹çš„æ‰€æœ‰ç‚¹ä½ä¿¡æ¯
     */
    List<ModelNodeIndexInfo> getAllModelNodeIndexByAddress(@Param("modelCode") String modelCode, @Param("address") String address);
}
zhitan-system/src/main/resources/mapper/alarm/HistoryAlarmMapper.xml
@@ -4,7 +4,7 @@
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhitan.alarm.mapper.HistoryAlarmMapper">
  <resultMap type="HistoryAlarm" id="HistoryAlarmResult">
  <resultMap type="com.zhitan.alarm.domain.HistoryAlarm" id="HistoryAlarmResult">
    <result property="id" column="id"/>
    <result property="endTime" column="end_time"/>
    <result property="indexId" column="index_id"/>
@@ -18,7 +18,7 @@
    <result property="content" column="content"/>
  </resultMap>
  <resultMap type="JkHistoryAlarm" id="JkHistoryAlarmResult">
  <resultMap type="com.zhitan.alarm.domain.JkHistoryAlarm" id="JkHistoryAlarmResult">
    <result property="modelName" column="modelname"/>
    <result property="code" column="code"/>
    <result property="indexName" column="indexname"/>
@@ -50,7 +50,7 @@
    from history_alarm
  </sql>
  <select id="selectHistoryAlarmList" parameterType="HistoryAlarm" resultMap="HistoryAlarmResult">
  <select id="selectHistoryAlarmList" parameterType="com.zhitan.alarm.domain.HistoryAlarm" resultMap="HistoryAlarmResult">
    <include refid="selectHistoryAlarmVo"/>
    <where>
      <if test="indexName != null  and indexName != ''">and index_name like concat('%',
@@ -77,7 +77,7 @@
  </select>
  <update id="updateHistoryAlarm" parameterType="HistoryAlarm">
  <update id="updateHistoryAlarm" parameterType="com.zhitan.alarm.domain.HistoryAlarm">
    delete from realtime_alarm where alarm_code = #{alarmCode};
    insert into history_alarm
    <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -127,7 +127,7 @@
  </delete>
  <!--历史 æŠ¥è­¦åˆ—表页面 é‡‡é›†ç‚¹ ä¸»é¡µé¢åˆ—表查询-->
  <select id="selectJkHistoryAlarmList" parameterType="JkHistoryAlarm"
  <select id="selectJkHistoryAlarmList" parameterType="com.zhitan.alarm.domain.JkHistoryAlarm"
    resultMap="JkHistoryAlarmResult">
    SELECT
    mo."name" AS modelname,
@@ -180,7 +180,7 @@
    order by alarm_level,mo.node_id,limit_type asc
  </select>
  <select id="selectJkHistoryAlarmListExcel" parameterType="JkHistoryAlarm"
  <select id="selectJkHistoryAlarmListExcel" parameterType="com.zhitan.alarm.domain.JkHistoryAlarm"
    resultMap="JkHistoryAlarmResult">
    SELECT
    mo."name" AS modelname,
@@ -232,7 +232,7 @@
    order by alarm_level,mo.node_id,limit_type asc
  </select>
  <select id="selectHistoryAlarmNoteList" parameterType="JkHistoryAlarm"
  <select id="selectHistoryAlarmNoteList" parameterType="com.zhitan.alarm.domain.JkHistoryAlarm"
    resultMap="JkHistoryAlarmResult">
    SELECT
    ei.code,
@@ -273,7 +273,7 @@
    </if>
    order by alarm_level,limit_type asc
  </select>
  <select id="selectJkHistoryAlarmPage" resultType="JkHistoryAlarm">
  <select id="selectJkHistoryAlarmPage" resultType="com.zhitan.alarm.domain.JkHistoryAlarm">
    SELECT
    mo."name" AS modelname,
    ei.code,
@@ -310,19 +310,24 @@
    AND alit.alarm_code = bj.alarm_code
    AND alit.time_slot='LIVE'
    AND ei.index_type=#{jkHistoryAlarm.indexType}
    <if test="jkHistoryAlarm.indexName != null  and jkHistoryAlarm.indexName != ''">and ei.name like concat('%', #{jkHistoryAlarm.indexName},
      '%')
    <if test="jkHistoryAlarm.indexName != null  and jkHistoryAlarm.indexName != ''">
      and ei.name like concat('%', #{jkHistoryAlarm.indexName}, '%')
    </if>
    <if test="jkHistoryAlarm.limitType != null  and jkHistoryAlarm.limitType != ''">and alit.limit_type=#{jkHistoryAlarm.limitType}</if>
    <if test="jkHistoryAlarm.alarmLevel != null  and jkHistoryAlarm.alarmLevel != ''">and alit.alarm_level=#{jkHistoryAlarm.alarmLevel}</if>
    <if test="jkHistoryAlarm.beginTime != null and jkHistoryAlarm.beginTime != ''">and begin_time &gt;=
      to_timestamp(#{jkHistoryAlarm.beginTime},'yyyy-mm-dd hh24:mi:ss')
    <if test="jkHistoryAlarm.limitType != null  and jkHistoryAlarm.limitType != ''">
      and alit.limit_type=#{jkHistoryAlarm.limitType}
    </if>
    <if test="jkHistoryAlarm.endTime != null and jkHistoryAlarm.endTime != ''">and begin_time &lt;=
      to_timestamp(#{jkHistoryAlarm.endTime},'yyyy-mm-dd hh24:mi:ss')
    <if test="jkHistoryAlarm.alarmLevel != null  and jkHistoryAlarm.alarmLevel != ''">
      and alit.alarm_level=#{jkHistoryAlarm.alarmLevel}
      </if>
    <if test="jkHistoryAlarm.beginTime != null and jkHistoryAlarm.beginTime != ''">
      and begin_time &gt;= to_timestamp(#{jkHistoryAlarm.beginTime}, 'yyyy-mm-dd hh24:mi:ss')
    </if>
    <if test="jkHistoryAlarm.endTime != null and jkHistoryAlarm.endTime != ''">
      and begin_time &lt;= to_timestamp(#{jkHistoryAlarm.endTime},'yyyy-mm-dd hh24:mi:ss')
    </if>
    order by alarm_level,mo.node_id,limit_type asc
  </select>
  <select id="selectCountByTime" resultType="java.lang.Integer">
    select count(0)
    from history_alarm 
@@ -333,7 +338,43 @@
      <if test="endTime != null ">
      and begin_time &lt;= #{endTime}
      </if>
      <if test="nodeIdList != null and nodeIdList.size() > 0">
        and node_id in
        <foreach collection="nodeIdList" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
      </if>
    </where>
  </select>
    <select id="getHistoryAlarmList" resultType="com.zhitan.alarm.domain.JkHistoryAlarm">
      SELECT
        mn."name" modelName,
        mi.meter_name meterName,
        his.index_id indexId,
        ei."name" indexName,
        ei.code code,
        ei.unit_id unitId,
        ai.alarm_level alarmLevel,
        ai.limit_type limitType,
        his.limiting_value limitingValue,
        his.alarm_value alarmValue,
        his.begin_time beginTime,
        his.end_time endTime,
        his.duration
      FROM
        history_alarm his
          LEFT JOIN alarm_item ai ON his.item_id = ai."id"
          LEFT JOIN energy_index ei ON his.index_id = ei.index_id
          LEFT JOIN meter_implement mi ON ei.meter_id = mi."id"
          LEFT JOIN model_node mn ON mn.node_id = ai.node_id
      WHERE
        his.begin_time BETWEEN #{beginTime} AND #{endTime}
        <if test="indexIdList != null and indexIdList.size() > 0">
          AND his.index_id IN
          <foreach collection="indexIdList" item="item" open="(" separator="," close=")">
            #{item}
          </foreach>
        </if>
    </select>
</mapper>
zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml
@@ -4,7 +4,7 @@
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhitan.model.mapper.EnergyIndexMapper">
  <resultMap type="EnergyIndex" id="EnergyIndexResult">
  <resultMap type="com.zhitan.model.domain.EnergyIndex" id="EnergyIndexResult">
    <result property="indexId" column="index_id"/>
    <result property="name" column="name"/>
    <result property="code" column="code"/>
@@ -34,7 +34,7 @@
    from energy_index
  </sql>
  <select id="selectEnergyIndexList" parameterType="EnergyIndex" resultMap="EnergyIndexResult">
  <select id="selectEnergyIndexList" parameterType="com.zhitan.model.domain.EnergyIndex" resultMap="EnergyIndexResult">
    select ni.index_id, name, code, index_type, remark, unit_id, index_category
    from energy_index ei left join node_index ni on ei.index_id = ni.index_id
    <where>
@@ -59,7 +59,7 @@
    <include refid="selectEnergyIndexVo"/>
    where
        index_id IN
        <foreach collection="list" item="indexId" open="(" separator="," close=")">
        <foreach collection="indexIds" item="indexId" open="(" separator="," close=")">
          #{indexId}
        </foreach>
  </select>
@@ -145,7 +145,7 @@
    order by ei.order_num
  </select>
  <insert id="insertEnergyIndex" parameterType="EnergyIndex">
  <insert id="insertEnergyIndex" parameterType="com.zhitan.model.domain.EnergyIndex">
    insert into energy_index
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="indexId != null  and indexId != ''">index_id,</if>
@@ -271,7 +271,7 @@
    </foreach>
  </insert>
  <update id="updateEnergyIndex" parameterType="EnergyIndex">
  <update id="updateEnergyIndex" parameterType="com.zhitan.model.domain.EnergyIndex">
    update energy_index
    <trim prefix="SET" suffixOverrides=",">
      <if test="name != null  and name != ''">name = #{name},</if>
zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml
@@ -466,4 +466,22 @@
          AND di.data_time >= #{dateTimeMap.startTime}
          AND di.data_time &lt;= #{dateTimeMap.endTime}
    </select>
    <select id="getAllModelNodeIndexByAddress" resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo">
        SELECT
            mn.node_id nodeId,
            mn.code nodeCode,
            mn."name" nodeName,
            ni.index_id indexId,
            ei."name" indexName,
            ei.index_type indexType,
            mi.energy_type
        FROM
            "model_node" mn
                LEFT JOIN "node_index" ni ON mn.node_id = ni.node_id
                LEFT JOIN energy_index ei ON ni.index_id = ei.index_id
                LEFT JOIN meter_implement mi ON mi."id" = ei.meter_id
        WHERE
            mn.model_code = #{modelCode}
          AND mn.address LIKE concat( #{address} , '%' )
    </select>
</mapper>