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,83 +12,163 @@ 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 private HistoryAlarmMapper historyAlarmMapper; @Resource private HistoryAlarmMapper historyAlarmMapper; @Autowired private MeterImplementMapper meterImplementMapper; @Resource private MeterImplementMapper meterImplementMapper; @Autowired private EnergyIndexMapper energyIndexMapper; @Resource private ModelNodeMapper modelNodeMapper; @Resource private NodeIndexMapper nodeIndexMapper; @Resource private EnergyIndexMapper energyIndexMapper; @Override public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime) { return null; } @Override public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime) { return null; } @Override public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime, TimeType timeType) { return null; } @Override public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime, TimeType timeType) { return null; } @Override public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime, String alarmType) { return null; } @Override public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime, String alarmType) { return null; } @Override public List<JkHistoryAlarm> selectJkHistoryAlarmList(JkHistoryAlarm jkHistoryAlarm) { return historyAlarmMapper.selectJkHistoryAlarmList(jkHistoryAlarm); } @Override public List<JkHistoryAlarm> selectJkHistoryAlarmList(JkHistoryAlarm jkHistoryAlarm) { return historyAlarmMapper.selectJkHistoryAlarmList(jkHistoryAlarm); } @Override public List<JkHistoryAlarm> selectJkHistoryAlarmListExcel(JkHistoryAlarm jkHistoryAlarm) { return historyAlarmMapper.selectJkHistoryAlarmListExcel(jkHistoryAlarm); } @Override public List<JkHistoryAlarm> selectJkHistoryAlarmListExcel(JkHistoryAlarm jkHistoryAlarm) { return historyAlarmMapper.selectJkHistoryAlarmListExcel(jkHistoryAlarm); } /** * 宿¶æ£æµ åè½ çå¤ sheet页 å±ç¤º ç»æå¾ æµç¹ æ¥è¦ä¿¡æ¯ * * @param jkHistoryAlarm * @return */ @Override public List<JkHistoryAlarm> selectHistoryAlarmNoteList(JkHistoryAlarm jkHistoryAlarm) { return historyAlarmMapper.selectHistoryAlarmNoteList(jkHistoryAlarm); } /** * 宿¶æ£æµ åè½ çå¤ sheet页 å±ç¤º ç»æå¾ æµç¹ æ¥è¦ä¿¡æ¯ * * @param jkHistoryAlarm * @return */ @Override public List<JkHistoryAlarm> selectHistoryAlarmNoteList(JkHistoryAlarm jkHistoryAlarm) { return historyAlarmMapper.selectHistoryAlarmNoteList(jkHistoryAlarm); } @Override public void updateHistoryAlarm(String alarmCode, HistoryAlarm historyAlarm) { historyAlarmMapper.updateHistoryAlarm(alarmCode, historyAlarm); } @Override public void updateHistoryAlarm(String alarmCode, HistoryAlarm historyAlarm) { 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)); jkHistoryAlarmPage.getRecords().forEach(alarm->{ final String indexType = alarm.getIndexType(); final String indexId = alarm.getIndexId(); if("COLLECT".equals(indexType) && StringUtils.isEmpty(alarm.getEnergyId())){ //æ ¹æ®nodeIdåindexId 廿¥è¯¢è®¡éå¨å · EnergyIndex energyIndex = energyIndexMapper.selectEnergyIndexById(indexId); final MeterImplement meterImplement = meterImplementMapper.selectMeterImplementById(energyIndex.getMeterId()); alarm.setEnergyId(meterImplement.getEnergyType()); } }); return jkHistoryAlarmPage; } // åºå¼ @Override public Page<JkHistoryAlarm> selectJkHistoryAlarmPage(JkHistoryAlarm jkHistoryAlarm, Long pageNum, Long pageSize) { final Page<JkHistoryAlarm> jkHistoryAlarmPage = historyAlarmMapper.selectJkHistoryAlarmPage(jkHistoryAlarm, new Page<>(pageNum, pageSize)); jkHistoryAlarmPage.getRecords().forEach(alarm -> { final String indexType = alarm.getIndexType(); final String indexId = alarm.getIndexId(); if ("COLLECT".equals(indexType) && StringUtils.isEmpty(alarm.getEnergyId())) { //æ ¹æ®nodeIdåindexId 廿¥è¯¢è®¡éå¨å · EnergyIndex energyIndex = energyIndexMapper.selectEnergyIndexById(indexId); final MeterImplement meterImplement = meterImplementMapper.selectMeterImplementById(energyIndex.getMeterId()); alarm.setEnergyId(meterImplement.getEnergyType()); } }); 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, @@ -294,7 +294,7 @@ energy_index ei, node_index ni, model_node mo, history_alarm bj , history_alarm bj, alarm_item alit WHERE ni.node_id IN ( @@ -310,30 +310,71 @@ 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 >= 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.alarmLevel != null and jkHistoryAlarm.alarmLevel != ''"> and alit.alarm_level=#{jkHistoryAlarm.alarmLevel} </if> <if test="jkHistoryAlarm.beginTime != null and jkHistoryAlarm.beginTime != ''"> and begin_time >= to_timestamp(#{jkHistoryAlarm.beginTime}, 'yyyy-mm-dd hh24:mi:ss') </if> <if test="jkHistoryAlarm.endTime != null and jkHistoryAlarm.endTime != ''">and begin_time <= to_timestamp(#{jkHistoryAlarm.endTime},'yyyy-mm-dd hh24:mi:ss') <if test="jkHistoryAlarm.endTime != null and jkHistoryAlarm.endTime != ''"> and begin_time <= 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 <where> <if test="beginTime != null "> and begin_time >= #{beginTime} and begin_time >= #{beginTime} </if> <if test="endTime != null "> and begin_time <= #{endTime} and begin_time <= #{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 <= #{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>